libfirm
16 years agoimproved test: added new Confirm/cond_eval combination
Michael Beck [Sun, 25 May 2008 02:10:49 +0000 (02:10 +0000)]
improved test: added new Confirm/cond_eval combination

[r19751]

16 years agoarch_env_* macros updated
Michael Beck [Sat, 24 May 2008 16:55:57 +0000 (16:55 +0000)]
arch_env_* macros updated

[r19750]

16 years agoallocate all op attributes on block instead of a lot of malloc calls
Michael Beck [Sat, 24 May 2008 16:35:45 +0000 (16:35 +0000)]
allocate all op attributes on block instead of a lot of malloc calls

[r19749]

16 years ago- no need to add two custom pointers: the tag is now simply a 32bit number, typically...
Michael Beck [Sat, 24 May 2008 16:22:08 +0000 (16:22 +0000)]
- no need to add two custom pointers: the tag is now simply a 32bit number, typically a FOURCC code

[r19748]

16 years agoWhen testing whether generating a Psi is allowed, check whether the mode of the compa...
Christoph Mallon [Sat, 24 May 2008 10:11:27 +0000 (10:11 +0000)]
When testing whether generating a Psi is allowed, check whether the mode of the compared values is <= 32 bit in the case when cmov is disallowed, too. (improved Matze's accidental  commit)

[r19747]

16 years agonormalize/fix ProjM numbers, avoid dead code in some instances
Matthias Braun [Sat, 24 May 2008 10:08:26 +0000 (10:08 +0000)]
normalize/fix ProjM numbers, avoid dead code in some instances

[r19746]

16 years agowe can have mode_b inputs to Convs as well (I hope this fix is correct...)
Matthias Braun [Sat, 24 May 2008 10:05:20 +0000 (10:05 +0000)]
we can have mode_b inputs to Convs as well (I hope this fix is correct...)

[r19745]

16 years agosmall improvements: cache different environment members in local variables
Michael Beck [Fri, 23 May 2008 21:28:11 +0000 (21:28 +0000)]
small improvements: cache different environment members in local variables

[r19744]

16 years ago- not really necessary, but makes the array size again as big as it was before iro_La...
Michael Beck [Fri, 23 May 2008 21:09:55 +0000 (21:09 +0000)]
- not really necessary, but makes the array size again as big as it was before iro_Last was reduced

[r19743]

16 years ago- removed C99 features
Michael Beck [Fri, 23 May 2008 21:08:55 +0000 (21:08 +0000)]
- removed C99 features
- set be_ops only once
- do not overwrite already set be_ops

[r19742]

16 years agoBugFix: wrong condition for Abs (this fixes Queens.c)
Michael Beck [Fri, 23 May 2008 21:07:30 +0000 (21:07 +0000)]
BugFix: wrong condition for Abs (this fixes Queens.c)

[r19741]

16 years ago- Aus arch_isa_t wird arch_env_t sonst ändert sich nix...
Matthias Braun [Fri, 23 May 2008 19:04:09 +0000 (19:04 +0000)]
- Aus arch_isa_t wird arch_env_t sonst ändert sich nix...

[r19740]

16 years agowe don't need no stinking selfs
Matthias Braun [Fri, 23 May 2008 17:52:54 +0000 (17:52 +0000)]
we don't need no stinking selfs

[r19739]

16 years ago- arch_get_irn_ops simplified
Matthias Braun [Fri, 23 May 2008 17:37:30 +0000 (17:37 +0000)]
- arch_get_irn_ops simplified
- removed arch_irn_handler stuff

[r19738]

16 years agoRemoved the irn_handler stack.
Michael Beck [Fri, 23 May 2008 14:48:27 +0000 (14:48 +0000)]
Removed the irn_handler stack.

[r19733]

16 years agoRemoved the arch_irn_handler_t. This was just an additional redirection without
Michael Beck [Fri, 23 May 2008 14:25:50 +0000 (14:25 +0000)]
Removed the arch_irn_handler_t. This was just an additional redirection without
greater function...

[r19732]

16 years agocheck for Cmp nodes before doing doz
Michael Beck [Thu, 22 May 2008 03:04:27 +0000 (03:04 +0000)]
check for Cmp nodes before doing doz

[r19721]

16 years ago- normalize Muxes a bit: this hopefully improves the code a bit
Michael Beck [Thu, 22 May 2008 02:44:36 +0000 (02:44 +0000)]
- normalize Muxes a bit: this hopefully improves the code a bit

[r19720]

16 years agouse is_Const()
Michael Beck [Thu, 22 May 2008 02:42:10 +0000 (02:42 +0000)]
use is_Const()

[r19719]

16 years agomissing goto added
Michael Beck [Thu, 22 May 2008 01:37:58 +0000 (01:37 +0000)]
missing goto added

[r19718]

16 years ago- add more Mux optimization cases
Michael Beck [Thu, 22 May 2008 01:12:09 +0000 (01:12 +0000)]
- add more Mux optimization cases
- clarify some comments

[r19717]

16 years agofixed warnings
Michael Beck [Wed, 21 May 2008 23:56:32 +0000 (23:56 +0000)]
fixed warnings

[r19716]

16 years ago- placed phi_handler into the be_main environment, removing unnecessary allocations
Michael Beck [Wed, 21 May 2008 20:50:35 +0000 (20:50 +0000)]
- placed phi_handler into the be_main environment, removing unnecessary allocations

[r19715]

16 years ago- BugFix: replaced wrong cast by right code (no crash because offset is 0)
Michael Beck [Wed, 21 May 2008 20:29:28 +0000 (20:29 +0000)]
- BugFix: replaced wrong cast by right code (no crash because offset is 0)

[r19714]

16 years agotypos fixed
Michael Beck [Wed, 21 May 2008 19:13:40 +0000 (19:13 +0000)]
typos fixed

[r19713]

16 years ago- fixed doxygen comments
Michael Beck [Wed, 21 May 2008 19:12:42 +0000 (19:12 +0000)]
- fixed doxygen comments
- replaced O(n) test by O(1) test
- simplified code

[r19712]

16 years ago- beo_* Opcodes are now defined in irop.h, and no more dynamically allocated
Michael Beck [Wed, 21 May 2008 19:06:34 +0000 (19:06 +0000)]
- beo_* Opcodes are now defined in irop.h, and no more dynamically allocated
- simplified be_node_classify()

[r19711]

16 years ago- add a flag to allow 2 users when matching address mode: needed for Psi nodes
Michael Beck [Wed, 21 May 2008 15:11:46 +0000 (15:11 +0000)]
- add a flag to allow 2 users when matching address mode: needed for Psi nodes
- create code for unsigned Doz (a - b < 0 ? 0 : a - b)

[r19704]

16 years agotypos fixed
Michael Beck [Wed, 21 May 2008 15:10:20 +0000 (15:10 +0000)]
typos fixed

[r19703]

16 years agoassure_different_constraints():
Michael Beck [Wed, 21 May 2008 15:09:50 +0000 (15:09 +0000)]
assure_different_constraints():
we can safely IGNORE the should_be_different constraint, iff
we have only one, one should be same and both inputs are identical, for instance in
sbb(x,x)

[r19702]

16 years ago- If-conversion can generate SSE min and max nodes again.
Michael Beck [Tue, 20 May 2008 14:22:57 +0000 (14:22 +0000)]
- If-conversion can generate SSE min and max nodes again.
- preliminary support for If-conversion without Cmov

[r19689]

16 years ago- small code cleanup
Michael Beck [Mon, 19 May 2008 00:14:35 +0000 (00:14 +0000)]
- small code cleanup

[r19661]

16 years agofixed indentation
Michael Beck [Mon, 19 May 2008 00:09:55 +0000 (00:09 +0000)]
fixed indentation

[r19660]

16 years ago- BugFix: sometimes a wrong statistic flag was transmitted
Michael Beck [Mon, 19 May 2008 00:07:42 +0000 (00:07 +0000)]
- BugFix: sometimes a wrong statistic flag was transmitted

[r19659]

16 years ago- BugFix of the last fix ...
Michael Beck [Sun, 18 May 2008 23:48:59 +0000 (23:48 +0000)]
- BugFix of the last fix ...

[r19658]

16 years ago- BugFix: we really have to check both sides independently for (a ^ b) ^ a
Michael Beck [Sun, 18 May 2008 23:46:56 +0000 (23:46 +0000)]
- BugFix: we really have to check both sides independently for (a ^ b) ^ a

[r19657]

16 years agoadd missing DBG_OPT calls
Michael Beck [Sun, 18 May 2008 23:44:40 +0000 (23:44 +0000)]
add missing DBG_OPT calls

[r19656]

16 years agoImplement (a ^ b) ^ a -> b (in all four commutative variants).
Christoph Mallon [Sun, 18 May 2008 20:49:17 +0000 (20:49 +0000)]
Implement (a ^ b) ^ a -> b (in all four commutative variants).

[r19655]

16 years agoAllow safe x/y = x * (1.0/y) for exact 1.0/y even if floating point constant folding...
Michael Beck [Sun, 18 May 2008 14:39:10 +0000 (14:39 +0000)]
Allow safe x/y = x * (1.0/y) for exact 1.0/y even if floating point constant folding is disabled

[r19653]

16 years ago- Removed a big performance hit: The MARKS for visiting a node were
Michael Beck [Sat, 17 May 2008 02:18:31 +0000 (02:18 +0000)]
- Removed a big performance hit: The MARKS for visiting a node were
  previously removed after visiting:
  This could lead to visiting the same subgraph more than once (and
  quadratic runtime), but is not neccessary:
  If a subgraph was once visited, all addresses were already added to
  the set of "free" nodes.
  This fixes the mostly endless runs of the compiler for big methods,
  for instance in 176.gcc/calls.c after running cond_eval.c once more
- BugFix: add missing call to new initializer handling
- BugFix: if a node is exchanged, use the new node (not the Id) for
  further checks
- simplified the code
- fixed indentation

[r19652]

16 years ago- fixed indentation
Michael Beck [Sat, 17 May 2008 01:58:48 +0000 (01:58 +0000)]
- fixed indentation
- use the set_using_irn_link() api
- fixed debugging output
- use is_Call()

[r19651]

16 years agosmall code improvements
Michael Beck [Fri, 16 May 2008 09:28:27 +0000 (09:28 +0000)]
small code improvements

[r19644]

16 years agoBugFix: invalidate more data
Michael Beck [Fri, 16 May 2008 09:19:05 +0000 (09:19 +0000)]
BugFix: invalidate more data

[r19643]

16 years agoBelady optimisation:
Matthias Braun [Thu, 15 May 2008 12:18:08 +0000 (12:18 +0000)]
Belady optimisation:
- don't take delayed nodes too aggressively: if they're already dead in the
  known preds, then we'll only induce unnecessary reloads

[r19629]

16 years agoImprove sorting of roots: place live-out nodes later.
Christoph Mallon [Thu, 15 May 2008 11:19:30 +0000 (11:19 +0000)]
Improve sorting of roots: place live-out nodes later.

[r19628]

16 years agoImproved inline heuristic:
Michael Beck [Thu, 15 May 2008 10:59:38 +0000 (10:59 +0000)]
Improved inline heuristic:
 - inline recursive calls in rary cases only (BIG benefice or all
   arguments constant)
 - change some weights to hopefully better values

[r19625]

16 years agodumps now new style initializers
Michael Beck [Thu, 15 May 2008 10:15:52 +0000 (10:15 +0000)]
dumps now new style initializers

[r19623]

16 years agoBugFix: the spillslot coalescer need the ProjM nodes ...
Michael Beck [Wed, 14 May 2008 12:37:44 +0000 (12:37 +0000)]
BugFix: the spillslot coalescer need the ProjM nodes ...

[r19612]

16 years agotestprogram for the fisttp instruction
Michael Beck [Wed, 14 May 2008 11:29:51 +0000 (11:29 +0000)]
testprogram for the fisttp instruction

[r19610]

16 years agoBugFix: add missing copy
Michael Beck [Wed, 14 May 2008 10:31:19 +0000 (10:31 +0000)]
BugFix: add missing copy

[r19609]

16 years ago- modeled vfisttp using a dummy output value, this should fix the non-working copy...
Michael Beck [Wed, 14 May 2008 10:17:58 +0000 (10:17 +0000)]
- modeled vfisttp using a dummy output value, this should fix the non-working copy hack

[r19608]

16 years ago- don't use inc/dec on core2
Michael Beck [Wed, 14 May 2008 02:18:29 +0000 (02:18 +0000)]
- don't use inc/dec on core2
- add full support for SSE3 vfisttp instruction

[r19607]

16 years agoBugFix:
Michael Beck [Tue, 13 May 2008 23:58:35 +0000 (23:58 +0000)]
BugFix:
- jb is jc, not jae
- at&t syntax uses bt bitnumber, value ...

[r19606]

16 years agoSSE3 fisttp instruction added (currently unused due to RA problems)
Michael Beck [Tue, 13 May 2008 21:44:03 +0000 (21:44 +0000)]
SSE3 fisttp instruction added (currently unused due to RA problems)

[r19605]

16 years ago-BugFix: can not handle values with - in in, needed for instance for ia32-opt=k6-2
Michael Beck [Tue, 13 May 2008 21:04:27 +0000 (21:04 +0000)]
-BugFix: can not handle values with - in in, needed for instance for ia32-opt=k6-2

[r19604]

16 years agoBugFix:loop-info must run on copy
Michael Beck [Tue, 13 May 2008 19:24:58 +0000 (19:24 +0000)]
BugFix:loop-info must run on copy

[r19603]

16 years agoinline_leave_functions(): uses new collect_calls2() and needs loop-info
Michael Beck [Tue, 13 May 2008 19:17:20 +0000 (19:17 +0000)]
inline_leave_functions(): uses new collect_calls2() and needs loop-info

[r19602]

16 years agoallow bt instruction for newer AMD processors
Michael Beck [Tue, 13 May 2008 13:59:57 +0000 (13:59 +0000)]
allow bt instruction for newer AMD processors

[r19599]

16 years agoignore Bad control flow predecessors when calculating the CF loop tree
Michael Beck [Tue, 13 May 2008 13:56:06 +0000 (13:56 +0000)]
ignore Bad control flow predecessors when calculating the CF loop tree

[r19598]

16 years agoadd missing dbg hooks for boolean simplifications
Michael Beck [Mon, 12 May 2008 17:09:15 +0000 (17:09 +0000)]
add missing dbg hooks for boolean simplifications

[r19588]

16 years agotest bt instruction
Michael Beck [Mon, 12 May 2008 14:44:14 +0000 (14:44 +0000)]
test bt instruction

[r19585]

16 years ago- BugFix: added missing test when creating bt instructions
Michael Beck [Mon, 12 May 2008 14:18:24 +0000 (14:18 +0000)]
- BugFix: added missing test when creating bt instructions
- more cases added
- bt instructions leaves other flags undefined

[r19584]

16 years agogenerate bt x,n for if (x & (1 << n)) on Core2:
Michael Beck [Sun, 11 May 2008 13:08:56 +0000 (13:08 +0000)]
generate bt x,n for if (x & (1 << n)) on Core2:
Intel paper Inside_the_Intel_Compiler suggest it

This is probably good for short code and might be even good for newer Athlon machines

[r19580]

16 years ago- BugFix: flags for pad_return
Michael Beck [Sun, 11 May 2008 13:05:40 +0000 (13:05 +0000)]
- BugFix: flags for pad_return
- use_bt added

[r19579]

16 years ago- give bonus to small functions and leaves
Michael Beck [Fri, 9 May 2008 02:40:17 +0000 (02:40 +0000)]
- give bonus to small functions and leaves

[r19572]

16 years agoBugFix: add missing assure_cf_loop() for copy graphs
Michael Beck [Fri, 9 May 2008 02:10:13 +0000 (02:10 +0000)]
BugFix: add missing assure_cf_loop() for copy graphs

[r19571]

16 years ago- improve doxygen comments
Michael Beck [Fri, 9 May 2008 02:01:42 +0000 (02:01 +0000)]
- improve doxygen comments
- simplify code a bit

[r19570]

16 years agoinline_functions now inlines calls inside loops first
Michael Beck [Fri, 9 May 2008 01:56:42 +0000 (01:56 +0000)]
inline_functions now inlines calls inside loops first

[r19569]

16 years agoBugFix r19562: get_nodes_block(skip_Proj(get_irn_n(n,i))) is subtile
Michael Beck [Fri, 9 May 2008 01:49:13 +0000 (01:49 +0000)]
BugFix r19562: get_nodes_block(skip_Proj(get_irn_n(n,i))) is subtile
different from get_Block_cfgpred_block(): the latter might return Bad, while
the first returns the Start block then ...
Strange, but cf loops depend on this which os probably wrong, ARGHH!

[r19568]

16 years agoImprove scheduling: ignore keeps, sort roots by height.
Christoph Mallon [Thu, 8 May 2008 08:53:18 +0000 (08:53 +0000)]
Improve scheduling: ignore keeps, sort roots by height.

[r19563]

16 years ago- added assure_cf_loop()
Michael Beck [Wed, 7 May 2008 23:21:29 +0000 (23:21 +0000)]
- added assure_cf_loop()
- improved doxygen docu
- cleared the code a bit

[r19562]

16 years agoreordered struct for smaller memory print on 64bit
Michael Beck [Wed, 7 May 2008 23:19:08 +0000 (23:19 +0000)]
reordered struct for smaller memory print on 64bit

[r19561]

16 years agodo not count Const/SymConst CSE
Michael Beck [Wed, 7 May 2008 15:35:02 +0000 (15:35 +0000)]
do not count Const/SymConst CSE

[r19554]

16 years ago- add dumping of indirect/external calls
Michael Beck [Wed, 7 May 2008 02:32:30 +0000 (02:32 +0000)]
- add dumping of indirect/external calls
- replace -> by = for better TeX output

[r19542]

16 years agotypos fixed
Michael Beck [Wed, 7 May 2008 01:14:27 +0000 (01:14 +0000)]
typos fixed

[r19541]

16 years agooutputs the layout type for yComp, makes nicer yComp dumps
Michael Beck [Tue, 6 May 2008 21:27:54 +0000 (21:27 +0000)]
outputs the layout type for yComp, makes nicer yComp dumps

[r19539]

16 years ago- add ir_graph to loop element, preventing the ugly casting
Michael Beck [Tue, 6 May 2008 21:24:54 +0000 (21:24 +0000)]
- add ir_graph to loop element, preventing the ugly casting

[r19538]

16 years ago- add ir_graph to loop element, preventing the ugly casting
Michael Beck [Tue, 6 May 2008 21:23:28 +0000 (21:23 +0000)]
- add ir_graph to loop element, preventing the ugly casting

[r19537]

16 years agomark start end end blocks
Michael Beck [Tue, 6 May 2008 13:00:09 +0000 (13:00 +0000)]
mark start end end blocks

[r19531]

16 years agoupdated for new optimization
Michael Beck [Tue, 6 May 2008 12:56:59 +0000 (12:56 +0000)]
updated for new optimization

[r19530]

16 years agomissing entry added
Michael Beck [Mon, 5 May 2008 11:42:16 +0000 (11:42 +0000)]
missing entry added

[r19515]

16 years agoadd a parameter to limit the maximum size of methods when inlining, otherwise some...
Michael Beck [Mon, 5 May 2008 10:46:08 +0000 (10:46 +0000)]
add a parameter to limit the maximum size of methods when inlining, otherwise some files explode

[r19511]

16 years agofixed comment
Michael Beck [Mon, 5 May 2008 10:43:43 +0000 (10:43 +0000)]
fixed comment

[r19510]

16 years agoredo wrong 19491: DIV and IDIV are different
Michael Beck [Sun, 4 May 2008 00:43:18 +0000 (00:43 +0000)]
redo wrong 19491: DIV and IDIV are different

[r19502]

16 years ago- fixed r19477: pin_state MUST be the first attribute
Michael Beck [Sat, 3 May 2008 18:16:43 +0000 (18:16 +0000)]
- fixed r19477: pin_state MUST be the first attribute

[r19499]

16 years agoreduce code size
Michael Beck [Fri, 2 May 2008 20:56:20 +0000 (20:56 +0000)]
reduce code size

[r19491]

16 years ago- reduce lifetime of variables
Michael Beck [Fri, 2 May 2008 19:24:38 +0000 (19:24 +0000)]
- reduce lifetime of variables

[r19490]

16 years ago- reorder if to place cheapest test first
Michael Beck [Fri, 2 May 2008 18:01:21 +0000 (18:01 +0000)]
- reorder if to place cheapest test first
- reduce lifetime of two variables

[r19488]

16 years agouse mode_xmm where appropriate
Michael Beck [Fri, 2 May 2008 00:48:42 +0000 (00:48 +0000)]
use mode_xmm where appropriate

[r19484]

16 years agouse mode_xmm where appropriate
Michael Beck [Thu, 1 May 2008 23:57:25 +0000 (23:57 +0000)]
use mode_xmm where appropriate

[r19483]

16 years ago- transfor xorps r,r and xorpd r,r into pxor on netburst CPU's
Michael Beck [Thu, 1 May 2008 20:32:11 +0000 (20:32 +0000)]
- transfor xorps r,r and xorpd r,r into pxor on netburst CPU's

[r19482]

16 years ago- renamed SymConst num attribute into more logical kind
Michael Beck [Wed, 30 Apr 2008 19:59:49 +0000 (19:59 +0000)]
- renamed SymConst num attribute into more logical kind
- reordered some struct attributes for better 64bit memory layout

[r19477]

16 years agocorrect fix for benode comparison
Matthias Braun [Wed, 30 Apr 2008 12:16:02 +0000 (12:16 +0000)]
correct fix for benode comparison

[r19469]

16 years agoforgot to commit rbitset_requal
Matthias Braun [Wed, 30 Apr 2008 12:07:30 +0000 (12:07 +0000)]
forgot to commit rbitset_requal

[r19468]

16 years agoavoid dangerous use of memcmp
Matthias Braun [Wed, 30 Apr 2008 12:05:02 +0000 (12:05 +0000)]
avoid dangerous use of memcmp

[r19467]

16 years agoadd a comment that memcmp is not hostile here
Michael Beck [Wed, 30 Apr 2008 11:50:20 +0000 (11:50 +0000)]
add a comment that memcmp is not hostile here

[r19466]

16 years agodon't use memcmp for tarval comparison, there might be padding bytes with random...
Matthias Braun [Wed, 30 Apr 2008 11:47:02 +0000 (11:47 +0000)]
don't use memcmp for tarval comparison, there might be padding bytes with random content

[r19465]

16 years agofix 64bit warnings
Michael Beck [Tue, 29 Apr 2008 16:37:50 +0000 (16:37 +0000)]
fix 64bit warnings

[r19454]

16 years agofix 64bit warnings
Michael Beck [Tue, 29 Apr 2008 16:12:15 +0000 (16:12 +0000)]
fix 64bit warnings

[r19451]

16 years agofix 64bit warnings
Michael Beck [Tue, 29 Apr 2008 15:18:36 +0000 (15:18 +0000)]
fix 64bit warnings

[r19450]