Matthias Braun [Mon, 11 Aug 2008 17:09:03 +0000 (17:09 +0000)]
more asm trickery
[r21100]
Michael Beck [Mon, 11 Aug 2008 13:54:26 +0000 (13:54 +0000)]
- special Handling for Confirm/Mux nodes needed:
only some inputs are follower inputs!
- it is enough to check the followers of the smaller split for
Follower -> Leader transition (the 'visited by both' is non-sense)
- Phi followers are disabled yet :-(
[r21096]
Sebastian Buchwald [Mon, 11 Aug 2008 13:11:08 +0000 (13:11 +0000)]
typo
[r21090]
Andreas Zwinkau [Mon, 11 Aug 2008 13:04:01 +0000 (13:04 +0000)]
two more test cases concering Convs and Divs
[r21089]
Christoph Mallon [Mon, 11 Aug 2008 11:36:24 +0000 (11:36 +0000)]
Add a switch to select the ia32 transformer.
[r21085]
Sebastian Buchwald [Mon, 11 Aug 2008 09:24:03 +0000 (09:24 +0000)]
Moved global variable heights to ia32_common_transform.
[r21082]
Michael Beck [Sun, 10 Aug 2008 21:38:20 +0000 (21:38 +0000)]
- ifconv builds Muxb nodes, so allow mode datab for Mux
[r21080]
Michael Beck [Sun, 10 Aug 2008 20:23:01 +0000 (20:23 +0000)]
- More changed:
we have to move ALL Followers to Leaders which gets hit
on both sides of the race, regardless on which side the node stay ...
(really ?)
- factor out follower_to_leader()
- check_list() added
- add always to the end of double-linked lists
- add more assertions
- do not handle follower -> leader for Phi nodes on the cprop list
(why this is needed ?)
[r21079]
Christoph Mallon [Sat, 9 Aug 2008 06:46:22 +0000 (06:46 +0000)]
Fix asm constraint check for 'I': It must be <= 31, not <= 32.
[r21073]
Christoph Mallon [Sat, 9 Aug 2008 06:44:46 +0000 (06:44 +0000)]
Fix macro test which used pbqp transformer when it should not.
[r21072]
Christoph Mallon [Sat, 9 Aug 2008 06:36:48 +0000 (06:36 +0000)]
fehler132: Endless loop in 64bit lowerer with asm-node.
[r21071]
Michael Beck [Sat, 9 Aug 2008 02:18:20 +0000 (02:18 +0000)]
- finally understand HOW n-input nodes made the Follower -> Leader transition
(read the text until end :-), this removes half of the fixes from r21061;
this simplifies segregate_def_use_chains()
- add a partition checker
- opcode contains the arity now (not clear if this is really needed)
- a lot of more assertions()
- do not kill Confirms yet
Still buggy yet :-(
[r21069]
Sebastian Buchwald [Fri, 8 Aug 2008 23:40:43 +0000 (23:40 +0000)]
Moved common code of ia32_pbqp_transform and ia32_transform into separate file.
[r21068]
Christoph Mallon [Fri, 8 Aug 2008 14:56:39 +0000 (14:56 +0000)]
Bug in edgfe for void*-arithmetic: ptr + x == ptr.
[r21063]
Michael Beck [Fri, 8 Aug 2008 08:03:06 +0000 (08:03 +0000)]
Some things not stated (or not clear) in Clicks Diss:
- when splitting partitions, n-input Identities might lose
its follower state -> place them on cprop
- the race split might choose the split out the part NOT containing the
split list g. This destroys split_by(), so we have to exchange X and X' if
this happens
- in cause_split() we have to removed all followers from the touched list:
split() doesn't work with them AND we must check the number of elements an split
with the number of leaders (last part is clearly stated in the Diss)
- a node can only be a follower if the leader is in the same partition!
- !constant for leader -> follower transition is misleading: must be neither
Top nor const (no followers in Top and const partitions)
Other changes:
- we don't have to put on the end of the unwalked set in step(), just NOT
at the start
- combined add_to_touched() and add_to_partition_touched()
- we handle n-input identities in segregate_def_use_chain(), no need for
extra handling in segregate_def_use_chain_1()
- BugFix: ensure, that a node after follower -> leader transition is only
placed on fallen once
- BugFix: errouniously deleted add_to_worklist(Y) if old type was T or Const
- clean keep-alives
[r21061]
Michael Beck [Fri, 8 Aug 2008 07:05:10 +0000 (07:05 +0000)]
- more -f combo tests
[r21058]
Christoph Mallon [Thu, 7 Aug 2008 20:40:20 +0000 (20:40 +0000)]
Transform a - (b - c) into (a - b) + c instead of a + (c - b) iff (b - c) is a pointer.
[r21056]
Christoph Mallon [Thu, 7 Aug 2008 20:13:12 +0000 (20:13 +0000)]
Disallow Sub(int, pointer).
[r21055]
Matthias Braun [Thu, 7 Aug 2008 14:59:28 +0000 (14:59 +0000)]
fehler129
[r21050]
Michael Beck [Thu, 7 Aug 2008 12:12:39 +0000 (12:12 +0000)]
- Add missing case in the identity() function
- removed warning
[r21041]
Michael Beck [Thu, 7 Aug 2008 12:02:50 +0000 (12:02 +0000)]
- speed-up: if a partition has NO follower we can use the old split algorithm
[r21039]
Michael Beck [Thu, 7 Aug 2008 11:57:14 +0000 (11:57 +0000)]
- new (hopefully better) version of the "initially all nodes are congruent leading to non-monotonic behavior" problem fix
[r21037]
Michael Beck [Thu, 7 Aug 2008 11:46:41 +0000 (11:46 +0000)]
BugFix: fixed stupid Alloc != NULL case
[r21035]
Matthias Braun [Thu, 7 Aug 2008 11:44:40 +0000 (11:44 +0000)]
kill nodes better to avoid warnings
[r21033]
Michael Beck [Thu, 7 Aug 2008 11:16:53 +0000 (11:16 +0000)]
- first version with "working" (one example) Leader/Follower support
[r21032]
Christoph Mallon [Wed, 6 Aug 2008 21:01:58 +0000 (21:01 +0000)]
Optimise strct Conv after strict Conv with same mode.
[r21023]
Christoph Mallon [Wed, 6 Aug 2008 20:13:39 +0000 (20:13 +0000)]
Fix transform_node_Cmp() (r20946): Transform Cmp(-a, -b) to Cmp(b, a), not Cmp(a, b).
[r21022]
Michael Beck [Wed, 6 Aug 2008 16:22:51 +0000 (16:22 +0000)]
op_Min and op_Max always exists
[r21018]
Michael Beck [Wed, 6 Aug 2008 14:43:04 +0000 (14:43 +0000)]
- preliminary support for followers, currently switched off
[r21017]
Michael Beck [Wed, 6 Aug 2008 14:40:00 +0000 (14:40 +0000)]
BugFix: there was already a variable named cond ...
[r21016]
Michael Beck [Wed, 6 Aug 2008 14:26:14 +0000 (14:26 +0000)]
- made default opcodes for Min, Max
[r21015]
Michael Beck [Wed, 6 Aug 2008 14:12:02 +0000 (14:12 +0000)]
- revert r20998, not that simple
- links NoMem by hand
[r21014]
Michael Beck [Wed, 6 Aug 2008 13:35:17 +0000 (13:35 +0000)]
- removed Psi nodes, Mux nodes are used again ...
[r21012]
Michael Beck [Wed, 6 Aug 2008 09:12:00 +0000 (09:12 +0000)]
- fixed off by one error
[r21007]
Michael Beck [Tue, 5 Aug 2008 17:39:05 +0000 (17:39 +0000)]
- fixed one Win32 "deprecated posix name" warning
[r21004]
Michael Beck [Tue, 5 Aug 2008 17:34:13 +0000 (17:34 +0000)]
- add two more (void *) casts to should up MSVC const problems
[r21003]
Michael Beck [Tue, 5 Aug 2008 17:33:15 +0000 (17:33 +0000)]
- more comments added, renamed some functions to have dom in its name
[r21002]
Michael Beck [Tue, 5 Aug 2008 16:52:46 +0000 (16:52 +0000)]
- removed C99 stdbool.h from the "official" interface in be.h
[r21001]
Michael Beck [Tue, 5 Aug 2008 16:49:39 +0000 (16:49 +0000)]
removed C99 stdbool.h from the "official" interface in be.h
[r21000]
Michael Beck [Tue, 5 Aug 2008 16:48:29 +0000 (16:48 +0000)]
- removed C99 stdbool.h from the "official" interface in be.h
[r20999]
Michael Beck [Tue, 5 Aug 2008 16:46:01 +0000 (16:46 +0000)]
BugFix: map all anchored nodes of the called graph to nodes of the callers graph
[r20998]
Christoph Mallon [Tue, 5 Aug 2008 14:00:14 +0000 (14:00 +0000)]
Update the liveness of the *operands* when fixing flags users (why is liveness active at this point at all?).
[r20997]
Moritz Kroll [Tue, 5 Aug 2008 11:17:58 +0000 (11:17 +0000)]
For COFF those .type and .size are not required and don't work like this, anyway (gcc doesn't produce them at all for COFF)
[r20989]
Christoph Mallon [Tue, 5 Aug 2008 10:05:51 +0000 (10:05 +0000)]
Emit .type and .size directives for non-common global variables to make the (dynamic) linker happy.
[r20987]
Michael Beck [Tue, 5 Aug 2008 09:15:12 +0000 (09:15 +0000)]
removed unneccessary recalculation of out edges
[r20986]
Moritz Kroll [Tue, 5 Aug 2008 01:55:45 +0000 (01:55 +0000)]
fehler128: Crashes in Belady when compiled with -march=i686
[r20980]
Moritz Kroll [Tue, 5 Aug 2008 00:34:50 +0000 (00:34 +0000)]
Fixed visibility of non-globals in GAS output for COFF
[r20975]
Christoph Mallon [Mon, 4 Aug 2008 18:47:14 +0000 (18:47 +0000)]
Initialise and set the "changed"-flag.
[r20971]
Christoph Mallon [Mon, 4 Aug 2008 18:45:22 +0000 (18:45 +0000)]
Using an obstack is slightly overkill.
[r20970]
Michael Beck [Mon, 4 Aug 2008 16:19:37 +0000 (16:19 +0000)]
- BugFix: invalidate analyis info in graph was modified
[r20969]
Matthias Braun [Mon, 4 Aug 2008 11:48:20 +0000 (11:48 +0000)]
rename lower_Switch to lower_switch to be consistent with the rest
[r20964]
Christoph Mallon [Mon, 4 Aug 2008 09:51:10 +0000 (09:51 +0000)]
Remove unnecessary return; at end of void functions.
[r20961]
Christoph Mallon [Mon, 4 Aug 2008 09:45:57 +0000 (09:45 +0000)]
Remove unnecessary return; at end of void functions.
[r20959]
Christoph Mallon [Sun, 3 Aug 2008 20:23:50 +0000 (20:23 +0000)]
Do not materialise the "strict"-part of strictConv(int) unless the source mode has more bits than the target float mode mantissa.
[r20955]
Michael Beck [Sun, 3 Aug 2008 13:06:16 +0000 (13:06 +0000)]
- add missing transform_Proj_Bound()
[r20953]
Michael Beck [Sun, 3 Aug 2008 12:43:44 +0000 (12:43 +0000)]
- More restructureation:
- add new operations transform_node_Proj() and equivalent_node_Proj()
[r20952]
Michael Beck [Sun, 3 Aug 2008 12:35:36 +0000 (12:35 +0000)]
fixed warnings
[r20951]
Michael Beck [Sun, 3 Aug 2008 12:08:23 +0000 (12:08 +0000)]
- More restructureation:
- add new operations computed_value_Proj() and equivalent_node_Proj()
- computed_value_func() uses now const ir_node *
- removed some old code
[r20950]
Michael Beck [Sun, 3 Aug 2008 11:25:17 +0000 (11:25 +0000)]
- add a cast to suppress DEL_ARR_F() warnings when compiled with MSVC
- killed those spaces before arguments
[r20949]
Michael Beck [Sat, 2 Aug 2008 22:43:03 +0000 (22:43 +0000)]
more fixes for r20946
[r20948]
Michael Beck [Sat, 2 Aug 2008 22:28:13 +0000 (22:28 +0000)]
typo fixed
[r20947]
Michael Beck [Sat, 2 Aug 2008 16:45:26 +0000 (16:45 +0000)]
revised equivalent_node() functions:
- use value_of() instead of is_Const() tests to allow interaction with combo
- new nodes in equivalent_node are NOT allowed
- turn_into_tuple() in equivalent_node is NOT allowed
- do NOT allow equivalent nodes for mode_T nodes!
BugFix:
- value_not_null() checked for wrong pnc
[r20946]
Christoph Mallon [Sat, 2 Aug 2008 12:11:10 +0000 (12:11 +0000)]
ConvI(ConvF(I)) -> I, iff float mantissa >= int mode
[r20940]
Christoph Mallon [Sat, 2 Aug 2008 11:25:40 +0000 (11:25 +0000)]
Replace memcpy() by simple assignment.
[r20939]
Michael Beck [Sat, 2 Aug 2008 06:05:23 +0000 (06:05 +0000)]
- add support for ASM includes, needed for fehler125.c
[r20935]
Michael Beck [Sat, 2 Aug 2008 06:04:29 +0000 (06:04 +0000)]
- increase version number for next development version
[r20934]
Michael Beck [Sat, 2 Aug 2008 06:03:25 +0000 (06:03 +0000)]
- removed useless strlen()
[r20933]
Michael Beck [Sat, 2 Aug 2008 04:42:14 +0000 (04:42 +0000)]
removed debug mask setting
[r20931]
Michael Beck [Sat, 2 Aug 2008 04:03:30 +0000 (04:03 +0000)]
Small improvements:
- use single linked split list instead of double
- no need to store the arity for partitions, as splitting by
inputs is always last and especially AFTER we split by opcode
[r20929]
Moritz Kroll [Fri, 1 Aug 2008 23:28:36 +0000 (23:28 +0000)]
fehler127: WTF - autobreak expects this to compile.
[r20927]
Moritz Kroll [Fri, 1 Aug 2008 23:16:40 +0000 (23:16 +0000)]
fehler126: edg fe crashes.
[r20926]
Moritz Kroll [Fri, 1 Aug 2008 22:14:28 +0000 (22:14 +0000)]
fehler125: Missing support for global asm statements.
[r20925]
Moritz Kroll [Fri, 1 Aug 2008 21:54:59 +0000 (21:54 +0000)]
Reroute End-keep edges when creating critical edges during block scheduling (i.e. the removed block is the End-kept block of an endless loop).
[r20924]
Moritz Kroll [Fri, 1 Aug 2008 20:31:25 +0000 (20:31 +0000)]
Fix fehler123 and fehler124.
[r20923]
Moritz Kroll [Fri, 1 Aug 2008 20:12:57 +0000 (20:12 +0000)]
Incorrect final value due to skipping too many float-float-Convs while transforming.
[r20922]
Moritz Kroll [Fri, 1 Aug 2008 19:33:35 +0000 (19:33 +0000)]
fehler123: ia32 transformer skips too many convs when storing float->int converted value.
[r20921]
Moritz Kroll [Fri, 1 Aug 2008 19:06:15 +0000 (19:06 +0000)]
Fixed switch lowering
[r20919]
Matthias Braun [Fri, 1 Aug 2008 14:15:37 +0000 (14:15 +0000)]
add TEMPLATE backend to Makefile
[r20912]
Matthias Braun [Fri, 1 Aug 2008 13:26:06 +0000 (13:26 +0000)]
ref-results are outdates and potentially wrong
[r20906]
Matthias Braun [Fri, 1 Aug 2008 13:25:40 +0000 (13:25 +0000)]
update testprograms to latest libfirm
[r20905]
Matthias Braun [Fri, 1 Aug 2008 11:50:07 +0000 (11:50 +0000)]
avoid warnings
[r20901]
Matthias Braun [Fri, 1 Aug 2008 11:49:18 +0000 (11:49 +0000)]
avoid warning
[r20900]
Matthias Braun [Fri, 1 Aug 2008 11:46:43 +0000 (11:46 +0000)]
avoid long long in public API
[r20899]
Matthias Braun [Fri, 1 Aug 2008 11:45:47 +0000 (11:45 +0000)]
commit my experimental new reassoc before it gets lost (but keep it disabled)
[r20898]
Matthias Braun [Fri, 1 Aug 2008 10:48:51 +0000 (10:48 +0000)]
fix warning
[r20893]
Matthias Braun [Fri, 1 Aug 2008 10:44:33 +0000 (10:44 +0000)]
small optimisation (avoids edges_notify_edge)
[r20892]
Michael Beck [Fri, 1 Aug 2008 10:39:41 +0000 (10:39 +0000)]
add comment
[r20890]
Michael Beck [Fri, 1 Aug 2008 10:27:55 +0000 (10:27 +0000)]
removed two not absolutely necessary const's preventing warnings on VC7
[r20889]
Michael Beck [Fri, 1 Aug 2008 10:26:43 +0000 (10:26 +0000)]
- tarval_sub() now has an additional parameter, needed for
mode_ref - mode_ref = mode_int operations
- more doxygen docu added
- allow reference mode arithmetic
[r20888]
Michael Beck [Fri, 1 Aug 2008 10:03:27 +0000 (10:03 +0000)]
fixed const
[r20887]
Michael Beck [Fri, 1 Aug 2008 09:56:22 +0000 (09:56 +0000)]
ptr add/sub test
[r20886]
Matthias Braun [Fri, 1 Aug 2008 09:24:36 +0000 (09:24 +0000)]
firm already had kill_node, no need to be_kill_node
[r20885]
Christoph Mallon [Fri, 1 Aug 2008 08:51:22 +0000 (08:51 +0000)]
Add two break; missing in r20857.
[r20881]
Christoph Mallon [Fri, 1 Aug 2008 08:14:28 +0000 (08:14 +0000)]
Skip a single downconv even if it has multiple users.
[r20878]
Christoph Mallon [Fri, 1 Aug 2008 07:47:33 +0000 (07:47 +0000)]
Include limits.h for LONG_{MAX,MIN}.
[r20877]
Moritz Kroll [Fri, 1 Aug 2008 02:16:23 +0000 (02:16 +0000)]
Testing helps... *yawn*
[r20875]
Moritz Kroll [Fri, 1 Aug 2008 01:53:20 +0000 (01:53 +0000)]
Implemented simple switch lowering
[r20872]
Michael Beck [Thu, 31 Jul 2008 22:19:53 +0000 (22:19 +0000)]
- removed a now superfluous function
[r20871]
Sebastian Buchwald [Thu, 31 Jul 2008 21:33:59 +0000 (21:33 +0000)]
Deactivate edges before freeing an irg.
[r20869]
Sebastian Buchwald [Thu, 31 Jul 2008 21:26:36 +0000 (21:26 +0000)]
Fixed more memory leaks.
[r20868]