1. 19 Nov, 2014 1 commit
  2. 16 Nov, 2014 2 commits
  3. 25 Sep, 2014 1 commit
    • Matthias Braun's avatar
      The start block is not special anymore · 0a4ee3b2
      Matthias Braun authored
      The start block is not special block without any "real" instructions
      anymore. In particular this means:
      - There is no X_initial_exec Proj from the Start node anymore, "normal"
        cfopts are used for jumping out of the start block.
      - The backend never had the special convention of the start block not
        containing actual code and used to fixup this discrpancy, no more
        fixup code needed now.
      - The part_block() code got a bit more complicated because splitting the
        start block is tricky (previously part_block() simply failed in this
        case but was never used in the Start block because of its special
  4. 19 Sep, 2014 2 commits
  5. 17 Sep, 2014 3 commits
  6. 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.
  7. 30 Jul, 2014 2 commits
  8. 18 Jul, 2014 2 commits
  9. 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.
  10. 10 Apr, 2014 2 commits
  11. 27 Mar, 2014 1 commit
  12. 07 Mar, 2014 1 commit
  13. 18 Feb, 2014 3 commits
    • Matthias Braun's avatar
      carefull -> careful · 7dba5713
      Matthias Braun authored
    • 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.
    • Matthias Braun's avatar
      Unknown values should not CSE · 8d2aba71
      Matthias Braun authored
  14. 06 Feb, 2014 1 commit
  15. 30 Jan, 2014 2 commits
  16. 28 Jan, 2014 3 commits
  17. 27 Jan, 2014 1 commit
  18. 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
  19. 19 Jul, 2013 1 commit
  20. 27 Jun, 2013 1 commit
  21. 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.
    • 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.
    • 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.
  22. 25 Jun, 2013 1 commit
  23. 06 Jun, 2013 1 commit
  24. 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.
  25. 06 May, 2013 1 commit
  26. 12 Mar, 2013 1 commit
    • 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.