Matthias Braun [Wed, 2 Mar 2011 13:23:01 +0000 (14:23 +0100)]
remove minir dump experiments
Matthias Braun [Wed, 2 Mar 2011 12:53:34 +0000 (13:53 +0100)]
remove unmaintained/broken bespillbelady2
Matthias Braun [Fri, 4 Mar 2011 13:17:02 +0000 (14:17 +0100)]
fix code after TLS-type change
Matthias Braun [Thu, 3 Mar 2011 09:26:10 +0000 (10:26 +0100)]
Fix some -Wmissing-declarations warnings
Matthias Braun [Fri, 4 Mar 2011 12:04:36 +0000 (13:04 +0100)]
fix more size_t warnings
Matthias Braun [Fri, 4 Mar 2011 11:43:00 +0000 (12:43 +0100)]
add compound parameter lower to lower_for_target
Michael Beck [Thu, 3 Mar 2011 21:43:58 +0000 (22:43 +0100)]
Fixed size_t related warnings.
Michael Beck [Thu, 3 Mar 2011 21:31:45 +0000 (22:31 +0100)]
Further pushed size_t: structure analysis uses size_t now.
- simplified code
- deleted macros and useless casts
- fixed some debug messages
Michael Beck [Thu, 3 Mar 2011 20:39:27 +0000 (21:39 +0100)]
Iterate over all segment types when detecting static allocated objects in rta.
Michael Beck [Thu, 3 Mar 2011 20:38:20 +0000 (21:38 +0100)]
TLS type must be a struct type, as stated by the documentation.
Julian Oppermann [Thu, 3 Mar 2011 10:19:21 +0000 (11:19 +0100)]
Fix rapid type analysis: TLS type is a class type.
Michael Beck [Wed, 2 Mar 2011 22:53:34 +0000 (23:53 +0100)]
Fixed size_t related warnings.
Fixed typo.
Michael Beck [Wed, 2 Mar 2011 22:43:49 +0000 (23:43 +0100)]
Fixed size_t related warnings.
Michael Beck [Wed, 2 Mar 2011 22:38:08 +0000 (23:38 +0100)]
Fixed size_t related warnings in dumping code.
Michael Beck [Wed, 2 Mar 2011 22:34:57 +0000 (23:34 +0100)]
Further pushed size_t: callgraph functions uses size_t now.
Michael Beck [Wed, 2 Mar 2011 08:31:25 +0000 (09:31 +0100)]
Fixed size_t related warnings.
Michael Beck [Wed, 2 Mar 2011 08:30:52 +0000 (09:30 +0100)]
Further pushed size_t: trouts functions uses size_t now.
Michael Beck [Tue, 1 Mar 2011 23:33:43 +0000 (00:33 +0100)]
Fixed size_t related warnings.
Michael Beck [Tue, 1 Mar 2011 23:18:47 +0000 (00:18 +0100)]
Further pushed size_t: ir_initializer_t uses size_t now.
Michael Beck [Tue, 1 Mar 2011 23:16:46 +0000 (00:16 +0100)]
Fixed size_t related warnings.
Michael Beck [Tue, 1 Mar 2011 01:47:33 +0000 (02:47 +0100)]
C99 features removed.
Matthias Braun [Mon, 28 Feb 2011 18:48:29 +0000 (19:48 +0100)]
fix warnings because compare_attr gets const nodes now
Matthias Braun [Mon, 28 Feb 2011 15:53:53 +0000 (16:53 +0100)]
ia32: prefere != over < or > relation where possible
Matthias Braun [Mon, 28 Feb 2011 14:43:19 +0000 (15:43 +0100)]
fix amd64 backend since negated_relation may return unordered now
Matthias Braun [Mon, 28 Feb 2011 14:36:38 +0000 (15:36 +0100)]
fix confirms being broken with Cmp changes
Matthias Braun [Mon, 28 Feb 2011 12:26:25 +0000 (13:26 +0100)]
perform gigo first so no optimization sees bad inputs with wrong mode
Matthias Braun [Mon, 28 Feb 2011 12:26:10 +0000 (13:26 +0100)]
fix mux_allowed expecting Proj(Cmp) instead of Cmp
Sebastian Buchwald [Wed, 23 Feb 2011 16:04:44 +0000 (17:04 +0100)]
Fixed warning about strange position of be_Keeps in the schedule.
The warning arises from the removal of the barrier before peephole
optimization. An operand of the barrier is now kept by a new be_Keep
which is scheduled directly after the operand.
Sebastian Buchwald [Thu, 17 Feb 2011 09:38:51 +0000 (10:38 +0100)]
Fixed some typos.
Matthias Braun [Mon, 31 Jan 2011 00:02:17 +0000 (01:02 +0100)]
started adding a relation to the Cmp node
Michael Beck [Thu, 24 Feb 2011 22:36:40 +0000 (22:36 +0000)]
Simplified the code and fixed a comment.
No functional change.
[r28460]
Michael Beck [Thu, 24 Feb 2011 22:21:01 +0000 (22:21 +0000)]
combo uses now the node_cmp_attr_func for lambda.opcode.
This simplifies the code and removes some divergencies between the CSE and
combo.
[r28459]
Michael Beck [Thu, 24 Feb 2011 22:20:50 +0000 (22:20 +0000)]
Constify node_cmp_attr_func.
[r28458]
Michael Beck [Thu, 24 Feb 2011 22:20:25 +0000 (22:20 +0000)]
Split the divmod attribute into one div and one mod attribute.
[r28457]
Matthias Braun [Thu, 24 Feb 2011 18:41:52 +0000 (19:41 +0100)]
generalize bittest pattern
Matthias Braun [Thu, 24 Feb 2011 18:17:02 +0000 (19:17 +0100)]
do gigo earlier to avoid optimisations seeing bad inputs with wrong more
Matthias Braun [Thu, 24 Feb 2011 12:00:10 +0000 (13:00 +0100)]
fix a bunch of whitespace errors in headerfiles
Christoph Mallon [Thu, 24 Feb 2011 14:30:17 +0000 (14:30 +0000)]
Use Lea instead of Add in the ia32 transformer.
[r28454]
Christoph Mallon [Thu, 24 Feb 2011 14:30:15 +0000 (14:30 +0000)]
ia32_Lea cannot use immediates, set the offset instead.
[r28453]
Matthias Braun [Thu, 24 Feb 2011 10:29:09 +0000 (10:29 +0000)]
fix broken bt instruction after ia32 cc rewrite
[r28447]
Andreas Zwinkau [Tue, 22 Feb 2011 10:24:27 +0000 (10:24 +0000)]
Fix beabi call sorting
Difference of idx for Calls with no order relation is stable,
but may lead to circular dependencies. Fixed by looking at
the heights first.
Fixes backend/transform_loop.c (with -O0)
[r28436]
Matthias Braun [Mon, 21 Feb 2011 15:52:05 +0000 (15:52 +0000)]
remove confusing, unused and broken function
[r28435]
Andreas Zwinkau [Mon, 21 Feb 2011 15:27:12 +0000 (15:27 +0000)]
Skip shift dependency if no other users
If a shift operation has a dependency operand (64bit shifts),
then instruction selection inserts a dependency edge between them,
so the scheduler orders them correctly. However, if the operand
is not used, the scheduler is confused about the dependency edge, which
is never resolved.
Fixes opt/longlong.c testcase
[r28434]
Andreas Zwinkau [Mon, 21 Feb 2011 12:58:44 +0000 (12:58 +0000)]
Fix opt/fehler180
Respect block dominance in localopt. Node a may not be live in b's block.
[r28430]
Matthias Braun [Mon, 21 Feb 2011 11:44:34 +0000 (11:44 +0000)]
fix wrong usage of ircons functions
[r28426]
Michael Beck [Fri, 18 Feb 2011 22:44:01 +0000 (22:44 +0000)]
BugFix: ensure that two ASM nodes are never congruent in combo.
Without parsing the text of a ASM node it is not possible to decide whether two
ASM nodes are congruent. Don't even try it.
This fixes testsuite/opt/comboattrs.c
[r28422]
Michael Beck [Fri, 18 Feb 2011 22:22:29 +0000 (22:22 +0000)]
Removed C99 feature, adapt to Firm coding conventions.
[r28421]
Andreas Zwinkau [Fri, 18 Feb 2011 14:24:25 +0000 (14:24 +0000)]
Fix opt/git_error.c testcase
Extend the fix_adds_and_subs pass after strength reduction, which
inserts Convs to make the verifier happy. In case the index
variable is inverted (i=1-i) on each loop iteration, the optimization
may yield a SubP(ConstIu,PhiP), which is rejected by the verifier.
[r28409]
Michael Beck [Thu, 17 Feb 2011 22:20:23 +0000 (22:20 +0000)]
Fixed iterations broken with size_t refactoring.
Some iterations must be done backwards.
[r28401]
Michael Beck [Thu, 17 Feb 2011 20:46:37 +0000 (20:46 +0000)]
Finally fix the "wrong" assert of r28379.
Introduce a get_irn_resmode() and use it at all places in combo where the
part of the opcode is meaned.
[r28400]
Andreas Zwinkau [Thu, 17 Feb 2011 12:56:12 +0000 (12:56 +0000)]
Fixes testcase opt/gzip_error
The backend sometimes creates ProjM with a temporarily broken pn,
so the verifier must not check them.
[r28392]
Matthias Braun [Thu, 17 Feb 2011 12:52:36 +0000 (12:52 +0000)]
fixed broken builtins and added some comments
[r28391]
Matthias Braun [Thu, 17 Feb 2011 00:13:54 +0000 (00:13 +0000)]
Revert reversion of r28379. Maybe this way it's clear why the assert was wrong.
[r28387]
Matthias Braun [Thu, 17 Feb 2011 00:13:53 +0000 (00:13 +0000)]
reworked ia32 condition code handling, remove backend Bound support (really someone should lower it before the backend
[r28386]
Michael Beck [Wed, 16 Feb 2011 21:08:35 +0000 (21:08 +0000)]
Revert r28379.
This optimization is unsafe and breaks Load-Store-optimization.
It is not enough that both loads are connected by the memory edge,
if one Load has an exception-edge, they cannot be parallelized, because
this would destroy exception order.
load-store-opt handle this case and many others, but expect all
Loads in order yet.
opt_parallelize_mem() does this optimization in a wider range.
[r28385]
Michael Beck [Wed, 16 Feb 2011 20:56:43 +0000 (20:56 +0000)]
Revert r28379.
All leaders of a partition must have the same opcode, which is the pair
of <irn_opcode, ir_mode> in Firm.
[r28384]
Matthias Braun [Wed, 16 Feb 2011 17:43:15 +0000 (17:43 +0000)]
fix docu
[r28383]
Matthias Braun [Wed, 16 Feb 2011 15:41:29 +0000 (15:41 +0000)]
improve bittest normalization
[r28382]
Matthias Braun [Wed, 16 Feb 2011 15:39:24 +0000 (15:39 +0000)]
normalize some bittest constructs
[r28381]
Andreas Zwinkau [Wed, 16 Feb 2011 15:00:19 +0000 (15:00 +0000)]
Remove broken assert
[r28379]
Andreas Zwinkau [Wed, 16 Feb 2011 15:00:18 +0000 (15:00 +0000)]
New localopt: parallelize non-volatile loads
[r28378]
Andreas Zwinkau [Wed, 16 Feb 2011 12:17:16 +0000 (12:17 +0000)]
Removed: list_sched_single_block
Was used by the (removed) ILP scheduler. Dead code now.
[r28377]
Michael Beck [Fri, 11 Feb 2011 15:21:45 +0000 (15:21 +0000)]
Further spread size_t.
[r28375]
Michael Beck [Fri, 11 Feb 2011 15:18:07 +0000 (15:18 +0000)]
Fixed comments.
[r28374]
Michael Beck [Fri, 11 Feb 2011 15:17:57 +0000 (15:17 +0000)]
Fixed backward iteration using size_t again.
[r28373]
Matthias Braun [Fri, 11 Feb 2011 15:10:15 +0000 (15:10 +0000)]
use long for now so at least not half the testsuite is broken
[r28372]
Matthias Braun [Fri, 11 Feb 2011 15:04:34 +0000 (15:04 +0000)]
tarval_quo has been removed in favor of tarval_div
[r28371]
Michael Beck [Fri, 11 Feb 2011 14:03:03 +0000 (14:03 +0000)]
Some size_t related fixes.
[r28369]
Michael Beck [Fri, 11 Feb 2011 14:02:53 +0000 (14:02 +0000)]
Simplified implementation by removing unused args and impossible conditions.
There seems to be no "open" methods at all (at least now, this concept seems
to be dead).
[r28368]
Matthias Braun [Fri, 11 Feb 2011 13:52:47 +0000 (13:52 +0000)]
comparing timesteps in different blocks is pointless and here more conservative than necessary
[r28367]
Michael Beck [Fri, 11 Feb 2011 13:19:11 +0000 (13:19 +0000)]
Amendment to r28345-r28346.
Check for mode int on several places where Div nodes are handled:
- fixed arch_dep_replace_div_by_const() (works for int only)
- fixed constant folding for Div nodes (different for float and int)
- fixed transform_node_Div() (some code pathes allowed only for int)
- fixed comment and one missing check in Div mode verifycation
[r28366]
Michael Beck [Fri, 11 Feb 2011 13:18:59 +0000 (13:18 +0000)]
Removed C99 feature.
[r28365]
Michael Beck [Fri, 11 Feb 2011 13:18:49 +0000 (13:18 +0000)]
Windows has no ssize_t ...
[r28364]
Sebastian Buchwald [Thu, 10 Feb 2011 12:24:14 +0000 (12:24 +0000)]
Fixed typo.
[r28361]
Matthias Braun [Wed, 9 Feb 2011 13:55:18 +0000 (13:55 +0000)]
remove Quot node (just use Div instead)
[r28346]
Matthias Braun [Wed, 9 Feb 2011 13:55:16 +0000 (13:55 +0000)]
remove DivMod
[r28345]
Matthias Braun [Wed, 9 Feb 2011 13:55:14 +0000 (13:55 +0000)]
do not output no_dead_strip for anonymous entities on macho targets
[r28344]
Matthias Braun [Wed, 9 Feb 2011 13:55:13 +0000 (13:55 +0000)]
recursively optimize phi to get real minimal SSA-form for reducible CFGs
[r28343]
Matthias Braun [Wed, 9 Feb 2011 13:55:12 +0000 (13:55 +0000)]
ebx is no problem with pic when compiling in 64bit (but the pushl+popl are)
[r28342]
Matthias Braun [Wed, 9 Feb 2011 13:55:11 +0000 (13:55 +0000)]
translate comment to english
[r28341]
Matthias Braun [Wed, 9 Feb 2011 13:55:10 +0000 (13:55 +0000)]
further spread size_t (all warnings on linux/gcc fixed)
[r28340]
Matthias Braun [Wed, 9 Feb 2011 13:55:08 +0000 (13:55 +0000)]
fix bugs introduced in last commit
[r28339]
Michael Beck [Wed, 9 Feb 2011 00:03:31 +0000 (00:03 +0000)]
Further spread size_t.
[r28338]
Matthias Braun [Tue, 8 Feb 2011 18:08:39 +0000 (18:08 +0000)]
further spread size_t
[r28337]
Matthias Braun [Tue, 8 Feb 2011 18:08:38 +0000 (18:08 +0000)]
avoid some warnings by not using macros
[r28336]
Christoph Mallon [Sun, 6 Feb 2011 18:36:30 +0000 (18:36 +0000)]
Handle some cases of </<=/>=/> comparisons in the fixpoint vrp.
[r28334]
Christoph Mallon [Sun, 6 Feb 2011 18:36:27 +0000 (18:36 +0000)]
Add a hint about the infamous pn_Cmp_Lg/Ne mixup in the assertion message of verify_node_Proj_Cmp().
[r28333]
Christoph Mallon [Sun, 6 Feb 2011 18:36:24 +0000 (18:36 +0000)]
Properly check whether sscanf() succeeded.
[r28332]
Christoph Mallon [Sun, 6 Feb 2011 18:36:21 +0000 (18:36 +0000)]
Replace strcpy()+strcat() song and dance by a single sprintf().
[r28331]
Christoph Mallon [Sun, 6 Feb 2011 18:36:17 +0000 (18:36 +0000)]
Fix several size_t related signed/unsigned warnings.
[r28330]
Christoph Mallon [Sun, 6 Feb 2011 18:36:10 +0000 (18:36 +0000)]
Remove surplus {}.
[r28329]
Michael Beck [Sun, 6 Feb 2011 15:05:57 +0000 (15:05 +0000)]
Removed unused parameter from_step of be_get_next_use().
Additionally
- switched the type of a visitor counter to ir_visited_t
- add some doxygen docu
[r28328]
Michael Beck [Sun, 6 Feb 2011 12:15:30 +0000 (12:15 +0000)]
Fixed size_t related warnings by isolating PTR_TO_INT macros.
Additionally:
- rename some variables to reflect its content
- add some doxygen comments
[r28327]
Christoph Mallon [Sat, 5 Feb 2011 15:40:02 +0000 (15:40 +0000)]
Sprinkle const on the in array of node constructors with variable arity.
[r28310]
Michael Beck [Thu, 3 Feb 2011 21:51:17 +0000 (21:51 +0000)]
Fixed more size_T related warnings.
[r28292]
Michael Beck [Thu, 3 Feb 2011 21:50:54 +0000 (21:50 +0000)]
BugFix: when we create a new Conv node in combo's exchange_leader(), this irn has no node_t.
When we create a new Conv node in combo's exchange_leader(), this irn has no node_t.
This is ok, replace the original node in a post walker.
However, as the new node has a visited count of 0 it might be revisited
again.
Fix this by copying the visited count.
This fixes testsuite/opt/fehler179.c
[r28291]
Julius Neuffer [Thu, 3 Feb 2011 13:48:09 +0000 (13:48 +0000)]
add #include <stddef.h>
[r28289]
Christoph Mallon [Mon, 31 Jan 2011 10:18:11 +0000 (10:18 +0000)]
Correct typo in comment.
[r28287]
Christoph Mallon [Mon, 31 Jan 2011 10:18:10 +0000 (10:18 +0000)]
Remove pointless assert: size_t nelts is always >= 0.
[r28286]
Christoph Mallon [Mon, 31 Jan 2011 10:18:09 +0000 (10:18 +0000)]
Add #include for size_t.
[r28285]