libfirm
13 years agoremove some unnecessary #defines
Matthias Braun [Wed, 22 Sep 2010 14:07:31 +0000 (14:07 +0000)]
remove some unnecessary #defines

[r28008]

13 years agosparc: fix wrongly specified Stf emitter
Matthias Braun [Fri, 10 Sep 2010 13:29:26 +0000 (13:29 +0000)]
sparc: fix wrongly specified Stf emitter

[r28004]

13 years agosparc: fix fmov emitter
Matthias Braun [Fri, 10 Sep 2010 13:29:25 +0000 (13:29 +0000)]
sparc: fix fmov emitter

[r28003]

13 years agosparc: implement/fix remaining float<->int conversions
Matthias Braun [Fri, 10 Sep 2010 13:29:25 +0000 (13:29 +0000)]
sparc: implement/fix remaining float<->int conversions

[r28002]

13 years agoextend switch lowerer to produce the out-of-bounds check in firm-IR if necessary
Matthias Braun [Fri, 10 Sep 2010 13:29:24 +0000 (13:29 +0000)]
extend switch lowerer to produce the out-of-bounds check in firm-IR if necessary

[r28001]

13 years agoinvoke switch lowerer in target specific lowering pass
Matthias Braun [Fri, 10 Sep 2010 13:29:23 +0000 (13:29 +0000)]
invoke switch lowerer in target specific lowering pass

[r28000]

13 years agosparc: fix fdiv having the wrong mode
Matthias Braun [Fri, 10 Sep 2010 13:29:23 +0000 (13:29 +0000)]
sparc: fix fdiv having the wrong mode

[r27999]

13 years agosparc: rename misnamed node Slr to Srl
Matthias Braun [Fri, 10 Sep 2010 13:29:22 +0000 (13:29 +0000)]
sparc: rename misnamed node Slr to Srl

[r27998]

13 years agosparc: fix bug where calls with many parameters were broken
Matthias Braun [Fri, 10 Sep 2010 13:29:22 +0000 (13:29 +0000)]
sparc: fix bug where calls with many parameters were broken

[r27997]

13 years agosparc: renumber emit shortcuts to start with 0 instead of 1
Matthias Braun [Fri, 10 Sep 2010 13:29:21 +0000 (13:29 +0000)]
sparc: renumber emit shortcuts to start with 0 instead of 1

[r27996]

13 years agosave input requirements in be_info without complicated callback
Matthias Braun [Fri, 10 Sep 2010 13:26:25 +0000 (13:26 +0000)]
save input requirements in be_info without complicated callback

[r27995]

13 years agowe can do without the phi register requirement guessing nowadays
Matthias Braun [Fri, 10 Sep 2010 13:26:24 +0000 (13:26 +0000)]
we can do without the phi register requirement guessing nowadays

[r27994]

13 years agoia32: remove unnecessary safety check
Matthias Braun [Fri, 10 Sep 2010 13:26:23 +0000 (13:26 +0000)]
ia32: remove unnecessary safety check

[r27993]

13 years agorefactoring: split stackframe handling completely from beabi struct
Matthias Braun [Fri, 10 Sep 2010 13:26:23 +0000 (13:26 +0000)]
refactoring: split stackframe handling completely from beabi struct

[r27992]

13 years agolower_switch: retain debug info, some smaller cleanups
Matthias Braun [Fri, 10 Sep 2010 13:26:22 +0000 (13:26 +0000)]
lower_switch: retain debug info, some smaller cleanups

[r27991]

13 years agono need for an explicit lower_mode_b pass, it should only be invoked by the backend
Matthias Braun [Fri, 10 Sep 2010 13:26:21 +0000 (13:26 +0000)]
no need for an explicit lower_mode_b pass, it should only be invoked by the backend

[r27990]

13 years agoremove normalize_proj_nodes, Projs aren't in the wrong place anyway (or the verifier...
Matthias Braun [Fri, 10 Sep 2010 13:26:21 +0000 (13:26 +0000)]
remove normalize_proj_nodes, Projs aren't in the wrong place anyway (or the verifier complains)

