Matthias Braun [Wed, 18 Aug 2010 21:50:00 +0000 (21:50 +0000)]
ia32: fix bug introduced when improving doz matcher, cleanup Mux matcher
[r27946]
Matthias Braun [Wed, 18 Aug 2010 21:49:59 +0000 (21:49 +0000)]
really keep mux intact if KEEP_MUX is enabled; cleanup and improve some Mux optimisation rules
[r27945]
Matthias Braun [Wed, 18 Aug 2010 21:49:58 +0000 (21:49 +0000)]
remove lots of unnecessary and dangerous current_ir_graph usages
[r27944]
Matthias Braun [Wed, 18 Aug 2010 13:37:11 +0000 (13:37 +0000)]
backend is responsible for defining what lowering operations need to be performed => so the logical thing is to use a backend callback for performing lowerings
[r27938]
Matthias Braun [Wed, 18 Aug 2010 13:37:10 +0000 (13:37 +0000)]
make if-conversion and archdep optimisations get their information directly from the backend without frontends needing special code to transfer these infos
[r27937]
Matthias Braun [Wed, 18 Aug 2010 13:37:09 +0000 (13:37 +0000)]
doz pattern matcher missed some cases
[r27936]
Matthias Braun [Thu, 12 Aug 2010 12:16:48 +0000 (12:16 +0000)]
identifiers starting with _ are reserved; remove this bad practice
[r27924]
Matthias Braun [Thu, 12 Aug 2010 12:16:45 +0000 (12:16 +0000)]
document the new behaviour of set_entity_owner which has been there for a while now
[r27923]
Sebastian Buchwald [Mon, 9 Aug 2010 19:58:56 +0000 (19:58 +0000)]
Adapt to coding conventions.
[r27919]
Matthias Braun [Mon, 9 Aug 2010 14:53:12 +0000 (14:53 +0000)]
sparc: redo and improve sparc immediate handling (low-part after sethi is now omitted if it is 0)
[r27918]
Matthias Braun [Mon, 9 Aug 2010 14:53:11 +0000 (14:53 +0000)]
sparc: mark Mul nodes as rematerializable
[r27917]
Matthias Braun [Mon, 9 Aug 2010 14:53:11 +0000 (14:53 +0000)]
use sub_immediate in case of add a,0x1000
[r27916]
Matthias Braun [Mon, 9 Aug 2010 14:53:10 +0000 (14:53 +0000)]
sparc: matching rules for andn and orn
[r27915]
Matthias Braun [Mon, 9 Aug 2010 14:53:09 +0000 (14:53 +0000)]
sparc: pattern to match xnor
[r27914]
Matthias Braun [Mon, 9 Aug 2010 14:53:08 +0000 (14:53 +0000)]
improved normalisation of not+eor nodes
[r27913]
Matthias Braun [Mon, 9 Aug 2010 14:53:07 +0000 (14:53 +0000)]
sparc: No need for Minus, Not, Nop nodes. Implement with the real instructions Sub, XNor and zero register
[r27912]
Matthias Braun [Mon, 9 Aug 2010 14:53:06 +0000 (14:53 +0000)]
sparc: use %g0 for 0 constants
[r27911]
Matthias Braun [Mon, 9 Aug 2010 14:53:05 +0000 (14:53 +0000)]
extend register allocation verifier to check alignment and wide constraints
[r27910]
Matthias Braun [Mon, 9 Aug 2010 14:53:04 +0000 (14:53 +0000)]
allow ignore registers as inputs of Phis; cleanup bessadestr.c
[r27909]
Matthias Braun [Mon, 9 Aug 2010 14:53:03 +0000 (14:53 +0000)]
adapt daemelspiller to wide register values
[r27908]
Matthias Braun [Mon, 9 Aug 2010 14:53:02 +0000 (14:53 +0000)]
correctly use wide values in automatic phi register requirement determination
[r27907]
Matthias Braun [Mon, 9 Aug 2010 14:53:02 +0000 (14:53 +0000)]
reformat and cleanup benode.c
[r27906]
Matthias Braun [Mon, 9 Aug 2010 14:53:01 +0000 (14:53 +0000)]
cleanup spill code; assert that no wide values are used yet
[r27905]
Matthias Braun [Mon, 9 Aug 2010 14:52:59 +0000 (14:52 +0000)]
fix beabi not setting width in register constraint
[r27904]
Matthias Braun [Mon, 9 Aug 2010 14:52:59 +0000 (14:52 +0000)]
dump double and aligned register requirements
[r27903]
Matthias Braun [Mon, 9 Aug 2010 14:52:58 +0000 (14:52 +0000)]
sparc: implement all floating point operations in single, double and quad mode
[r27902]
Matthias Braun [Mon, 9 Aug 2010 14:52:57 +0000 (14:52 +0000)]
sparc: remove old code which was only valid for old beabi handling
[r27901]
Matthias Braun [Mon, 9 Aug 2010 14:52:47 +0000 (14:52 +0000)]
cleanup, simplify hungarian algorithm implementation
[r27900]
Michael Beck [Sat, 7 Aug 2010 14:47:29 +0000 (14:47 +0000)]
Mostly reverted r27894, removed usage of unreachable.
The gain from using an extra Unreachable is rather low, plus the noreturn call must probably be keeped anyway, so revrt it again
[r27898]
Michael Beck [Sat, 7 Aug 2010 10:07:51 +0000 (10:07 +0000)]
Add an Unreachable node.
Unreachable nodes mark unreachable control flow (after noreturn calls). They
"eat" the memory, saving the two keeps used before.
Works mostly yet (scheduler issues warning about not scheduled Unreachable's)
[r27894]
Michael Beck [Sat, 7 Aug 2010 09:07:46 +0000 (09:07 +0000)]
C99 feature removed.
[r27892]
Sebastian Buchwald [Fri, 6 Aug 2010 19:01:11 +0000 (19:01 +0000)]
Panic in case of an invalid solution.
[r27891]
Sebastian Buchwald [Fri, 6 Aug 2010 19:01:10 +0000 (19:01 +0000)]
Fixed warning.
[r27890]
Sebastian Buchwald [Fri, 6 Aug 2010 17:55:59 +0000 (17:55 +0000)]
Ignore kaps directory.
[r27887]
Christoph Mallon [Fri, 6 Aug 2010 17:14:53 +0000 (17:14 +0000)]
Remove redundant reg_req from SPARC nodes with constructors.
[r27886]
Christoph Mallon [Fri, 6 Aug 2010 17:14:52 +0000 (17:14 +0000)]
Correct and clean up gen_Abs() for SPARC: The Sub was the wrong way round.
[r27885]
Christoph Mallon [Fri, 6 Aug 2010 17:14:51 +0000 (17:14 +0000)]
Indent.
[r27884]
Christoph Mallon [Fri, 6 Aug 2010 17:14:50 +0000 (17:14 +0000)]
Remove redundant bitset_clear_all() before bitset_copy().
[r27883]
Christoph Mallon [Fri, 6 Aug 2010 17:14:49 +0000 (17:14 +0000)]
Directly remember the pointer instead of an index to reconstruct the pointer.
[r27882]
Christoph Mallon [Fri, 6 Aug 2010 17:14:46 +0000 (17:14 +0000)]
Remove a loop invariant summand from finding a minimum.
[r27881]
Matthias Braun [Fri, 6 Aug 2010 08:43:29 +0000 (08:43 +0000)]
fix for my last commit
[r27879]
Matthias Braun [Fri, 6 Aug 2010 08:42:18 +0000 (08:42 +0000)]
Remove VISITED in link-field hackery. Cleanups.
[r27878]
Sebastian Buchwald [Fri, 6 Aug 2010 08:08:04 +0000 (08:08 +0000)]
Fixed comment.
[r27877]
Matthias Braun [Thu, 5 Aug 2010 19:04:58 +0000 (19:04 +0000)]
make sure the width field is always initialized to 1 for normal constraints
[r27875]
Matthias Braun [Thu, 5 Aug 2010 19:04:57 +0000 (19:04 +0000)]
backend: created a (not so nice) macro to iterate over all values defined by an instruction. This avoids lots of small-scale code duplication in the spillers and the prefallocator
[r27874]
Matthias Braun [Thu, 5 Aug 2010 19:04:55 +0000 (19:04 +0000)]
fix lower_mode_b relying on current_ir_graph being equal to the passed irg; make lower_mode_b invalidate outedges if something changes
[r27873]
Thomas Bersch [Wed, 4 Aug 2010 14:55:18 +0000 (14:55 +0000)]
Now bipartite matching can be used for pre-coloring restricted cliques after a perm.
[r27871]
Matthias Braun [Mon, 2 Aug 2010 14:35:03 +0000 (14:35 +0000)]
fix some cases where doubleword lowering didn't use the unsigned type for the lower word
[r27868]
Christoph Mallon [Mon, 2 Aug 2010 14:03:50 +0000 (14:03 +0000)]
Duplicate GetEIP when transforming.
[r27865]
Matthias Braun [Mon, 2 Aug 2010 11:50:40 +0000 (11:50 +0000)]
simplify doubleword lowering: we have a type for each mode by default nowadays
[r27861]
Matthias Braun [Mon, 2 Aug 2010 11:50:39 +0000 (11:50 +0000)]
remove odd mode->index, index->mode API for statistics, ir_prog already had such an API
[r27860]
Sebastian Buchwald [Fri, 30 Jul 2010 14:33:54 +0000 (14:33 +0000)]
Disable timer.
[r27859]
Sebastian Buchwald [Fri, 30 Jul 2010 14:22:20 +0000 (14:22 +0000)]
Unify output format.
[r27857]
Matthias Braun [Fri, 30 Jul 2010 08:28:45 +0000 (08:28 +0000)]
bring back Carry and Borrow (firm_decomp apparently uses it) and add a note that the backends don't support them
[r27849]
Sebastian Buchwald [Thu, 29 Jul 2010 13:37:31 +0000 (13:37 +0000)]
can not -> cannot.
[r27848]
Matthias Braun [Thu, 29 Jul 2010 11:36:39 +0000 (11:36 +0000)]
allow nodes with more inputs in prefallocator (some sparc keeps have more than 32 inputs)
[r27847]
Matthias Braun [Thu, 29 Jul 2010 09:27:59 +0000 (09:27 +0000)]
use new double wide register requirements; implement calling convention for sparc 64bit floats
[r27846]
Matthias Braun [Thu, 29 Jul 2010 09:27:58 +0000 (09:27 +0000)]
sparc: remove uninterpreted (and often wrongly used) MATCH_SIZE_NEUTRAL match flag for now
[r27845]
Matthias Braun [Wed, 28 Jul 2010 14:56:55 +0000 (14:56 +0000)]
avoid unnecessary #define in public headers
[r27837]
Matthias Braun [Wed, 28 Jul 2010 14:56:54 +0000 (14:56 +0000)]
no unnecessary and cryptic abreviations: rename vrfy to verify
[r27836]
Matthias Braun [Wed, 28 Jul 2010 10:52:15 +0000 (10:52 +0000)]
fix doxygen warnings
[r27835]
Matthias Braun [Wed, 28 Jul 2010 10:52:14 +0000 (10:52 +0000)]
automatically generate most declarations for node getters+setters and is_XXX functions
[r27834]
Matthias Braun [Wed, 28 Jul 2010 10:52:13 +0000 (10:52 +0000)]
replace is_no_Block() with !is_Block()
[r27833]
Matthias Braun [Wed, 28 Jul 2010 10:52:12 +0000 (10:52 +0000)]
automatically generate code to allocate the 'frag_arr' for fragile nodes; improve readability of autogenerated code
[r27832]
Matthias Braun [Wed, 28 Jul 2010 08:35:08 +0000 (08:35 +0000)]
remove unused/unsupported Carry and Borrow nodes
[r27831]
Matthias Braun [Wed, 28 Jul 2010 08:35:08 +0000 (08:35 +0000)]
automatically generate opcode declarations from ir_spec
[r27830]
Matthias Braun [Wed, 28 Jul 2010 08:35:07 +0000 (08:35 +0000)]
arm: we don't use the generic be_Call anymore, no need for an emitter
[r27829]
Matthias Braun [Tue, 27 Jul 2010 17:57:59 +0000 (17:57 +0000)]
draft for register width specifications
[r27828]
Matthias Braun [Tue, 27 Jul 2010 17:57:58 +0000 (17:57 +0000)]
implement floatingpoint compares
[r27827]
Matthias Braun [Tue, 27 Jul 2010 17:57:57 +0000 (17:57 +0000)]
sparc: cleanup register classes, remove some unused code, try to cleanup Div
[r27826]
Matthias Braun [Tue, 27 Jul 2010 17:57:57 +0000 (17:57 +0000)]
first implementation of floatingpoint arithmetic operations
[r27825]
Matthias Braun [Tue, 27 Jul 2010 17:57:56 +0000 (17:57 +0000)]
use custom spillslot coalescer so int->float and float->int gets proper spillslots
[r27824]
Matthias Braun [Tue, 27 Jul 2010 17:57:56 +0000 (17:57 +0000)]
fix Ldf/Stf emitter
[r27823]
Matthias Braun [Tue, 27 Jul 2010 17:57:55 +0000 (17:57 +0000)]
fix warnings
[r27822]
Matthias Braun [Tue, 27 Jul 2010 17:57:55 +0000 (17:57 +0000)]
beflags: transform modifies_flags property into a callback, use default rematerialisation callback in backends where necessary
[r27821]
Matthias Braun [Tue, 27 Jul 2010 09:31:51 +0000 (09:31 +0000)]
replace psets with arrays to make the compiler more predictable across runs (and a little bit more efficient)
[r27820]
Matthias Braun [Tue, 27 Jul 2010 09:31:50 +0000 (09:31 +0000)]
no need to pass environment stuff aroudn that can be retireved from irg
[r27819]
Matthias Braun [Tue, 27 Jul 2010 06:44:46 +0000 (06:44 +0000)]
beflags: move be_Keep logic out of is_modify_flags function where it didn't really belong
[r27818]
Matthias Braun [Mon, 26 Jul 2010 17:42:48 +0000 (17:42 +0000)]
arm: remove unused code, using tst to avoid cmp,0 not necessary
[r27817]
Matthias Braun [Mon, 26 Jul 2010 17:42:48 +0000 (17:42 +0000)]
cleanup/refactor bipartite matching with hungarian method
[r27816]
Matthias Braun [Mon, 26 Jul 2010 09:06:28 +0000 (09:06 +0000)]
verify that start black has no predecessors
[r27814]
Matthias Braun [Mon, 26 Jul 2010 09:06:27 +0000 (09:06 +0000)]
automatically generated pn_ numbers from the spec file
[r27813]
Michael Beck [Sat, 24 Jul 2010 01:24:34 +0000 (01:24 +0000)]
Explicitly initialize the is_load_store attribute.
[r27805]
Michael Beck [Sat, 24 Jul 2010 01:00:56 +0000 (01:00 +0000)]
Add preliminary support for Clz instruction.
[r27803]
Michael Beck [Sat, 24 Jul 2010 00:30:20 +0000 (00:30 +0000)]
small simplification.
[r27801]
Michael Beck [Sat, 24 Jul 2010 00:23:35 +0000 (00:23 +0000)]
Implemented RSB support.
[r27800]
Michael Beck [Sat, 24 Jul 2010 00:13:34 +0000 (00:13 +0000)]
Improved MVN support.
[r27799]
Michael Beck [Sat, 24 Jul 2010 00:07:26 +0000 (00:07 +0000)]
Implemented Bic support.
[r27798]
Michael Beck [Fri, 23 Jul 2010 23:55:24 +0000 (23:55 +0000)]
Improve barrel shifter usage.
a + (b SHIFT c) can now be encoded into one instruction.
[r27797]
Michael Beck [Fri, 23 Jul 2010 23:21:59 +0000 (23:21 +0000)]
BugFix: return an empty type name if retrieve_type_dbg is NULL
This fixes a Windows crash.
[r27796]
Michael Beck [Fri, 23 Jul 2010 22:05:55 +0000 (22:05 +0000)]
Various small changes.
- kicked superfluous block calculation at several places, done at helper functions anyway
- And, Or, Eor are integer ops, no need to check for fp
- Proj nodes does not have debug info, no need to add some
- DeMorgan applied
- fixed typos
- kicked C99 comments
- add/fixed some doxygen comments
[r27794]
Michael Beck [Fri, 23 Jul 2010 21:19:36 +0000 (21:19 +0000)]
add doxygen comment
[r27793]
Michael Beck [Fri, 23 Jul 2010 21:15:27 +0000 (21:15 +0000)]
Updated doxygen comment.
[r27792]
Matthias Braun [Fri, 23 Jul 2010 12:00:40 +0000 (12:00 +0000)]
make add_missing_keeps more robust in case of SwitchJumps
[r27791]
Matthias Braun [Fri, 23 Jul 2010 12:00:39 +0000 (12:00 +0000)]
sparc: fix MemPerm emitter as far as possible
[r27790]
Matthias Braun [Fri, 23 Jul 2010 12:00:39 +0000 (12:00 +0000)]
output all sparc specific attributes in dumper
[r27789]
Matthias Braun [Thu, 22 Jul 2010 19:08:05 +0000 (19:08 +0000)]
perform custom abi construction in sparc as well to handle floatingpoint
[r27788]
Matthias Braun [Thu, 22 Jul 2010 19:08:04 +0000 (19:08 +0000)]
implement sparc floatingpoint constants
[r27787]
Matthias Braun [Thu, 22 Jul 2010 19:07:47 +0000 (19:07 +0000)]
sparc: fix unsigned compares and cleanup cmp attributes
[r27786]
Matthias Braun [Thu, 22 Jul 2010 19:07:47 +0000 (19:07 +0000)]
improve assert in abihelper register value getter
[r27785]