1. 18 Nov, 2011 1 commit
    • Matthias Braun's avatar
      remove opt_polymorphy · 0801baa3
      Matthias Braun authored
      this is part of the initiative to move object-orientation support stuff
      out of libfirm into liboo
      0801baa3
  2. 17 Nov, 2011 1 commit
  3. 16 Nov, 2011 1 commit
  4. 14 Nov, 2011 2 commits
  5. 10 Nov, 2011 1 commit
  6. 09 Nov, 2011 1 commit
  7. 07 Nov, 2011 5 commits
  8. 04 Nov, 2011 3 commits
  9. 02 Nov, 2011 1 commit
    • Matthias Braun's avatar
      introduce Switch node · 1c89dc2a
      Matthias Braun authored
      This is the new way of handling switch-jumps. The node contains a table
      which maps (ranges of) input values to proj numbers. Compared to a
      Cond-node this results in a clean consecutive sequence of Proj numbers
      (no searching for a free number for the default_pn anymore) and allows
      factoring multiple cases jumping to the same block in a single Proj
      (though we still need the optimisation in cfopt for that).
      1c89dc2a
  10. 27 Oct, 2011 3 commits
    • Matthias Braun's avatar
      ir_mode: simplify interface, improve float-mode handling · e3b765fc
      Matthias Braun authored
      The main change here is splitting new_ir_mode into new_int_mode,
      new_reference_mode and new_float_mode. You can now specify
      mantissa+exponent size in new_float_mode. This also changes:
      
      - x86 80bit-FP mode is NOT a ieee754 don't put "ieee754" into functions
        names that can also handle x86 80bit fps
      - Move ieee_descriptor_t from tarval module into ir_mode struct
        (and rename to float_descriptor_t)
      - Introduce mode_Q which represents binary128 from ieee754
      - You can ask float modes for mantissa/exponent sizes now
      - Fix endianess when emitting big float values in begnuas
      - A bunch of long double fixes in ia32: the mode there has 10bytes
        (80bit) but the variables typically are 12 or 16 byte big
      - This fixes some problems of sparc binary128 handling
      e3b765fc
    • Matthias Braun's avatar
      iropt: Or/Eor/Add are sometimes equivalent · b7bf9774
      Matthias Braun authored
      If vrp can prove that both operand of an Or/Eor/Add never a bit set in
      common then we can match them as each of these opcodes.
      b7bf9774
    • Matthias Braun's avatar
      remove a bunch of comments marking end of blocks · a1fc5d2a
      Matthias Braun authored
      They're adding more noise than they provide gain in readability. They
      also make extra work to keep up to date.
      a1fc5d2a
  11. 20 Oct, 2011 3 commits
  12. 28 Sep, 2011 1 commit
    • yb9976's avatar
      Fixed local optimization. · ebb21655
      yb9976 authored
      The transformation (a << c1) | c2 => (a | (c2 >> c1)) << c1
      is only valid if the lower bits of c2 are clean.
      
      This fixes opt/pr37102.c.
      ebb21655
  13. 23 Sep, 2011 1 commit
  14. 22 Sep, 2011 2 commits
  15. 21 Sep, 2011 1 commit
  16. 20 Sep, 2011 5 commits
  17. 16 Sep, 2011 1 commit
  18. 15 Sep, 2011 1 commit
    • Matthias Braun's avatar
      lower_mode_b: refactoring, make it more robust · a00e3544
      Matthias Braun authored
      - Make API private as it should only be called by backends
      - Let ia32 backend create special ia32_Set nodes instead of relying
        on muxes which must not be touched anymore
      - Does not create ConvB nodes anymore but instead produces the Cmp
        directly. (All backends did this anyway during code-selection so I was
        able to leave this case out code-selection)
      - First collect nodes to lower, then lower them. This avoids robustness
        problems when transforming the graph while at the same time walking
        it.
      a00e3544
  19. 14 Sep, 2011 2 commits
  20. 18 Aug, 2011 1 commit
  21. 17 Aug, 2011 1 commit
  22. 27 Jul, 2011 1 commit
  23. 26 Jul, 2011 1 commit