[r27989]

13 years agoremove fragile_ops flag, it just suppresses valuable information and even was disable...
Matthias Braun [Fri, 10 Sep 2010 13:26:20 +0000 (13:26 +0000)]
remove fragile_ops flag, it just suppresses valuable information and even was disabled by default

[r27988]

13 years agoremove some unnecessary #defines and unused code
Matthias Braun [Fri, 10 Sep 2010 13:26:19 +0000 (13:26 +0000)]
remove some unnecessary #defines and unused code

[r27987]

13 years agoC99 feature removed, fixed typo.
Michael Beck [Wed, 8 Sep 2010 20:25:45 +0000 (20:25 +0000)]
C99 feature removed, fixed typo.

[r27979]

13 years agoallow backend to specify endianess, rewrite bitfield emitter to handle little and...
Matthias Braun [Mon, 6 Sep 2010 13:05:07 +0000 (13:05 +0000)]
allow backend to specify endianess, rewrite bitfield emitter to handle little and big-endian byte order

[r27974]

13 years agosparc: first attempt at using delay slots
Matthias Braun [Mon, 6 Sep 2010 13:05:06 +0000 (13:05 +0000)]
sparc: first attempt at using delay slots

[r27973]

13 years agosparc: use arch_dependent mul/div lowering
Matthias Braun [Mon, 6 Sep 2010 13:05:06 +0000 (13:05 +0000)]
sparc: use arch_dependent mul/div lowering

[r27972]

13 years agosparc: fix bitopcc bugs
Matthias Braun [Mon, 6 Sep 2010 13:05:05 +0000 (13:05 +0000)]
sparc: fix bitopcc bugs

[r27971]

13 years agorename heights_t to ir_heights_t, improve docu a bit, rename to heights.[ch]
Matthias Braun [Mon, 6 Sep 2010 13:05:04 +0000 (13:05 +0000)]
rename heights_t to ir_heights_t, improve docu a bit, rename to heights.[ch]

[r27970]

13 years agosparc: fix abort when matching addressmode Adds
Matthias Braun [Mon, 6 Sep 2010 13:05:04 +0000 (13:05 +0000)]
sparc: fix abort when matching addressmode Adds

[r27969]

13 years agoremove Abs node, backends can match the abs patterns themselfes
Matthias Braun [Mon, 6 Sep 2010 13:05:03 +0000 (13:05 +0000)]
remove Abs node, backends can match the abs patterns themselfes

[r27968]

13 years agoremove useless code from iropt
Matthias Braun [Mon, 6 Sep 2010 13:05:01 +0000 (13:05 +0000)]
remove useless code from iropt

[r27967]

13 years agosparc: new patterns to match comparisons of bitoperations with zero
Matthias Braun [Thu, 19 Aug 2010 15:56:42 +0000 (15:56 +0000)]
sparc: new patterns to match comparisons of bitoperations with zero

[r27959]

13 years agosparc: implement mode-neutral matching; support immediates for Cmp node
Matthias Braun [Thu, 19 Aug 2010 15:56:41 +0000 (15:56 +0000)]
sparc: implement mode-neutral matching; support immediates for Cmp node

[r27958]

13 years agosparc: preliminary SwitchJmp implementation
Matthias Braun [Thu, 19 Aug 2010 15:56:41 +0000 (15:56 +0000)]
sparc: preliminary SwitchJmp implementation

[r27957]

13 years agosparc: mostly implement reg+reg address mode
Matthias Braun [Thu, 19 Aug 2010 15:56:40 +0000 (15:56 +0000)]
sparc: mostly implement reg+reg address mode

[r27956]

13 years agosparc: specifying ins in constructor variants makes no sense
Matthias Braun [Thu, 19 Aug 2010 15:56:39 +0000 (15:56 +0000)]
sparc: specifying ins in constructor variants makes no sense

