- 25 Sep, 2014 1 commit
-
-
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 convention)
-
- 19 Sep, 2014 2 commits
-
-
Andreas Fried authored
-
Andreas Fried authored
-
- 17 Sep, 2014 3 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
The previous approach put the irg link into the block attributes, so while saving memory an extra indirection was necessary. Some testing with valgrind massif+callgrind revealed that a direct link increses peak memory usage by ~1% while also increasing runtime by ~1%. More importantly the code gets a bit simpler and some strange corner cases can be removed with the direct link.
-
Matthias Braun authored
-
- 05 Aug, 2014 1 commit
-
-
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.
-
- 30 Jul, 2014 2 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
The semantics on when to set this flag were unclear, so there weren't any real users anyway.
-
- 18 Jul, 2014 2 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
-
- 15 Apr, 2014 1 commit
-
-
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 Apr, 2014 2 commits
-
-
Christoph Mallon authored
By default a node needs the graph explicitly given iff it has a known block.
-
Christoph Mallon authored
Just inspecting the attribute block is sufficient.
-
- 27 Mar, 2014 1 commit
-
-
Matthias Braun authored
-
- 07 Mar, 2014 1 commit
-
-
Matthias Braun authored
-
- 18 Feb, 2014 3 commits
-
-
Matthias Braun authored
-
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 authored
-
- 06 Feb, 2014 1 commit
-
-
yb9976 authored
-
- 30 Jan, 2014 2 commits
-
-
Matthias Braun authored
= is_entconst(), is_typeconst, get_entconst_entity() and get_typeconst_type()
-
Matthias Braun authored
-
- 28 Jan, 2014 3 commits
-
-
Christoph Mallon authored
-
Christoph Mallon authored
Deduce the mode automatically from the given entity.
-
Christoph Mallon authored
-
- 27 Jan, 2014 1 commit
-
-
Christoph Mallon authored
This removes the strange entity/type duality and we get rid of union symconst_symbol.
-
- 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
-
- 19 Jul, 2013 1 commit
-
-
Andreas Fried authored
This requires to actually compute volatility in a number of places. Therefore, this also adds some helper functions to do that.
-
- 27 Jun, 2013 1 commit
-
-
Andreas Zwinkau authored
This reverts commit 3d1d2c43. Creating a Bad node does not imply that it has users or is reachable within an irg. While clearing the property is certainly correct as a conservative approximation, it should not be necessary.
-
- 26 Jun, 2013 3 commits
-
-
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 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 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.
-
- 25 Jun, 2013 1 commit
-
-
yb9976 authored
-
- 06 Jun, 2013 1 commit
-
-
Matthias Braun authored
The backends which support rotl now match for or(shl,shr) patterns.
-
- 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 1 commit
-
-
Matthias Braun authored
-
- 12 Mar, 2013 2 commits
-
-
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.
-
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.
-
- 12 Dec, 2012 1 commit
-
-
Matthias Braun authored
Just state the copyright and the project the files belong to. You can then find the COPYING file for the whole project.
-
- 04 Dec, 2012 1 commit
-
-
Matthias Braun authored
-