Matthias Braun [Wed, 6 Oct 2010 08:40:42 +0000 (08:40 +0000)]
remove irsimpletype stuff (unused/broken)
[r28043]
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]
Matthias Braun [Wed, 6 Oct 2010 08:40:40 +0000 (08:40 +0000)]
make some more optimisations independent of current_ir_graph
[r28041]
Matthias Braun [Wed, 6 Oct 2010 08:40:39 +0000 (08:40 +0000)]
make reassoc independent of current_ir_graph
[r28040]
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]
Matthias Braun [Wed, 6 Oct 2010 08:40:37 +0000 (08:40 +0000)]
change backends to produce 1 big array with all registers
[r28038]
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]
Matthias Braun [Wed, 6 Oct 2010 08:40:33 +0000 (08:40 +0000)]
make firm optimisations independent of current_ir_graph
[r28036]
Matthias Braun [Wed, 6 Oct 2010 08:40:32 +0000 (08:40 +0000)]
jumpthreading: do not rely on current_ir_graph
[r28035]
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]
Matthias Braun [Wed, 6 Oct 2010 08:40:31 +0000 (08:40 +0000)]
allow_ifconv callback may not be NULL anymore
[r28033]
Matthias Braun [Wed, 6 Oct 2010 08:40:30 +0000 (08:40 +0000)]
fix Phi getting optimized even when optimisations are disabled
[r28032]
Matthias Braun [Wed, 6 Oct 2010 08:40:29 +0000 (08:40 +0000)]
fix bug in new part_block_edges function
[r28031]
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]
Michael Beck [Sat, 2 Oct 2010 06:34:57 +0000 (06:34 +0000)]
C99 feature removed.
[r28028]
Matthias Braun [Wed, 22 Sep 2010 14:07:44 +0000 (14:07 +0000)]
refactor mode_b lowerer to have a create_set callback
[r28023]
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]
Matthias Braun [Wed, 22 Sep 2010 14:07:43 +0000 (14:07 +0000)]
remove some unnecessary/confusing flags
[r28021]
Matthias Braun [Wed, 22 Sep 2010 14:07:42 +0000 (14:07 +0000)]
remove MacroBlock concept
[r28020]
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]
Matthias Braun [Wed, 22 Sep 2010 14:07:39 +0000 (14:07 +0000)]
no need for no_float_fold hack anymore
[r28018]
Matthias Braun [Wed, 22 Sep 2010 14:07:38 +0000 (14:07 +0000)]
remove non-strict exception mode
[r28017]
Matthias Braun [Wed, 22 Sep 2010 14:07:38 +0000 (14:07 +0000)]
backend: remove unused omitleaffp option
[r28016]
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]
Matthias Braun [Wed, 22 Sep 2010 14:07:37 +0000 (14:07 +0000)]
remove unused functions
[r28014]
Matthias Braun [Wed, 22 Sep 2010 14:07:36 +0000 (14:07 +0000)]
fix bug in switch_lowerer
[r28013]
Matthias Braun [Wed, 22 Sep 2010 14:07:35 +0000 (14:07 +0000)]
move typedefs from public header to private header
[r28012]
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]
Matthias Braun [Wed, 22 Sep 2010 14:07:34 +0000 (14:07 +0000)]
remove ilp scheduler; simplify listsched interface
[r28010]
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]
Matthias Braun [Wed, 22 Sep 2010 14:07:31 +0000 (14:07 +0000)]
remove some unnecessary #defines
[r28008]
Matthias Braun [Fri, 10 Sep 2010 13:29:26 +0000 (13:29 +0000)]
sparc: fix wrongly specified Stf emitter
[r28004]
Matthias Braun [Fri, 10 Sep 2010 13:29:25 +0000 (13:29 +0000)]
sparc: fix fmov emitter
[r28003]
Matthias Braun [Fri, 10 Sep 2010 13:29:25 +0000 (13:29 +0000)]
sparc: implement/fix remaining float<->int conversions
[r28002]
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]
Matthias Braun [Fri, 10 Sep 2010 13:29:23 +0000 (13:29 +0000)]
invoke switch lowerer in target specific lowering pass
[r28000]
Matthias Braun [Fri, 10 Sep 2010 13:29:23 +0000 (13:29 +0000)]
sparc: fix fdiv having the wrong mode
[r27999]
Matthias Braun [Fri, 10 Sep 2010 13:29:22 +0000 (13:29 +0000)]
sparc: rename misnamed node Slr to Srl
[r27998]
Matthias Braun [Fri, 10 Sep 2010 13:29:22 +0000 (13:29 +0000)]
sparc: fix bug where calls with many parameters were broken
[r27997]
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]
Matthias Braun [Fri, 10 Sep 2010 13:26:25 +0000 (13:26 +0000)]
save input requirements in be_info without complicated callback
[r27995]
Matthias Braun [Fri, 10 Sep 2010 13:26:24 +0000 (13:26 +0000)]
we can do without the phi register requirement guessing nowadays
[r27994]
Matthias Braun [Fri, 10 Sep 2010 13:26:23 +0000 (13:26 +0000)]
ia32: remove unnecessary safety check
[r27993]
Matthias Braun [Fri, 10 Sep 2010 13:26:23 +0000 (13:26 +0000)]
refactoring: split stackframe handling completely from beabi struct
[r27992]
Matthias Braun [Fri, 10 Sep 2010 13:26:22 +0000 (13:26 +0000)]
lower_switch: retain debug info, some smaller cleanups
[r27991]
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]
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]
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]
Matthias Braun [Fri, 10 Sep 2010 13:26:19 +0000 (13:26 +0000)]
remove some unnecessary #defines and unused code
[r27987]
Michael Beck [Wed, 8 Sep 2010 20:25:45 +0000 (20:25 +0000)]
C99 feature removed, fixed typo.
[r27979]
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]
Matthias Braun [Mon, 6 Sep 2010 13:05:06 +0000 (13:05 +0000)]
sparc: first attempt at using delay slots
[r27973]
Matthias Braun [Mon, 6 Sep 2010 13:05:06 +0000 (13:05 +0000)]
sparc: use arch_dependent mul/div lowering
[r27972]
Matthias Braun [Mon, 6 Sep 2010 13:05:05 +0000 (13:05 +0000)]
sparc: fix bitopcc bugs
[r27971]
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]
Matthias Braun [Mon, 6 Sep 2010 13:05:04 +0000 (13:05 +0000)]
sparc: fix abort when matching addressmode Adds
[r27969]
Matthias Braun [Mon, 6 Sep 2010 13:05:03 +0000 (13:05 +0000)]
remove Abs node, backends can match the abs patterns themselfes
[r27968]
Matthias Braun [Mon, 6 Sep 2010 13:05:01 +0000 (13:05 +0000)]
remove useless code from iropt
[r27967]
Matthias Braun [Thu, 19 Aug 2010 15:56:42 +0000 (15:56 +0000)]
sparc: new patterns to match comparisons of bitoperations with zero
[r27959]
Matthias Braun [Thu, 19 Aug 2010 15:56:41 +0000 (15:56 +0000)]
sparc: implement mode-neutral matching; support immediates for Cmp node
[r27958]
Matthias Braun [Thu, 19 Aug 2010 15:56:41 +0000 (15:56 +0000)]
sparc: preliminary SwitchJmp implementation
[r27957]
Matthias Braun [Thu, 19 Aug 2010 15:56:40 +0000 (15:56 +0000)]
sparc: mostly implement reg+reg address mode
[r27956]
Matthias Braun [Thu, 19 Aug 2010 15:56:39 +0000 (15:56 +0000)]
sparc: specifying ins in constructor variants makes no sense
[r27955]
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]
Matthias Braun [Thu, 19 Aug 2010 15:56:36 +0000 (15:56 +0000)]
only construct Rotl if backend supports it
[r27953]
Matthias Braun [Thu, 19 Aug 2010 15:56:36 +0000 (15:56 +0000)]
sparc: implement div instructions correctly
[r27952]
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]
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]
Matthias Braun [Thu, 19 Aug 2010 15:56:34 +0000 (15:56 +0000)]
sparc: no need for is_load_store attribute anymore
[r27949]
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]
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]
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]