[r27955]

13 years agoa normalisation which shrinks values on the right shift operand because of modulo_shi...
Matthias Braun [Thu, 19 Aug 2010 15:56:38 +0000 (15:56 +0000)]
a normalisation which shrinks values on the right shift operand because of modulo_shift behaviour. As a nice side-effect this simplifies the Rotl matcher

[r27954]

13 years agoonly construct Rotl if backend supports it
Matthias Braun [Thu, 19 Aug 2010 15:56:36 +0000 (15:56 +0000)]
only construct Rotl if backend supports it

[r27953]

13 years agosparc: implement div instructions correctly
Matthias Braun [Thu, 19 Aug 2010 15:56:36 +0000 (15:56 +0000)]
sparc: implement div instructions correctly

[r27952]

13 years agosparc: rewrite address mode matching, we now use offsets for load/store nodes and...
Matthias Braun [Thu, 19 Aug 2010 15:56:35 +0000 (15:56 +0000)]
sparc: rewrite address mode matching, we now use offsets for load/store nodes and need less special nodes

[r27951]

13 years agosparc: remove entity_sign, gas/elf doesn't support it anyway
Matthias Braun [Thu, 19 Aug 2010 15:56:34 +0000 (15:56 +0000)]
sparc: remove entity_sign, gas/elf doesn't support it anyway

[r27950]

13 years agosparc: no need for is_load_store attribute anymore
Matthias Braun [Thu, 19 Aug 2010 15:56:34 +0000 (15:56 +0000)]
sparc: no need for is_load_store attribute anymore

[r27949]

13 years agonew localopt: Cmp(Eor(x,y),0) <=> Cmp(x,y) for the Equals and NotEquals case
Matthias Braun [Thu, 19 Aug 2010 15:56:33 +0000 (15:56 +0000)]
new localopt: Cmp(Eor(x,y),0) <=> Cmp(x,y) for the Equals and NotEquals case

[r27948]

13 years agouse operands_are_normalized when permuting Not operations on Xor inputs to avoid...
Matthias Braun [Thu, 19 Aug 2010 15:56:32 +0000 (15:56 +0000)]
use operands_are_normalized when permuting Not operations on Xor inputs to avoid commutative normalisation turning it back

[r27947]

13 years agoia32: fix bug introduced when improving doz matcher, cleanup Mux matcher
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]

13 years agoreally keep mux intact if KEEP_MUX is enabled; cleanup and improve some Mux optimisat...
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]

13 years agoremove lots of unnecessary and dangerous current_ir_graph usages
Matthias Braun [Wed, 18 Aug 2010 21:49:58 +0000 (21:49 +0000)]
remove lots of unnecessary and dangerous current_ir_graph usages

[r27944]

13 years agobackend is responsible for defining what lowering operations need to be performed...
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]

13 years agomake if-conversion and archdep optimisations get their information directly from...
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]

13 years agodoz pattern matcher missed some cases
Matthias Braun [Wed, 18 Aug 2010 13:37:09 +0000 (13:37 +0000)]
doz pattern matcher missed some cases

[r27936]

13 years agoidentifiers starting with _ are reserved; remove this bad practice
Matthias Braun [Thu, 12 Aug 2010 12:16:48 +0000 (12:16 +0000)]
identifiers starting with _ are reserved; remove this bad practice

[r27924]

13 years agodocument the new behaviour of set_entity_owner which has been there for a while now
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]

13 years agoAdapt to coding conventions.
Sebastian Buchwald [Mon, 9 Aug 2010 19:58:56 +0000 (19:58 +0000)]
Adapt to coding conventions.

[r27919]

13 years agosparc: redo and improve sparc immediate handling (low-part after sethi is now omitted...
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]

13 years agosparc: mark Mul nodes as rematerializable
Matthias Braun [Mon, 9 Aug 2010 14:53:11 +0000 (14:53 +0000)]
sparc: mark Mul nodes as rematerializable

