1. 17 Sep, 2014 2 commits
  2. 05 Aug, 2014 1 commit
    • Matthias Braun's avatar
      Add loop attribute to Phi node · 8e4997d4
      Matthias Braun authored
      This makes our usage of PhiMs to represent the observable behaviour of
      non-terminating loops more obvious.
      Having an explicit loop Phi constructor also fixes problems with Phi
      getting optimized before the keep edge was added.
      8e4997d4
  3. 30 Jul, 2014 2 commits
  4. 18 Jul, 2014 2 commits
  5. 15 Apr, 2014 1 commit
    • Matthias Braun's avatar
      split Sel node into Member and Sel · 36408645
      Matthias Braun authored
      - Compound type selection is performed with Member
      - Array indexing is performed with Sel
      - Instead of the simpleSel constructor functions you can use the normal Member
        constructors now
      - The concept of array element entities has been removed, Sel nodes just
        contain a pointer to the array type now.
      36408645
  6. 10 Apr, 2014 2 commits
  7. 27 Mar, 2014 1 commit
  8. 07 Mar, 2014 1 commit
  9. 18 Feb, 2014 3 commits
    • Matthias Braun's avatar
      carefull -> careful · 7dba5713
      Matthias Braun authored
      7dba5713
    • Matthias Braun's avatar
      cleanup special tarval and Unknown usage · af666143
      Matthias Braun authored
      This commit does:
      - Remove tarval_reachable+tarval_unreachable, dataflow analysis rather
        use top/bottom instead of other special values.
      - Rename tarval_undefined to tarval_unknown as it corresponds to the
        Unknown node (=a value which we don't know)
      - Remove predefined tarval_top/tarval_bottom from tv.h and place the
        defines into combo.c
      - Change compute_XXX constant folding functions to return tarval_unknown
        instead of tarval_bad if folding failed
      - compute_Unknown in combo results in tarval_bottom == tarval_unknown
        this eliminates strange special cases in the Cond/Switch rules and the
        now unnecessary cprop_X list.
      af666143
    • Matthias Braun's avatar
      Unknown values should not CSE · 8d2aba71
      Matthias Braun authored
      8d2aba71
  10. 06 Feb, 2014 1 commit
  11. 30 Jan, 2014 2 commits
  12. 28 Jan, 2014 3 commits
  13. 27 Jan, 2014 1 commit
  14. 08 Aug, 2013 1 commit
    • Matthias Braun's avatar
      remove support for enumeration types · 89c75d37
      Matthias Braun authored
      It is not usefull for optimization in most languages:
      - In C/C++ you can't really change the value of enum constants as casting
        from/to integer has to produce the expected results.
      - In Java (and other OO languages) enum members are objects so the
        libfirm enumeration type can't be used there anyway
      89c75d37
  15. 19 Jul, 2013 1 commit
  16. 27 Jun, 2013 1 commit
  17. 26 Jun, 2013 3 commits
    • Matthias Braun's avatar
      remove InstOf node · 683378aa
      Matthias Braun authored
      This node was used by OO code in the past, but newer versions of liboo
      have their own node and don't need it anymore.
      683378aa
    • Matthias Braun's avatar
      remove exception support for CopyB nodes · 7f971167
      Matthias Braun authored
      CopyB is normally used to transfer data on the stack or to enable compound
      value calling conventions. Exceptions don't happen in these cases.
      7f971167
    • Matthias Braun's avatar
      remove the strange/unused concept of mem_pinned. · 4719c02b
      Matthias Braun authored
      I don't really understand what it was supposed to do (because nodes
      using/producing should be pretty much immovable anyway because of their
      dependencies, so an additional pinning type appears unnecessary).
      In practice there was no code differentiating between mem_pinned and exc_pinned.
      4719c02b
  18. 25 Jun, 2013 1 commit
  19. 06 Jun, 2013 1 commit
  20. 07 May, 2013 1 commit
    • Matthias Braun's avatar
      Alloc/Free only operate on the stack now · 8fda947f
      Matthias Braun authored
      They are considered low level operations now which just allocate/free a
      block of memory on the stack. There is no highlevel typeinformation
      attached anymore or support for heap allocation. Frontends/liboo should
      provide their custom highlevel nodes if they need these features.
      8fda947f
  21. 06 May, 2013 1 commit
  22. 12 Mar, 2013 2 commits
    • Matthias Braun's avatar
      remove oparity_{unary|trinary|zero} · 9a1ec0a9
      Matthias Braun authored
      They weren't used in a sensible way and their semantic for
      non-arithmetic ops was unclear.
      Also implicitely fixes a bunch of bugs where these where set but no op_index
      was set at the same time.
      9a1ec0a9
    • Matthias Braun's avatar
      only set oparity_binary/oparity_unary if explicitely specified · de323162
      Matthias Braun authored
      oparity_unary, oparity_binary require opindex to be set, which wasn't
      always the case.
      Also people seem to expect certain semantics from unops/binops, like
      being arithmetic operations. So we shouldn't automatically set
      oparity_XXX.
      de323162
  23. 12 Dec, 2012 1 commit
  24. 04 Dec, 2012 3 commits
  25. 03 Dec, 2012 1 commit
  26. 02 Dec, 2012 1 commit