- 22 Aug, 2013 4 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
Types need not be in their final form after the new_entity so there is no need to have _d variants like we have with all the graph nodes. You can easily use set_entity_dbg_info() after construction.
-
Matthias Braun authored
Entities need not be in their final form after the new_entity call, so there is no need to have _d variants like we have with all the graph nodes. You can easily use set_entity_dbg_info() after construction.
-
Matthias Braun authored
-
- 08 Aug, 2013 1 commit
-
-
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
-
- 24 Jul, 2013 1 commit
-
-
Andreas Seltenreich authored
This allows users - such as Special Instruction creation for reconfigurable microarchitectures - to override the backend's predicate.
-
- 20 Jul, 2013 1 commit
-
-
Andreas Fried authored
Code using get_alias_relation is converted by calling get_type_for_mode at the appropriate locations. This is in preparation for optimizations involving CopyB, which needs this additional flexibility.
-
- 08 Jul, 2013 2 commits
-
-
Matthias Braun authored
The new code has less options and variants, if you call irg_verify() verification is performed, regardless of DEBUG_libfirm, or NDEBUG being set and regardless of firm verification setting switches. On the other side no atomic dump and abort is performed anymore, the call has to do this, though an irg_assert_verify() function has been added as a convenience measure. There has also been a complete rewrite of the actual checking performed. The new code is simpler, should produce more consistent output and can report more than one error.
-
Matthias Braun authored
-
- 04 Jul, 2013 2 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
-
- 03 Jul, 2013 2 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
also move copy_const_value from typerep/entity to irgmod.
-
- 02 Jul, 2013 4 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
This also fixes a bug where irout computation would claim that it removed all tuples, but missed tuples just held by a keepalive edge.
-
Matthias Braun authored
-
Matthias Braun authored
We do not model them as a type anymore, but simply annotate compound_member entities with a bit offset and bit size.
-
- 26 Jun, 2013 1 commit
-
-
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.
-
- 12 Jun, 2013 2 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
-
- 11 Jun, 2013 2 commits
-
-
Matthias Braun authored
- You can now construct the lookup table separately and perform the lowering selectively on irgs (instead of the whole program at once) while reusing the lookup table. - Simplified API a bit. - Remove i_mapper_RuntimeCall. All users are simpler by doing the transformations directly instead of filling in runtime_rt structures...
-
Matthias Braun authored
-
- 06 Jun, 2013 2 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
The backends which support rotl now match for or(shl,shr) patterns.
-
- 15 May, 2013 3 commits
-
-
Matthias Braun authored
Nobody uses it currently, and it is a burden for everyone writing a new pass.
-
Matthias Braun authored
-
Matthias Braun authored
Most aspects of the fp_model flag would need to be enforced by constructing the firm graph in a certain way. Setting it as a flag won't help. Apart from that nearly nothing of the stuff was implemented anyway.
-
- 07 May, 2013 1 commit
-
-
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.
-
- 06 May, 2013 2 commits
-
-
Matthias Braun authored
the templates are now friendlier for usage outside of libfirm
-
Matthias Braun authored
-
- 23 Apr, 2013 1 commit
-
-
Matthias Braun authored
-
- 04 Apr, 2013 1 commit
-
-
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.
-
- 28 Mar, 2013 1 commit
-
-
Matthias Braun authored
-
- 22 Mar, 2013 1 commit
-
-
Andreas Zwinkau authored
Now we have a simple optimization actually using DCA.
-
- 20 Mar, 2013 1 commit
-
-
Andreas Seltenreich authored
-
- 13 Mar, 2013 4 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
- Semantic was strange: shallow checking for pointers, deep checking for structs (because no real solution in case of cycles was implemented) - Implementation was incomplete/buggy - Nobody was using it anyway
-
Matthias Braun authored
-
Matthias Braun authored
-
- 12 Mar, 2013 1 commit
-
-
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.
-