libfirm
13 years agofix wrong types
Matthias Braun [Fri, 8 Oct 2010 13:36:53 +0000 (13:36 +0000)]
fix wrong types

[r28061]

13 years agofix invalid double definition of irg_extblk_info_state
Matthias Braun [Fri, 8 Oct 2010 13:36:52 +0000 (13:36 +0000)]
fix invalid double definition of irg_extblk_info_state

[r28060]

13 years agoimproved and completely automatic vc2010 projectfile updater
Matthias Braun [Fri, 8 Oct 2010 13:36:51 +0000 (13:36 +0000)]
improved and completely automatic vc2010 projectfile updater

[r28059]

13 years agowin32 version of obstack_printf
Matthias Braun [Fri, 8 Oct 2010 13:36:50 +0000 (13:36 +0000)]
win32 version of obstack_printf

[r28058]

13 years agoremove rbitset_w_size type functions: a raw_bitset with a size is a bitset_t
Matthias Braun [Fri, 8 Oct 2010 13:36:50 +0000 (13:36 +0000)]
remove rbitset_w_size type functions: a raw_bitset with a size is a bitset_t

[r28057]

13 years agoadapt current_ir_graph in irg_walk
Matthias Braun [Fri, 8 Oct 2010 13:36:49 +0000 (13:36 +0000)]
adapt current_ir_graph in irg_walk

[r28056]

13 years agolower_dw: refactor to use a smart walk strategy and factoring out some common code...
Matthias Braun [Fri, 8 Oct 2010 13:36:48 +0000 (13:36 +0000)]
lower_dw: refactor to use a smart walk strategy and factoring out some common code to get a node_entry

[r28055]

13 years agolower_dw: Remove RotL special case, normal code produces the same result
Matthias Braun [Fri, 8 Oct 2010 13:36:48 +0000 (13:36 +0000)]
lower_dw: Remove RotL special case, normal code produces the same result

[r28054]

13 years agolower_dw: remove pointless comments at end of {}
Matthias Braun [Fri, 8 Oct 2010 13:36:47 +0000 (13:36 +0000)]
lower_dw: remove pointless comments at end of {}

[r28053]

13 years agolower_dw: irn_idxs are unsigned not int
Matthias Braun [Fri, 8 Oct 2010 13:36:46 +0000 (13:36 +0000)]
lower_dw: irn_idxs are unsigned not int

[r28052]

13 years agolower_dw: get away without #define magic
Matthias Braun [Fri, 8 Oct 2010 13:36:46 +0000 (13:36 +0000)]
lower_dw: get away without #define magic

[r28051]

13 years agolower_dw: be independent of current_ir_graph
Matthias Braun [Fri, 8 Oct 2010 13:36:45 +0000 (13:36 +0000)]
lower_dw: be independent of current_ir_graph

[r28050]

13 years agoFixed wrong usage of Abs node, fixed calculations, disabled broken invariant loop...
Christian Helmer [Wed, 6 Oct 2010 15:24:53 +0000 (15:24 +0000)]
Fixed wrong usage of Abs node, fixed calculations, disabled broken invariant loop unrolling.

[r28049]

13 years agoremove irsimpletype stuff (unused/broken)
Matthias Braun [Wed, 6 Oct 2010 08:40:42 +0000 (08:40 +0000)]
remove irsimpletype stuff (unused/broken)

[r28043]

13 years agocleanup ircons code; add current_ir_graph independent construction bits; new_ir_graph...
Matthias Braun [Wed, 6 Oct 2010 08:40:41 +0000 (08:40 +0000)]
cleanup ircons code; add current_ir_graph independent construction bits; new_ir_graph does not set current_ir_graph anymore

[r28042]

13 years agomake some more optimisations independent of current_ir_graph
Matthias Braun [Wed, 6 Oct 2010 08:40:40 +0000 (08:40 +0000)]
make some more optimisations independent of current_ir_graph

[r28041]

13 years agomake reassoc independent of current_ir_graph
Matthias Braun [Wed, 6 Oct 2010 08:40:39 +0000 (08:40 +0000)]
make reassoc independent of current_ir_graph

[r28040]

13 years agoput register classes into arch_env struct, no need for complicated callbacks
Matthias Braun [Wed, 6 Oct 2010 08:40:38 +0000 (08:40 +0000)]
put register classes into arch_env struct, no need for complicated callbacks

[r28039]

13 years agochange backends to produce 1 big array with all registers
Matthias Braun [Wed, 6 Oct 2010 08:40:37 +0000 (08:40 +0000)]
change backends to produce 1 big array with all registers

[r28038]

13 years agoforbid calls of new_XXX and new_d_XXX when not in phase_building (only new_r_XXX...
Matthias Braun [Wed, 6 Oct 2010 08:40:34 +0000 (08:40 +0000)]
forbid calls of new_XXX and new_d_XXX when not in phase_building (only new_r_XXX allowed)

[r28037]

13 years agomake firm optimisations independent of current_ir_graph
Matthias Braun [Wed, 6 Oct 2010 08:40:33 +0000 (08:40 +0000)]
make firm optimisations independent of current_ir_graph

[r28036]

13 years agojumpthreading: do not rely on current_ir_graph
Matthias Braun [Wed, 6 Oct 2010 08:40:32 +0000 (08:40 +0000)]
jumpthreading: do not rely on current_ir_graph

[r28035]

13 years agoworkaround for lower_mode_b not working correctly in combination with create_cond_set
Matthias Braun [Wed, 6 Oct 2010 08:40:32 +0000 (08:40 +0000)]
workaround for lower_mode_b not working correctly in combination with create_cond_set

[r28034]

13 years agoallow_ifconv callback may not be NULL anymore
Matthias Braun [Wed, 6 Oct 2010 08:40:31 +0000 (08:40 +0000)]
allow_ifconv callback may not be NULL anymore

[r28033]

13 years agofix Phi getting optimized even when optimisations are disabled
Matthias Braun [Wed, 6 Oct 2010 08:40:30 +0000 (08:40 +0000)]
fix Phi getting optimized even when optimisations are disabled

[r28032]

13 years agofix bug in new part_block_edges function
Matthias Braun [Wed, 6 Oct 2010 08:40:29 +0000 (08:40 +0000)]
fix bug in new part_block_edges function

[r28031]

13 years agofix trailing whitespaces and tabulators in the middle of a line
Matthias Braun [Wed, 6 Oct 2010 08:40:28 +0000 (08:40 +0000)]
fix trailing whitespaces and tabulators in the middle of a line

[r28030]

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]