1. 14 Aug, 2015 1 commit
    • Andreas Fried's avatar
      Implement vararg handling in a more portable way (for now only for IA32). · f833aa25
      Andreas Fried authored
      This adds two builtin kinds, ir_bk_va_start and ir_bk_va_arg. va_arg Builtins
      are lowered in the lower_builtins pass with a function provided by the backend,
      whereby most architectures can use be_default_lower_va_args. va_start Builtins
      are lowered in the backend.
      
      Note: This commit breaks all backends except for IA32. SPARC and AMD64 are
      implemented in later commits. The ARM backend previously miscompiled variadic
      functions, and will now throw a proper error.
      f833aa25
  2. 29 Dec, 2014 1 commit
  3. 28 Dec, 2014 1 commit
  4. 03 Dec, 2014 1 commit
  5. 19 Sep, 2014 1 commit
  6. 18 Jul, 2014 1 commit
  7. 16 May, 2014 1 commit
  8. 13 Feb, 2014 1 commit
  9. 31 Jan, 2014 1 commit
  10. 28 Jan, 2014 2 commits
  11. 27 Jan, 2014 1 commit
  12. 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
  13. 26 Jun, 2013 1 commit
    • 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
  14. 12 Jun, 2013 1 commit
  15. 15 May, 2013 1 commit
  16. 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
  17. 23 Apr, 2013 1 commit
  18. 04 Apr, 2013 1 commit
    • yb9976's avatar
      Added a new builtin for saturated increment. · b7cb5592
      yb9976 authored
      The builtin can be used to generate fast code for unsigned division by constant.
      
      Code generation is supported for the IA32 and the SPARC backend.
      Since our ARM backend currently has no Add with Carry instruction,
      the builtin is currently not supported on Arm.
      The same holds for the AMD64 backend, which does not support a division yet.
      b7cb5592
  19. 19 Feb, 2013 1 commit
    • Matthias Braun's avatar
      Simplify ident implementation · 01bea684
      Matthias Braun authored
      Remove some unnecessary/unused functions. Simplify the implementation to
      pass around const char* (which is a little bit faster and also nicer in
      gdb)
      01bea684
  20. 18 Jan, 2013 2 commits
  21. 15 Jan, 2013 1 commit
  22. 12 Dec, 2012 1 commit
  23. 25 Oct, 2012 1 commit
  24. 24 Oct, 2012 1 commit
    • Matthias Braun's avatar
      reorgranize method properties · 919a6673
      Matthias Braun authored
      - do not record properties on irgs anymore, always do it on the irgs
        entity; entity properties have to be a superset of the entities method
        type properties.
      - Remove special irg_inline_property and use mtp_additional_properties
        instead
      919a6673
  25. 18 Oct, 2012 1 commit
  26. 30 Jul, 2012 1 commit
  27. 13 Jun, 2012 1 commit
    • Matthias Braun's avatar
      remove extended basic block support · b4841b96
      Matthias Braun authored
      First it is unclear what is a good way to deconstruct a program into extended
      basic blocks, also none of our optimizations works on extended basic
      blocks.
      b4841b96
  28. 14 Dec, 2011 4 commits
  29. 09 Dec, 2011 1 commit
  30. 17 Nov, 2011 1 commit
  31. 10 Nov, 2011 1 commit
  32. 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
  33. 23 Sep, 2011 1 commit
  34. 22 Sep, 2011 2 commits