libfirm
13 years agoC99 feature removed.
Michael Beck [Sat, 2 Oct 2010 06:34:57 +0000 (06:34 +0000)]
C99 feature removed.

[r28028]

13 years agorefactor mode_b lowerer to have a create_set callback
Matthias Braun [Wed, 22 Sep 2010 14:07:44 +0000 (14:07 +0000)]
refactor mode_b lowerer to have a create_set callback

[r28023]

13 years agoalternative implementation of part_block which uses outedges instead of collect_phiprojs
Matthias Braun [Wed, 22 Sep 2010 14:07:43 +0000 (14:07 +0000)]
alternative implementation of part_block which uses outedges instead of collect_phiprojs

[r28022]

13 years agoremove some unnecessary/confusing flags
Matthias Braun [Wed, 22 Sep 2010 14:07:43 +0000 (14:07 +0000)]
remove some unnecessary/confusing flags

[r28021]

13 years agoremove MacroBlock concept
Matthias Braun [Wed, 22 Sep 2010 14:07:42 +0000 (14:07 +0000)]
remove MacroBlock concept

[r28020]

13 years agodifferentiate between Bad and Deleted (because of exchange) nodes, this avoid some...
Matthias Braun [Wed, 22 Sep 2010 14:07:40 +0000 (14:07 +0000)]
differentiate between Bad and Deleted (because of exchange) nodes, this avoid some invalid memory accesses when trying to get irg from a Bad node

[r28019]

13 years agono need for no_float_fold hack anymore
Matthias Braun [Wed, 22 Sep 2010 14:07:39 +0000 (14:07 +0000)]
no need for no_float_fold hack anymore

[r28018]

13 years agoremove non-strict exception mode
Matthias Braun [Wed, 22 Sep 2010 14:07:38 +0000 (14:07 +0000)]
remove non-strict exception mode

[r28017]

13 years agobackend: remove unused omitleaffp option
Matthias Braun [Wed, 22 Sep 2010 14:07:38 +0000 (14:07 +0000)]
backend: remove unused omitleaffp option

[r28016]

13 years agonode generator: don't create pn_ and n_ enums if there are no members
Matthias Braun [Wed, 22 Sep 2010 14:07:37 +0000 (14:07 +0000)]
node generator: don't create pn_ and n_ enums if there are no members

[r28015]

13 years agoremove unused functions
Matthias Braun [Wed, 22 Sep 2010 14:07:37 +0000 (14:07 +0000)]
remove unused functions

[r28014]

13 years agofix bug in switch_lowerer
Matthias Braun [Wed, 22 Sep 2010 14:07:36 +0000 (14:07 +0000)]
fix bug in switch_lowerer

[r28013]

13 years agomove typedefs from public header to private header
Matthias Braun [Wed, 22 Sep 2010 14:07:35 +0000 (14:07 +0000)]
move typedefs from public header to private header

[r28012]

13 years agooptimisations work independently of current_ir_graph now, no need to set/restore...
Matthias Braun [Wed, 22 Sep 2010 14:07:35 +0000 (14:07 +0000)]
optimisations work independently of current_ir_graph now, no need to set/restore it in node construction anymore

[r28011]

13 years agoremove ilp scheduler; simplify listsched interface
Matthias Braun [Wed, 22 Sep 2010 14:07:34 +0000 (14:07 +0000)]
remove ilp scheduler; simplify listsched interface

[r28010]

13 years agoeliminate the unnecessary and especially confusing concept of a 'code_generator'...
Matthias Braun [Wed, 22 Sep 2010 14:07:33 +0000 (14:07 +0000)]
eliminate the unnecessary and especially confusing concept of a 'code_generator' an isa-interface is enough

[r28009]

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]