- 20 Apr, 2011 2 commits
-
-
Andreas Zwinkau authored
* removed unnecessary call_tp variable * removed shadowed tp variable (twice)
-
Andreas Zwinkau authored
Similiar to 9d207c0 the call lowering should always use the current entity type, instead of the associate type, which may or may not be a lowered type.
-
- 19 Apr, 2011 3 commits
-
-
Michael Beck authored
-
Andreas Zwinkau authored
- is_lowered_type is not helpful, because the flag may already be set by lower_calls before. This flag should probably be removed in general. - hence lower_mtp must not check for is_lowered_type - lower_Start must update the entity type, but not lower_irg, otherwise lower_Start can not decide, whether a lowering is necessary.
-
Andreas Zwinkau authored
-
- 18 Apr, 2011 3 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
- 17 Apr, 2011 1 commit
-
-
Michael Beck authored
-
- 15 Apr, 2011 23 commits
-
-
yb9976 authored
If there is an unreachable loop (i.e. there is no loop entry edge) then there may is a cycle of blocks with only one predecessor. Since the algorithm handle this case by returning the value of the predecessor, this causes an endless recursion. The fix uses the visited flag to detect such cycles.
-
Andreas Zwinkau authored
-
Andreas Zwinkau authored
* use a local variable for the walker function * use setter function for block settings
-
Andreas Zwinkau authored
The node walk used before was inefficient, since everything but blocks was ignored. Additionally, this fixes a bug, because ssa_cons_finish already used a block walk already, such that unreachable blocks were immatured, but not matured in the scalar-replace optimization. This bug could also be avoided by ensuring cfopt before scalar-replace, but keeping ssacons start and finish symmetric seems to be more robust.
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Matthias Braun authored
-
Christoph Mallon authored
-
Andreas Zwinkau authored
-
- 14 Apr, 2011 6 commits
-
-
Christoph Mallon authored
Merge the lower block into the upper block (instead of the other way round), so we do not turn the upper block, which might still be in the DFS stack, into and ID node.
-
Christoph Mallon authored
It does not fix the if-conv problem (there can still be odd keeps into if diamonds) and it also breaks removal of unreachable code, which is only kept at PhiMs. This reverts commit 351a807ef7c6225b11cc3ac88be60ea0c9db9b7f.
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
-
Christoph Mallon authored
- This is sufficient, because every endless loop must have one kept block. - This also prevents that the if-conversion enters endless loops at strange points. This lead to exchanging a block, which is currently being recursed, so when later returning to the exchanged block (which now is an Id-node) in the walker stuff blew up.
-
- 13 Apr, 2011 2 commits
-
-
Matthias Braun authored
-
Matthias Braun authored
-