[r27917]

13 years agouse sub_immediate in case of add a,0x1000
Matthias Braun [Mon, 9 Aug 2010 14:53:11 +0000 (14:53 +0000)]
use sub_immediate in case of add a,0x1000

[r27916]

13 years agosparc: matching rules for andn and orn
Matthias Braun [Mon, 9 Aug 2010 14:53:10 +0000 (14:53 +0000)]
sparc: matching rules for andn and orn

[r27915]

13 years agosparc: pattern to match xnor
Matthias Braun [Mon, 9 Aug 2010 14:53:09 +0000 (14:53 +0000)]
sparc: pattern to match xnor

[r27914]

13 years agoimproved normalisation of not+eor nodes
Matthias Braun [Mon, 9 Aug 2010 14:53:08 +0000 (14:53 +0000)]
improved normalisation of not+eor nodes

[r27913]

13 years agosparc: No need for Minus, Not, Nop nodes. Implement with the real instructions Sub...
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]

13 years agosparc: use %g0 for 0 constants
Matthias Braun [Mon, 9 Aug 2010 14:53:06 +0000 (14:53 +0000)]
sparc: use %g0 for 0 constants

[r27911]

13 years agoextend register allocation verifier to check alignment and wide constraints
Matthias Braun [Mon, 9 Aug 2010 14:53:05 +0000 (14:53 +0000)]
extend register allocation verifier to check alignment and wide constraints

[r27910]

13 years agoallow ignore registers as inputs of Phis; cleanup bessadestr.c
Matthias Braun [Mon, 9 Aug 2010 14:53:04 +0000 (14:53 +0000)]
allow ignore registers as inputs of Phis; cleanup bessadestr.c

[r27909]

13 years agoadapt daemelspiller to wide register values
Matthias Braun [Mon, 9 Aug 2010 14:53:03 +0000 (14:53 +0000)]
adapt daemelspiller to wide register values

[r27908]

13 years agocorrectly use wide values in automatic phi register requirement determination
Matthias Braun [Mon, 9 Aug 2010 14:53:02 +0000 (14:53 +0000)]
correctly use wide values in automatic phi register requirement determination

[r27907]

13 years agoreformat and cleanup benode.c
Matthias Braun [Mon, 9 Aug 2010 14:53:02 +0000 (14:53 +0000)]
reformat and cleanup benode.c

[r27906]

13 years agocleanup spill code; assert that no wide values are used yet
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]

13 years agofix beabi not setting width in register constraint
Matthias Braun [Mon, 9 Aug 2010 14:52:59 +0000 (14:52 +0000)]
fix beabi not setting width in register constraint

[r27904]

13 years agodump double and aligned register requirements
Matthias Braun [Mon, 9 Aug 2010 14:52:59 +0000 (14:52 +0000)]
dump double and aligned register requirements

[r27903]

13 years agosparc: implement all floating point operations in single, double and quad mode
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]

13 years agosparc: remove old code which was only valid for old beabi handling
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]

13 years agocleanup, simplify hungarian algorithm implementation
Matthias Braun [Mon, 9 Aug 2010 14:52:47 +0000 (14:52 +0000)]
cleanup, simplify hungarian algorithm implementation

[r27900]

13 years agoMostly reverted r27894, removed usage of unreachable.
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]

13 years agoAdd an Unreachable node.
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]

13 years agoC99 feature removed.
Michael Beck [Sat, 7 Aug 2010 09:07:46 +0000 (09:07 +0000)]
C99 feature removed.

[r27892]

13 years agoPanic in case of an invalid solution.
Sebastian Buchwald [Fri, 6 Aug 2010 19:01:11 +0000 (19:01 +0000)]
Panic in case of an invalid solution.

[r27891]

13 years agoFixed warning.
Sebastian Buchwald [Fri, 6 Aug 2010 19:01:10 +0000 (19:01 +0000)]
Fixed warning.

