1. 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
  2. 19 Sep, 2014 2 commits
  3. 17 Sep, 2014 3 commits
  4. 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.
  5. 30 Jul, 2014 2 commits
  6. 18 Jul, 2014 2 commits
  7. 09 Jul, 2014 1 commit
  8. 15 Apr, 2014 2 commits
    • Matthias Braun's avatar
      move block/usesGraph defaults to spec_util · 662a384f
      Matthias Braun authored
      The jFirm generator reuses the code in spec_util and needs these
      defaults too.
    • 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.
  9. 10 Apr, 2014 2 commits
  10. 27 Mar, 2014 1 commit
  11. 07 Mar, 2014 2 commits
  12. 19 Feb, 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 3 commits
  16. 29 Jan, 2014 2 commits
  17. 28 Jan, 2014 3 commits
  18. 27 Jan, 2014 1 commit
  19. 10 Jan, 2014 3 commits
  20. 15 Nov, 2013 1 commit
    • Matthias Braun's avatar
      Generate include guards for nodes.h · ef4370c5
      Matthias Braun authored
      The file wasn't really meant to be included (it lacks the proper includes to be
      useful on its own), the correct file to include is irnode.h.
      Anyway the guards don't hurt either...
  21. 28 Oct, 2013 1 commit
    • Matthias Braun's avatar
      remove NEW_ARR_A and use ALLOCAN · fee5ce04
      Matthias Braun authored
      All users of NEW_ARR_A used it to construct a simple array, yet noone
      cared about it actually being an array with a length field in front. For
      this simple use case you should use ALLOCAN.
  22. 19 Oct, 2013 2 commits