libfirm
15 years agoLet some optimizations return non-zero, if they changed something (for fixpoint itera...
Moritz Kroll [Sun, 5 Oct 2008 00:44:22 +0000 (00:44 +0000)]
Let some optimizations return non-zero, if they changed something (for fixpoint iteration). Updated Visual Studio project.

[r22486]

15 years ago- BugFix: fixed effect of r22470: Immediate is always the RIGHT operand
Michael Beck [Sat, 4 Oct 2008 23:06:40 +0000 (23:06 +0000)]
- BugFix: fixed effect of r22470: Immediate is always the RIGHT operand
  (where this is specified?), so do NOT overwrite it (analog to
  turn_back_am())

[r22485]

15 years ago- fixed r22480: Proj numbers are now different
Michael Beck [Sat, 4 Oct 2008 21:38:35 +0000 (21:38 +0000)]
- fixed r22480: Proj numbers are now different

[r22483]

15 years agoMicro optimisation of the day: Remove ia32_Test, which tests the high result of ia32_Mul.
Christoph Mallon [Sat, 4 Oct 2008 18:47:20 +0000 (18:47 +0000)]
Micro optimisation of the day: Remove ia32_Test, which tests the high result of ia32_Mul.

[r22480]

15 years agopeephole_ia32_Test() would due to a bug only remove an ia32_Test if its direct succes...
Christoph Mallon [Sat, 4 Oct 2008 17:38:35 +0000 (17:38 +0000)]
peephole_ia32_Test() would due to a bug only remove an ia32_Test if its direct successor was the desired node.  If the desired node was an indirect successor, it would incorrectly identify it as flags destroyer.

[r22479]

15 years agoTreat conversions between the same size as downconv to get rid of unnecessary convers...
Christoph Mallon [Sat, 4 Oct 2008 16:57:08 +0000 (16:57 +0000)]
Treat conversions between the same size as downconv to get rid of unnecessary conversions.

[r22477]

15 years agoUse turn_back_am() to implement peephole_ia32_Imul_split().
Christoph Mallon [Sat, 4 Oct 2008 15:35:14 +0000 (15:35 +0000)]
Use turn_back_am() to implement peephole_ia32_Imul_split().

[r22471]

15 years agoOnly deactivate AM support for a node with an immediate, if the match flags do not...
Christoph Mallon [Sat, 4 Oct 2008 15:15:17 +0000 (15:15 +0000)]
Only deactivate AM support for a node with an immediate, if the match flags do not include match_am_and_immediates.  This allows folding reloads into IMul with immediate.

[r22470]

15 years agoFix fehler157: Lowering Shrs was missing a Conv.
Christoph Mallon [Sat, 4 Oct 2008 13:15:35 +0000 (13:15 +0000)]
Fix fehler157: Lowering Shrs was missing a Conv.

[r22469]

15 years agofehler157: Wrong mode for lower half of lowered 64bit Mul.
Christoph Mallon [Sat, 4 Oct 2008 12:59:55 +0000 (12:59 +0000)]
fehler157: Wrong mode for lower half of lowered 64bit Mul.

[r22468]

15 years agoUse gen_binop() in gen_Mulh().
Christoph Mallon [Sat, 4 Oct 2008 12:52:00 +0000 (12:52 +0000)]
Use gen_binop() in gen_Mulh().

[r22467]

15 years agoEnsure that empty functions get their ret $0 by skipping iro_Start and beo_RegParams.
Christoph Mallon [Sat, 4 Oct 2008 12:26:31 +0000 (12:26 +0000)]
Ensure that empty functions get their ret $0 by skipping iro_Start and beo_RegParams.

[r22465]

15 years agoSimplify node construction in gen_Mulh().
Christoph Mallon [Sat, 4 Oct 2008 11:50:45 +0000 (11:50 +0000)]
Simplify node construction in gen_Mulh().

[r22464]

15 years agoMerge ia32_am_type_t and ia32_am_arity_t, because (type == ia32_am_None) == (arity...
Christoph Mallon [Sat, 4 Oct 2008 11:43:37 +0000 (11:43 +0000)]
Merge ia32_am_type_t and ia32_am_arity_t, because (type == ia32_am_None) == (arity == ia32_am_arity_none).

[r22463]

15 years agoset_ia32_op_type() want ia32_AddrModeS, not ia32_am_Source (though they happen to...
Christoph Mallon [Sat, 4 Oct 2008 11:06:30 +0000 (11:06 +0000)]
set_ia32_op_type() want ia32_AddrModeS, not ia32_am_Source (though they happen to be the same value).

[r22461]

15 years agoMake ia32_get_admissible_noreg() static.
Christoph Mallon [Sat, 4 Oct 2008 10:34:00 +0000 (10:34 +0000)]
Make ia32_get_admissible_noreg() static.

[r22459]

15 years agofehler156: aligning the stack does not work.
Christoph Mallon [Sat, 4 Oct 2008 10:17:17 +0000 (10:17 +0000)]
fehler156: aligning the stack does not work.

[r22458]

15 years agoEnable folding reloads into unary ia32 instructions (only binary was possible).
Christoph Mallon [Sat, 4 Oct 2008 09:51:49 +0000 (09:51 +0000)]
Enable folding reloads into unary ia32 instructions (only binary was possible).

[r22457]

15 years agoRemove ia32_am_ternary. The only users were Div an IDiv, which are perfectly fine...
Christoph Mallon [Sat, 4 Oct 2008 07:59:00 +0000 (07:59 +0000)]
Remove ia32_am_ternary.  The only users were Div an IDiv, which are perfectly fine with being declared unary.  Further the only place, where the value was tested (in turn_back_am()) set the wrong operand then.  Though, effectively this was unreachable code, because Div/IDiv generate no sensible flags.

[r22456]

15 years agoUse ia32_copy_am_attrs() for splitting IMul reg, mem, imm and also reset base and...
Christoph Mallon [Sat, 4 Oct 2008 07:43:39 +0000 (07:43 +0000)]
Use ia32_copy_am_attrs() for splitting IMul reg, mem, imm and also reset base and index.

[r22455]

15 years agoClean up turn_back_am(), panic on unknown arity.
Christoph Mallon [Sat, 4 Oct 2008 07:42:14 +0000 (07:42 +0000)]
Clean up turn_back_am(), panic on unknown arity.

[r22454]

15 years agoSmall simplification.
Christoph Mallon [Sat, 4 Oct 2008 07:39:36 +0000 (07:39 +0000)]
Small simplification.

[r22453]

15 years agoPut the flags, which are modified by Inc/Dec, into a variable.
Christoph Mallon [Sat, 4 Oct 2008 07:11:14 +0000 (07:11 +0000)]
Put the flags, which are modified by Inc/Dec, into a variable.

[r22452]

15 years agoImprove upper_bits_clean(): Recurse on Projs and failed Shr.
Christoph Mallon [Fri, 3 Oct 2008 21:47:33 +0000 (21:47 +0000)]
Improve upper_bits_clean(): Recurse on Projs and failed Shr.

[r22450]

15 years agoconvert bitfield initializer tarvals before using them
Matthias Braun [Fri, 3 Oct 2008 18:09:25 +0000 (18:09 +0000)]
convert bitfield initializer tarvals before using them

[r22441]

15 years agofix firm outputting additional .skips after .string
Matthias Braun [Fri, 3 Oct 2008 17:30:39 +0000 (17:30 +0000)]
fix firm outputting additional .skips after .string

[r22438]

15 years agomac assembler doesn't know .skip, use .space
Matthias Braun [Fri, 3 Oct 2008 17:21:17 +0000 (17:21 +0000)]
mac assembler doesn't know .skip, use .space

[r22437]

15 years agoLet is_non_null_Confirm() work as advertised for SymConsts.
Christoph Mallon [Thu, 2 Oct 2008 17:32:13 +0000 (17:32 +0000)]
Let is_non_null_Confirm() work as advertised for SymConsts.

[r22417]

15 years ago- reduce the number of created confirms further
Michael Beck [Thu, 2 Oct 2008 14:02:28 +0000 (14:02 +0000)]
- reduce the number of created confirms further

[r22415]

15 years agoreduce the number of created Confirms
Michael Beck [Thu, 2 Oct 2008 13:55:27 +0000 (13:55 +0000)]
reduce the number of created Confirms

[r22414]

15 years ago- BugFix: ensure, that no self-loops are constructed (this work-aound might be too...
Michael Beck [Thu, 2 Oct 2008 13:50:34 +0000 (13:50 +0000)]
- BugFix: ensure, that no self-loops are constructed (this work-aound might be too restrictive)
- typos fixed

[r22413]

15 years ago- BugFix: remove_confirms() now does NOT deactivate confirms for all graphs except...
Michael Beck [Thu, 2 Oct 2008 13:34:00 +0000 (13:34 +0000)]
- BugFix: remove_confirms() now does NOT deactivate confirms for all graphs except the first one
- added debug output
- implemnted global NULL pointer test elimination using Confirm magic

[r22412]

15 years agoadd global_null_ptr_elimination flag
Michael Beck [Thu, 2 Oct 2008 13:32:04 +0000 (13:32 +0000)]
add global_null_ptr_elimination flag

[r22411]

15 years agoTest case for historical reasons
Andreas Zwinkau [Thu, 2 Oct 2008 13:09:13 +0000 (13:09 +0000)]
Test case for historical reasons

[r22410]

15 years agotest for a rather simply gcc optimization
Michael Beck [Thu, 2 Oct 2008 11:55:23 +0000 (11:55 +0000)]
test for a rather simply gcc optimization

[r22409]

15 years agoBugFix of r22380 (fixes 176.gcc):
Michael Beck [Thu, 2 Oct 2008 11:18:31 +0000 (11:18 +0000)]
BugFix of r22380 (fixes 176.gcc):
 - smaller_mode() had the meaning "can be represented", restored
 - renamed new implemnetation into values_in_mode() with the meaning
   "can be converted into in back" which is different from smaller_mode()

[r22408]

15 years agoReuse prevents_AM check in PBQP transformer.
Sebastian Buchwald [Thu, 2 Oct 2008 11:12:29 +0000 (11:12 +0000)]
Reuse prevents_AM check in PBQP transformer.

[r22407]

15 years agoPanic if proj num is unexpected
Andreas Zwinkau [Wed, 1 Oct 2008 14:25:05 +0000 (14:25 +0000)]
Panic if proj num is unexpected

[r22394]

15 years agofix endless loops
Matthias Braun [Wed, 1 Oct 2008 14:05:41 +0000 (14:05 +0000)]
fix endless loops

[r22393]

15 years agosimplify and speedup belady/loopana a bit
Matthias Braun [Wed, 1 Oct 2008 14:00:49 +0000 (14:00 +0000)]
simplify and speedup belady/loopana a bit

[r22392]

15 years agocreate an index, as this heavily speeds up some queries
Matthias Braun [Wed, 1 Oct 2008 11:38:47 +0000 (11:38 +0000)]
create an index, as this heavily speeds up some queries

[r22391]

15 years agoPBQP now doesn't find a solution, if we modified the costs a little bit.
Sebastian Buchwald [Wed, 1 Oct 2008 11:23:05 +0000 (11:23 +0000)]
PBQP now doesn't find a solution, if we modified the costs a little bit.

- removed unused global variables
- added documentation :-)

now the PBQP solver need some new features...

[r22390]

15 years ago- BugFix: cleanup cannot work with a precalculated step, use antic_in as initial...
Michael Beck [Tue, 30 Sep 2008 23:43:40 +0000 (23:43 +0000)]
- BugFix: cleanup cannot work with a precalculated step, use antic_in as initial clean nodes
- use avail_out as the closure for phi_translate()
- add missing lookup() in insert_nodes()

[r22387]

15 years agoAdded users for symconst.
Sebastian Buchwald [Tue, 30 Sep 2008 23:04:21 +0000 (23:04 +0000)]
Added users for symconst.

[r22386]

15 years agoDon't panic, the train is waiting for you...
Sebastian Buchwald [Tue, 30 Sep 2008 21:22:55 +0000 (21:22 +0000)]
Don't panic, the train is waiting for you...

[r22385]

15 years agoAdd users for symconst.
Sebastian Buchwald [Tue, 30 Sep 2008 19:31:40 +0000 (19:31 +0000)]
Add users for symconst.

[r22384]

15 years agoOptimize store after stores with partial overwrites with same values
Moritz Kroll [Tue, 30 Sep 2008 19:01:17 +0000 (19:01 +0000)]
Optimize store after stores with partial overwrites with same values

[r22382]

15 years agoPush ConvP through AddI
Moritz Kroll [Tue, 30 Sep 2008 18:55:17 +0000 (18:55 +0000)]
Push ConvP through AddI

[r22381]

15 years agoMallon: Fixed smaller_mode()
Moritz Kroll [Tue, 30 Sep 2008 18:54:08 +0000 (18:54 +0000)]
Mallon: Fixed smaller_mode()

[r22380]

15 years agofix warning in optimized mode
Matthias Braun [Tue, 30 Sep 2008 16:37:42 +0000 (16:37 +0000)]
fix warning in optimized mode

[r22379]

15 years agocleanup statistics stuff
Matthias Braun [Tue, 30 Sep 2008 16:34:19 +0000 (16:34 +0000)]
cleanup statistics stuff

[r22378]

15 years agofix some warnings in optimized mode
Matthias Braun [Tue, 30 Sep 2008 16:32:27 +0000 (16:32 +0000)]
fix some warnings in optimized mode

[r22377]

15 years agoplace FIRM_DBG_REGISTER into the init function
Michael Beck [Tue, 30 Sep 2008 14:49:45 +0000 (14:49 +0000)]
place FIRM_DBG_REGISTER into the init function

[r22375]

15 years agoput memory operand folding to spill_apply time
Matthias Braun [Tue, 30 Sep 2008 14:05:58 +0000 (14:05 +0000)]
put memory operand folding to spill_apply time

[r22373]

15 years agoold version was correct...
Matthias Braun [Tue, 30 Sep 2008 13:53:57 +0000 (13:53 +0000)]
old version was correct...

[r22371]

15 years agoRemoved dependency that prevents full address mode.
Sebastian Buchwald [Tue, 30 Sep 2008 13:12:40 +0000 (13:12 +0000)]
Removed dependency that prevents full address mode.

[r22370]

15 years agoRight nodes, right order but still not crashing...
Sebastian Buchwald [Tue, 30 Sep 2008 12:53:21 +0000 (12:53 +0000)]
Right nodes, right order but still not crashing...

[r22368]

15 years agoAnother variant without index, but shifts with different modes.
Sebastian Buchwald [Tue, 30 Sep 2008 12:10:39 +0000 (12:10 +0000)]
Another variant without index, but shifts with different modes.

[r22367]

15 years agoAll heuristic applications at right place, but there's a conv between :-(
Sebastian Buchwald [Tue, 30 Sep 2008 11:27:05 +0000 (11:27 +0000)]
All heuristic applications at right place, but there's a conv between :-(

[r22363]

15 years agoUse PBQP heuristic at shift const and afterwards at computed value.
Sebastian Buchwald [Tue, 30 Sep 2008 10:48:57 +0000 (10:48 +0000)]
Use PBQP heuristic at shift const and afterwards at computed value.

[r22362]

15 years agoProvoke heuristical PBQP decision for computed value.
Sebastian Buchwald [Tue, 30 Sep 2008 09:24:48 +0000 (09:24 +0000)]
Provoke heuristical PBQP decision for computed value.

[r22360]

15 years agopush compilation unit in context
Matthias Braun [Tue, 30 Sep 2008 08:19:50 +0000 (08:19 +0000)]
push compilation unit in context

[r22357]

15 years agowhen we can do it for tuples, we can do it for Ids too
Matthias Braun [Tue, 30 Sep 2008 08:08:47 +0000 (08:08 +0000)]
when we can do it for tuples, we can do it for Ids too

[r22356]

15 years agowe have code duplication in determine_entity_usage and is_address_taken (from scalar_...
Matthias Braun [Tue, 30 Sep 2008 08:07:39 +0000 (08:07 +0000)]
we have code duplication in determine_entity_usage and is_address_taken (from scalar_replacement). Port the recent skip_tupe/id fixes

[r22355]

15 years ago- add a combo flag again, so inlining can use combo or df/cf depending on command...
Michael Beck [Mon, 29 Sep 2008 23:36:49 +0000 (23:36 +0000)]
- add a combo flag again, so inlining can use combo or df/cf depending on command line option

[r22352]

15 years agoAdded more users to calculated value, but there are no real skip pattern for this...
Sebastian Buchwald [Mon, 29 Sep 2008 23:00:06 +0000 (23:00 +0000)]
Added more users to calculated value, but there are no real skip pattern for this nodes which is a little bit strange.
Maybe there's a bug which prevents consuming direct users of "memop"-nodes.

[r22351]

15 years ago- Look through Tuple when checking for address taken (helps inlining)
Michael Beck [Mon, 29 Sep 2008 22:54:04 +0000 (22:54 +0000)]
- Look through Tuple when checking for address taken (helps inlining)

[r22350]

15 years ago- BugFix: removed missing debugging artefact, causing partitions with
Michael Beck [Mon, 29 Sep 2008 22:29:16 +0000 (22:29 +0000)]
- BugFix: removed missing debugging artefact, causing partitions with
  constant type place on the workqueue again (fix ack/test2.c)
- Add debug output when a partition is placed on the workqueue

[r22349]

15 years agoDon't try to use address multiple times, use calculated value instead.
Sebastian Buchwald [Mon, 29 Sep 2008 19:57:32 +0000 (19:57 +0000)]
Don't try to use address multiple times, use calculated value instead.

[r22348]

15 years agoTried to create a PBQP graph with can't be solved heuristically (not finished yet)
Sebastian Buchwald [Mon, 29 Sep 2008 18:23:04 +0000 (18:23 +0000)]
Tried to create a PBQP graph with can't be solved heuristically (not finished yet)

[r22347]

15 years agobe robust against event names containing special chars
Matthias Braun [Mon, 29 Sep 2008 13:43:09 +0000 (13:43 +0000)]
be robust against event names containing special chars

[r22346]

15 years agowe WANT to push forced graphs on the prioqueue
Matthias Braun [Mon, 29 Sep 2008 13:16:57 +0000 (13:16 +0000)]
we WANT to push forced graphs on the prioqueue

[r22345]

15 years agohere it is
Matthias Braun [Mon, 29 Sep 2008 09:14:05 +0000 (09:14 +0000)]
here it is

[r22341]

15 years ago- removed C99 features
Michael Beck [Sun, 28 Sep 2008 23:38:03 +0000 (23:38 +0000)]
- removed C99 features

[r22340]

15 years ago- setted store value to symconst + const which can replaced by an immediate
Sebastian Buchwald [Sun, 28 Sep 2008 22:23:09 +0000 (22:23 +0000)]
- setted store value to symconst + const which can replaced by an immediate

[r22339]

15 years ago- added missing base in two test cases
Sebastian Buchwald [Sun, 28 Sep 2008 22:03:11 +0000 (22:03 +0000)]
- added missing base in two test cases
- added test cases for destination address mode

[r22338]

15 years agoAdded test with all (?) address mode variants.
Sebastian Buchwald [Sun, 28 Sep 2008 21:37:44 +0000 (21:37 +0000)]
Added test with all (?) address mode variants.

[r22337]

15 years agooutput register pressure in register class context
Matthias Braun [Sun, 28 Sep 2008 21:16:06 +0000 (21:16 +0000)]
output register pressure in register class context

[r22336]

15 years agoalso count remats
Matthias Braun [Sun, 28 Sep 2008 21:11:52 +0000 (21:11 +0000)]
also count remats

[r22335]

15 years agoimprove fix some statistics in bechordal
Matthias Braun [Sun, 28 Sep 2008 21:08:51 +0000 (21:08 +0000)]
improve fix some statistics in bechordal

[r22334]

15 years ago- split array.h into array.h/array_t.h and make array.h independent of
Matthias Braun [Sun, 28 Sep 2008 18:25:59 +0000 (18:25 +0000)]
- split array.h into array.h/array_t.h and make array.h independent of
  compiletime options like NDEBUG (as it is public API!)
- renamed some statevs (append a prefix for their module)

[r22329]

15 years agofix bug in statev script for empty contexts
Matthias Braun [Sun, 28 Sep 2008 18:24:25 +0000 (18:24 +0000)]
fix bug in statev script for empty contexts

[r22328]

15 years agodisable some expensive statevs
Matthias Braun [Sun, 28 Sep 2008 18:12:08 +0000 (18:12 +0000)]
disable some expensive statevs

[r22327]

15 years agofix warning
Matthias Braun [Sun, 28 Sep 2008 17:37:43 +0000 (17:37 +0000)]
fix warning

[r22326]

15 years agofix warning
Matthias Braun [Sun, 28 Sep 2008 17:37:15 +0000 (17:37 +0000)]
fix warning

[r22325]

15 years agofix warning in optimized build
Matthias Braun [Sun, 28 Sep 2008 17:36:57 +0000 (17:36 +0000)]
fix warning in optimized build

[r22324]

15 years agoUpdated Visual Studio 2005/2008 project
Moritz Kroll [Sun, 28 Sep 2008 00:41:24 +0000 (00:41 +0000)]
Updated Visual Studio 2005/2008 project

[r22322]

15 years ago- add and fix some comments
Michael Beck [Sun, 28 Sep 2008 00:28:58 +0000 (00:28 +0000)]
- add and fix some comments

[r22321]

15 years agoTeach Mr. Gauß, Mr. Seidel and Mr. Grund to ignore the start loop.
Christoph Mallon [Sat, 27 Sep 2008 16:05:36 +0000 (16:05 +0000)]
Teach Mr. Gauß, Mr. Seidel and Mr. Grund to ignore the start loop.

[r22318]

15 years agoRemove wrong constlike flags from PPC32 Addi, Ori and Andi_dot.
Christoph Mallon [Sat, 27 Sep 2008 15:14:51 +0000 (15:14 +0000)]
Remove wrong constlike flags from PPC32 Addi, Ori and Andi_dot.

[r22317]

15 years agoadd missing exception attribute
Michael Beck [Sat, 27 Sep 2008 14:57:43 +0000 (14:57 +0000)]
add missing exception attribute

[r22316]

15 years agoDo not choke on Bad nodes while transforming for PPC32.
Christoph Mallon [Sat, 27 Sep 2008 14:21:42 +0000 (14:21 +0000)]
Do not choke on Bad nodes while transforming for PPC32.

[r22315]

15 years agoUse set_transformed_and_mark() instead of mark_irn_visited() + be_set_transformed_node().
Christoph Mallon [Sat, 27 Sep 2008 14:17:18 +0000 (14:17 +0000)]
Use set_transformed_and_mark() instead of mark_irn_visited() + be_set_transformed_node().

[r22314]

15 years ago- revert big benefice for irg_inline_forced methods,
Michael Beck [Sat, 27 Sep 2008 13:31:10 +0000 (13:31 +0000)]
- revert big benefice for irg_inline_forced methods,
  seems to be less usefull

[r22313]

15 years ago- BugFix: irg_inline_forced is not a bit
Michael Beck [Sat, 27 Sep 2008 10:32:04 +0000 (10:32 +0000)]
- BugFix: irg_inline_forced is not a bit
- revert to always inline forced functions for now

[r22311]

15 years ago- fixed some typos
Michael Beck [Sat, 27 Sep 2008 03:13:41 +0000 (03:13 +0000)]
- fixed some typos

[r22310]

15 years ago- add missing initializations
Michael Beck [Sat, 27 Sep 2008 02:50:50 +0000 (02:50 +0000)]
- add missing initializations

[r22309]

15 years agoVarious Fixes:
Michael Beck [Sat, 27 Sep 2008 02:45:49 +0000 (02:45 +0000)]
Various Fixes:
 - put call entries into a double linked list, so we can remove them in any order
 - correctly handle recursive calls: use the new (copied) callee_env
 - correctly handle weights for self-recursive calls: due to inlining recursive calls might get promoted to self-recursive calls
 - maxsize is a hard limit now: even forced functions are not inlined anymore (otherwise it would be possible to "force" a recursive one)
 - forced inlines are handled like function with BIG benefice and inlined first (sorted by loop depth)
 - fixed some comments, simplified code

[r22308]

15 years agotypo
Sebastian Buchwald [Fri, 26 Sep 2008 18:56:49 +0000 (18:56 +0000)]
typo

[r22303]

15 years agoIndentation.
Christoph Mallon [Fri, 26 Sep 2008 17:21:14 +0000 (17:21 +0000)]
Indentation.

[r22302]