[r27890]

13 years agoIgnore kaps directory.
Sebastian Buchwald [Fri, 6 Aug 2010 17:55:59 +0000 (17:55 +0000)]
Ignore kaps directory.

[r27887]

13 years agoRemove redundant reg_req from SPARC nodes with constructors.
Christoph Mallon [Fri, 6 Aug 2010 17:14:53 +0000 (17:14 +0000)]
Remove redundant reg_req from SPARC nodes with constructors.

[r27886]

13 years agoCorrect and clean up gen_Abs() for SPARC: The Sub was the wrong way round.
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]

13 years agoIndent.
Christoph Mallon [Fri, 6 Aug 2010 17:14:51 +0000 (17:14 +0000)]
Indent.

[r27884]

13 years agoRemove redundant bitset_clear_all() before bitset_copy().
Christoph Mallon [Fri, 6 Aug 2010 17:14:50 +0000 (17:14 +0000)]
Remove redundant bitset_clear_all() before bitset_copy().

[r27883]

13 years agoDirectly remember the pointer instead of an index to reconstruct the pointer.
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]

13 years agoRemove a loop invariant summand from finding a minimum.
Christoph Mallon [Fri, 6 Aug 2010 17:14:46 +0000 (17:14 +0000)]
Remove a loop invariant summand from finding a minimum.

[r27881]

13 years agofix for my last commit
Matthias Braun [Fri, 6 Aug 2010 08:43:29 +0000 (08:43 +0000)]
fix for my last commit

[r27879]

13 years agoRemove VISITED in link-field hackery. Cleanups.
Matthias Braun [Fri, 6 Aug 2010 08:42:18 +0000 (08:42 +0000)]
Remove VISITED in link-field hackery. Cleanups.

[r27878]

13 years agoFixed comment.
Sebastian Buchwald [Fri, 6 Aug 2010 08:08:04 +0000 (08:08 +0000)]
Fixed comment.

[r27877]

13 years agomake sure the width field is always initialized to 1 for normal constraints
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]

13 years agobackend: created a (not so nice) macro to iterate over all values defined by an instr...
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]

13 years agofix lower_mode_b relying on current_ir_graph being equal to the passed irg; make...
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]

13 years agoNow bipartite matching can be used for pre-coloring restricted cliques after a perm.
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]

13 years agofix some cases where doubleword lowering didn't use the unsigned type for the lower...
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]

13 years agoDuplicate GetEIP when transforming.
Christoph Mallon [Mon, 2 Aug 2010 14:03:50 +0000 (14:03 +0000)]
Duplicate GetEIP when transforming.

[r27865]

13 years agosimplify doubleword lowering: we have a type for each mode by default nowadays
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]

13 years agoremove odd mode->index, index->mode API for statistics, ir_prog already had such...
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]

13 years agoDisable timer.
Sebastian Buchwald [Fri, 30 Jul 2010 14:33:54 +0000 (14:33 +0000)]
Disable timer.

[r27859]

13 years agoUnify output format.
Sebastian Buchwald [Fri, 30 Jul 2010 14:22:20 +0000 (14:22 +0000)]
Unify output format.

[r27857]

13 years agobring back Carry and Borrow (firm_decomp apparently uses it) and add a note that...
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]

13 years agocan not -> cannot.
Sebastian Buchwald [Thu, 29 Jul 2010 13:37:31 +0000 (13:37 +0000)]
can not -> cannot.

[r27848]

13 years agoallow nodes with more inputs in prefallocator (some sparc keeps have more than 32...
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]

13 years agouse new double wide register requirements; implement calling convention for sparc...
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]

13 years agosparc: remove uninterpreted (and often wrongly used) MATCH_SIZE_NEUTRAL match flag...
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]

13 years agoavoid unnecessary #define in public headers
Matthias Braun [Wed, 28 Jul 2010 14:56:55 +0000 (14:56 +0000)]
avoid unnecessary #define in public headers

[r27837]