libfirm
15 years agoFix asm_test5: Prevent the ASM node from being scheduled before the Barrier, if it...
Christoph Mallon [Sat, 23 Aug 2008 06:06:18 +0000 (06:06 +0000)]
Fix asm_test5: Prevent the ASM node from being scheduled before the Barrier, if it has no inputs.

[r21368]

15 years ago- BugFix: fix_start_proj() erronously assumed the startblock has only
Michael Beck [Sat, 23 Aug 2008 00:35:36 +0000 (00:35 +0000)]
- BugFix: fix_start_proj() erronously assumed the startblock has only
  mode_X out edge. This is wrong in phase backend AND might be wrong if
  start block has a keep-alive (which should not happen normally)
- fix_start_proj() speed up implementation
- add comment that fix_start_proj() is only needed in a really rare case
  ...
- add out edge verifier

[r21367]

15 years ago- removed NO_FOLLOWER
Michael Beck [Sat, 23 Aug 2008 00:32:34 +0000 (00:32 +0000)]
- removed NO_FOLLOWER
- no need to add a keep-alive edge if block input is Bad
- report fused blocks
- report removed block inputs

[r21366]

15 years agoRemove the unused node types ia32_l_Load, ia32_l_Store, ia32_l_vfild and ia32_l_vfist.
Christoph Mallon [Fri, 22 Aug 2008 18:33:52 +0000 (18:33 +0000)]
Remove the unused node types ia32_l_Load, ia32_l_Store, ia32_l_vfild and ia32_l_vfist.

[r21365]

15 years agoUse symbolic names instead of magic values for the position parameter of get_irn_n().
Christoph Mallon [Fri, 22 Aug 2008 18:24:00 +0000 (18:24 +0000)]
Use symbolic names instead of magic values for the position parameter of get_irn_n().

[r21364]

15 years agoSmall cleanup.
Christoph Mallon [Fri, 22 Aug 2008 18:14:38 +0000 (18:14 +0000)]
Small cleanup.

[r21363]

15 years agoRemove final \n from panic messages, panic() adds a newline automagically.
Christoph Mallon [Fri, 22 Aug 2008 18:00:53 +0000 (18:00 +0000)]
Remove final \n from panic messages, panic() adds a newline automagically.

[r21362]

15 years agoDo not split string literals.
Christoph Mallon [Fri, 22 Aug 2008 17:52:17 +0000 (17:52 +0000)]
Do not split string literals.

[r21360]

15 years agoRemove unnecessary cast.
Christoph Mallon [Fri, 22 Aug 2008 17:44:18 +0000 (17:44 +0000)]
Remove unnecessary cast.

[r21358]

15 years agoRun the x87 simulator when a graph contains Calls, which return floats.
Christoph Mallon [Fri, 22 Aug 2008 14:22:33 +0000 (14:22 +0000)]
Run the x87 simulator when a graph contains Calls, which return floats.

[r21352]

15 years agoBug in edgfe when taking address of forward declared variable (struct? const?).
Christoph Mallon [Fri, 22 Aug 2008 12:59:30 +0000 (12:59 +0000)]
Bug in edgfe when taking address of forward declared variable (struct? const?).

[r21349]

15 years agoConvert Stores to Pushs after IncSP from top of stack, not from the other end of...
Christoph Mallon [Fri, 22 Aug 2008 11:57:05 +0000 (11:57 +0000)]
Convert Stores to Pushs after IncSP from top of stack, not from the other end of the IncSP.

[r21344]

15 years agoSmall simplification in ia32 ASM emitter.
Christoph Mallon [Thu, 21 Aug 2008 14:43:05 +0000 (14:43 +0000)]
Small simplification in ia32 ASM emitter.

[r21325]

15 years agoAdd is_Carry(), get_Carry_left(), get_Carry_right().
Christoph Mallon [Thu, 21 Aug 2008 14:37:55 +0000 (14:37 +0000)]
Add is_Carry(), get_Carry_left(), get_Carry_right().

[r21324]

15 years agoUse Doxygen group comment.
Christoph Mallon [Thu, 21 Aug 2008 14:35:12 +0000 (14:35 +0000)]
Use Doxygen group comment.

[r21323]

15 years agoCorrect assertion.
Christoph Mallon [Thu, 21 Aug 2008 14:24:33 +0000 (14:24 +0000)]
Correct assertion.

[r21322]

15 years agoAdjust the push-through-perm-frontier: It is the problematic node itself, not its...
Christoph Mallon [Thu, 21 Aug 2008 14:20:18 +0000 (14:20 +0000)]
Adjust the push-through-perm-frontier: It is the problematic node itself, not its successor.

[r21321]

15 years agoCorrect asm_test4.c, it only worked by pure chance on gcc.
Christoph Mallon [Thu, 21 Aug 2008 13:41:34 +0000 (13:41 +0000)]
Correct asm_test4.c, it only worked by pure chance on gcc.

[r21317]

15 years agoTest case to use the correct Cmp mode
Andreas Zwinkau [Thu, 21 Aug 2008 13:36:29 +0000 (13:36 +0000)]
Test case to use the correct Cmp mode

[r21315]

15 years ago- crashes, why?
Michael Beck [Thu, 21 Aug 2008 13:03:20 +0000 (13:03 +0000)]
- crashes, why?

[r21314]

15 years agopush_through_perm():
Michael Beck [Thu, 21 Aug 2008 12:42:51 +0000 (12:42 +0000)]
push_through_perm():
 - fixed dominance frontier IF walking the whole block upwards
 - simplified code
 - hopefully better explanation how the frontier is calculated

[r21312]

15 years agoAdding another inline assembler test
Andreas Zwinkau [Thu, 21 Aug 2008 12:34:52 +0000 (12:34 +0000)]
Adding another inline assembler test

It looks strange, but icc and gcc can do it.

[r21311]

15 years agobe_Perm_reduce: no need to allocate a temporary array on the irg's obstack, set_in_in...
Michael Beck [Thu, 21 Aug 2008 11:41:15 +0000 (11:41 +0000)]
be_Perm_reduce: no need to allocate a temporary array on the irg's obstack, set_in_in() creates a new one

[r21310]

15 years agocc_fixed is dead, all hail stickyness_sticky!
Christoph Mallon [Thu, 21 Aug 2008 10:58:11 +0000 (10:58 +0000)]
cc_fixed is dead, all hail stickyness_sticky!

[r21309]

15 years ago- sticky methods can be called from outside (by inline ASM for instance) and are...
Michael Beck [Thu, 21 Aug 2008 10:56:42 +0000 (10:56 +0000)]
- sticky methods can be called from outside (by inline ASM for instance) and are NOT private

[r21307]

15 years agoDo it like GCC: write #APP #NO_APP around inline assembler.
Christoph Mallon [Thu, 21 Aug 2008 08:29:40 +0000 (08:29 +0000)]
Do it like GCC: write #APP #NO_APP around inline assembler.

[r21304]

15 years agoRemove last vestiges of arch_register_req_type_should_be_different_from_all (removed...
Christoph Mallon [Thu, 21 Aug 2008 07:30:25 +0000 (07:30 +0000)]
Remove last vestiges of arch_register_req_type_should_be_different_from_all (removed in r16320).

[r21303]

15 years agoRename arch_register_req_type_should_be_different to the more appropriate arch_regist...
Christoph Mallon [Thu, 21 Aug 2008 07:24:59 +0000 (07:24 +0000)]
Rename arch_register_req_type_should_be_different to the more appropriate arch_register_req_type_must_be_different.

[r21302]

15 years agoFix typo in comment.
Christoph Mallon [Thu, 21 Aug 2008 06:56:42 +0000 (06:56 +0000)]
Fix typo in comment.

[r21301]

15 years agoWhen transforming an ASM "same"-constraint, copy the requirements from the other...
Christoph Mallon [Thu, 21 Aug 2008 06:54:42 +0000 (06:54 +0000)]
When transforming an ASM "same"-constraint, copy the requirements from the other constraint, so at least we have a chance to generate correct code.

[r21300]

15 years agoanother brain damaged gcc extension
Michael Beck [Wed, 20 Aug 2008 22:34:56 +0000 (22:34 +0000)]
another brain damaged gcc extension

[r21297]

15 years agoAdded test case with an shift amount > 3.
Sebastian Buchwald [Wed, 20 Aug 2008 16:24:55 +0000 (16:24 +0000)]
Added test case with an shift amount > 3.

[r21294]

15 years agoAdded assert for right am_scale value;
Sebastian Buchwald [Wed, 20 Aug 2008 14:35:24 +0000 (14:35 +0000)]
Added assert for right am_scale value;

[r21291]

15 years agoDo not deconv reference modes.
Christoph Mallon [Wed, 20 Aug 2008 12:51:10 +0000 (12:51 +0000)]
Do not deconv reference modes.

[r21281]

15 years agoAdded test case for Rotl node.
Sebastian Buchwald [Tue, 19 Aug 2008 18:56:16 +0000 (18:56 +0000)]
Added test case for Rotl node.

[r21270]

15 years agodetect fully/partly redundant by inspection node index ...
Michael Beck [Tue, 19 Aug 2008 13:40:09 +0000 (13:40 +0000)]
detect fully/partly redundant by inspection node index ...

[r21263]

15 years ago- more doxygen comments
Michael Beck [Tue, 19 Aug 2008 13:01:28 +0000 (13:01 +0000)]
- more doxygen comments
- first support for statistics

[r21261]

15 years agofixed name clash
Michael Beck [Tue, 19 Aug 2008 13:00:14 +0000 (13:00 +0000)]
fixed name clash

[r21260]

15 years agoadd first statistic support for GVN-PRE and combo
Michael Beck [Tue, 19 Aug 2008 12:28:40 +0000 (12:28 +0000)]
add first statistic support for GVN-PRE and combo

[r21258]

15 years agoMoved creation of ia32_LdTls into common transformer.
Sebastian Buchwald [Tue, 19 Aug 2008 11:11:29 +0000 (11:11 +0000)]
Moved creation of ia32_LdTls into common transformer.

[r21255]

15 years agoC99 features removed
Michael Beck [Mon, 18 Aug 2008 19:14:36 +0000 (19:14 +0000)]
C99 features removed

[r21246]

15 years agoMoved transformation of CopyB nodes into ia32_common_transform and use it in the...
Sebastian Buchwald [Mon, 18 Aug 2008 12:23:42 +0000 (12:23 +0000)]
Moved transformation of CopyB nodes into ia32_common_transform and use it in the pbqp transformer.

[r21241]

15 years agoUse switch to decide which ia32 transformer is selected.
Sebastian Buchwald [Mon, 18 Aug 2008 08:11:20 +0000 (08:11 +0000)]
Use switch to decide which ia32 transformer is selected.

[r21234]

15 years agoUse enums instead of magic numbers.
Christoph Mallon [Sun, 17 Aug 2008 13:38:25 +0000 (13:38 +0000)]
Use enums instead of magic numbers.

[r21232]

15 years agoResolve warning about unused label.
Christoph Mallon [Sun, 17 Aug 2008 13:31:17 +0000 (13:31 +0000)]
Resolve warning about unused label.

[r21231]

15 years agosmall improvement
Michael Beck [Sat, 16 Aug 2008 10:10:58 +0000 (10:10 +0000)]
small improvement

[r21213]

15 years ago- clear the descriptions if SSA construction is restarted
Michael Beck [Fri, 15 Aug 2008 20:04:21 +0000 (20:04 +0000)]
- clear the descriptions if SSA construction is restarted

[r21207]

15 years agotypo
Sebastian Buchwald [Fri, 15 Aug 2008 18:33:49 +0000 (18:33 +0000)]
typo

[r21205]

15 years ago- workround for inline of got inlined: we cannot
Michael Beck [Fri, 15 Aug 2008 16:43:58 +0000 (16:43 +0000)]
- workround for inline of got inlined: we cannot
  optimize graphs that might still be inlined because the meta-information is invalided then,
  do that as an additional step

[r21200]

15 years ago- handle endless loops now
Michael Beck [Fri, 15 Aug 2008 15:54:48 +0000 (15:54 +0000)]
- handle endless loops now
- use resource locking functions

[r21199]

15 years agoTypos.
Christoph Mallon [Fri, 15 Aug 2008 09:35:31 +0000 (09:35 +0000)]
Typos.

[r21192]

15 years agocombo does not add keep alive edges yet
Michael Beck [Fri, 15 Aug 2008 02:26:03 +0000 (02:26 +0000)]
combo does not add keep alive edges yet

[r21189]

15 years ago- add support for Eor and Shift nodes
Michael Beck [Fri, 15 Aug 2008 02:16:14 +0000 (02:16 +0000)]
- add support for Eor and Shift nodes
- do not kill Unknown
- switch Unknwon -> tarval_Top of for the moment, makes non-monotone
  transfer function

[r21188]

15 years agoexample for optimizing unknown
Michael Beck [Fri, 15 Aug 2008 01:32:08 +0000 (01:32 +0000)]
example for optimizing unknown

[r21187]

15 years ago- if all Condb has Cmp predecessors, allow Unknown nodes to produce TOP
Michael Beck [Fri, 15 Aug 2008 01:30:51 +0000 (01:30 +0000)]
- if all Condb has Cmp predecessors, allow Unknown nodes to produce TOP
- Cmp(a, TOP) produces !=, not TOP (like icc, Clicks work returns ==
  here because they congruent, but it isn't important waht to choose as
  long as it is monotone

[r21186]

15 years agoshould be enough to place the smaller part on the cprop list
Michael Beck [Fri, 15 Aug 2008 00:13:23 +0000 (00:13 +0000)]
should be enough to place the smaller part on the cprop list

[r21185]

15 years agoupdated is_real_follower(): handle other cases
Michael Beck [Thu, 14 Aug 2008 22:02:13 +0000 (22:02 +0000)]
updated is_real_follower(): handle other cases

[r21184]

15 years agoRemove the potentially existing Proj when replacing a Cmp() by a Test().
Christoph Mallon [Thu, 14 Aug 2008 19:43:04 +0000 (19:43 +0000)]
Remove the potentially existing Proj when replacing a Cmp() by a Test().

[r21183]

15 years ago- reverted to 2bit flags
Michael Beck [Thu, 14 Aug 2008 14:21:55 +0000 (14:21 +0000)]
- reverted to 2bit flags
- add partition to cprop list if followers where translated to leader :
  these must propably be splitted out by split_by()

[r21174]

15 years agoremoved superfluous /*
Michael Beck [Thu, 14 Aug 2008 13:42:14 +0000 (13:42 +0000)]
removed superfluous /*

[r21173]

15 years agoadded FS_OPT_SUB_TO_NOT and FS_OPT_SUB_TO_CONV
Michael Beck [Thu, 14 Aug 2008 13:37:49 +0000 (13:37 +0000)]
added FS_OPT_SUB_TO_NOT and FS_OPT_SUB_TO_CONV

[r21172]

15 years agoMake ICC more happy by spelling -f combo as -fcombo, so it can properly ignore "combo...
Christoph Mallon [Thu, 14 Aug 2008 11:50:29 +0000 (11:50 +0000)]
Make ICC more happy by spelling -f combo as -fcombo, so it can properly ignore "combo" and not treat it as input file.

[r21167]

15 years agoTeach AM folding about Syncs. Atm this only affects Div nodes, but is useful for...
Christoph Mallon [Thu, 14 Aug 2008 11:43:20 +0000 (11:43 +0000)]
Teach AM folding about Syncs. Atm this only affects Div nodes, but is useful for Call with AM (not done yet), too.

[r21164]

15 years agoLocal opt: -1 - x -> ~x.
Christoph Mallon [Thu, 14 Aug 2008 09:37:18 +0000 (09:37 +0000)]
Local opt: -1 - x -> ~x.

[r21159]

15 years agoCrash in edgfe, probably caused by asm =m constraint.
Christoph Mallon [Thu, 14 Aug 2008 09:07:52 +0000 (09:07 +0000)]
Crash in edgfe, probably caused by asm =m constraint.

[r21158]

15 years agoSmall fixes, typos, style.
Christoph Mallon [Wed, 13 Aug 2008 21:19:12 +0000 (21:19 +0000)]
Small fixes, typos, style.

[r21156]

15 years agoFix stale comments.
Christoph Mallon [Wed, 13 Aug 2008 21:03:05 +0000 (21:03 +0000)]
Fix stale comments.

[r21155]

15 years agoFix crash in r21138.
Christoph Mallon [Wed, 13 Aug 2008 19:41:29 +0000 (19:41 +0000)]
Fix crash in r21138.

[r21154]

15 years agointroduce more generic resource reservation debug helpers instead of old set_using_xx...
Matthias Braun [Wed, 13 Aug 2008 14:15:35 +0000 (14:15 +0000)]
introduce more generic resource reservation debug helpers instead of old set_using_xxxx functions

[r21148]

15 years agofastcall example
Michael Beck [Wed, 13 Aug 2008 14:02:21 +0000 (14:02 +0000)]
fastcall example

[r21147]

15 years agofix debug name
Matthias Braun [Wed, 13 Aug 2008 13:37:55 +0000 (13:37 +0000)]
fix debug name

[r21146]

15 years ago- fixed fastcall/regparam/thiscall registers for ia32
Michael Beck [Wed, 13 Aug 2008 13:32:41 +0000 (13:32 +0000)]
- fixed fastcall/regparam/thiscall registers for ia32

[r21144]

15 years ago- Introduce cc_fixed: the calling convention must not be changed later on
Christoph Mallon [Wed, 13 Aug 2008 10:18:56 +0000 (10:18 +0000)]
- Introduce cc_fixed: the calling convention must not be changed later on
- Handle cc_callee_clear_stk in the x86 backend

[r21138]

15 years agoDefer decision whether to create Test(x, x) instead of Cmp(x, 0) until peephole optim...
Christoph Mallon [Tue, 12 Aug 2008 20:56:38 +0000 (20:56 +0000)]
Defer decision whether to create Test(x, x) instead of Cmp(x, 0) until peephole optimisation. This improves the code when Cmp(AM, 0) is undone by the flags repair phase.

[r21134]

15 years agoRemove pointless assert (the node of modes is rather seldom 0 and the pointer has...
Christoph Mallon [Tue, 12 Aug 2008 19:35:22 +0000 (19:35 +0000)]
Remove pointless assert (the node of modes is rather seldom 0 and the pointer has been dereferenced at least thrice before this point).

[r21133]

15 years agoThe PBQP transformer still works in-place...
Sebastian Buchwald [Tue, 12 Aug 2008 17:23:03 +0000 (17:23 +0000)]
The PBQP transformer still works in-place...

[r21131]

15 years agoAdded missing include, so FIRM_GRGEN_BE has a chance to be defined.
Sebastian Buchwald [Tue, 12 Aug 2008 17:14:24 +0000 (17:14 +0000)]
Added missing include, so FIRM_GRGEN_BE has a chance to be defined.

[r21130]

15 years agoThe PBQP transformer works in-place, so use the old block while transform ASM nodes.
Sebastian Buchwald [Tue, 12 Aug 2008 13:29:53 +0000 (13:29 +0000)]
The PBQP transformer works in-place, so use the old block while transform ASM nodes.

[r21123]

15 years agodisable load from static const optimisation for new-style initializers (until we...
Matthias Braun [Tue, 12 Aug 2008 11:28:40 +0000 (11:28 +0000)]
disable load from static const optimisation for new-style initializers (until we have code for that)

[r21118]

15 years agoadd some more assert to make sure we don't use compound_path stuff on new style initi...
Matthias Braun [Tue, 12 Aug 2008 11:27:24 +0000 (11:27 +0000)]
add some more assert to make sure we don't use compound_path stuff on new style initializers

[r21117]

15 years agoicc doesn't like -fomit-frame-pointer without -O
Matthias Braun [Tue, 12 Aug 2008 08:46:42 +0000 (08:46 +0000)]
icc doesn't like -fomit-frame-pointer without -O

[r21113]

15 years agodon't access NULL pointers
Matthias Braun [Tue, 12 Aug 2008 08:09:54 +0000 (08:09 +0000)]
don't access NULL pointers

[r21110]

15 years agoforgot to commit this
Matthias Braun [Tue, 12 Aug 2008 08:08:18 +0000 (08:08 +0000)]
forgot to commit this

[r21109]

15 years agodo the clobber magic for all classes
Matthias Braun [Tue, 12 Aug 2008 08:07:27 +0000 (08:07 +0000)]
do the clobber magic for all classes

[r21108]

15 years agoit's mine
Matthias Braun [Tue, 12 Aug 2008 08:00:14 +0000 (08:00 +0000)]
it's mine

[r21107]

15 years agoDo not use clobbered GP register as input registers (not for output is implicit).
Christoph Mallon [Tue, 12 Aug 2008 07:58:25 +0000 (07:58 +0000)]
Do not use clobbered GP register as input registers (not for output is implicit).

[r21106]

15 years agofehler133: edgfe handles in-out (+) constraints for asm wrong (does not generate...
Christoph Mallon [Tue, 12 Aug 2008 07:56:27 +0000 (07:56 +0000)]
fehler133: edgfe handles in-out (+) constraints for asm wrong (does not generate out-value).

[r21105]

15 years agomore asm trickery
Matthias Braun [Mon, 11 Aug 2008 17:09:03 +0000 (17:09 +0000)]
more asm trickery

[r21100]

15 years ago- special Handling for Confirm/Mux nodes needed:
Michael Beck [Mon, 11 Aug 2008 13:54:26 +0000 (13:54 +0000)]
- special Handling for Confirm/Mux nodes needed:
  only some inputs are follower inputs!
- it is enough to check the followers of the smaller split for
  Follower -> Leader transition (the 'visited by both' is non-sense)
- Phi followers are disabled yet :-(

[r21096]

15 years agotypo
Sebastian Buchwald [Mon, 11 Aug 2008 13:11:08 +0000 (13:11 +0000)]
typo

[r21090]

15 years agotwo more test cases concering Convs and Divs
Andreas Zwinkau [Mon, 11 Aug 2008 13:04:01 +0000 (13:04 +0000)]
two more test cases concering Convs and Divs

[r21089]

15 years agoAdd a switch to select the ia32 transformer.
Christoph Mallon [Mon, 11 Aug 2008 11:36:24 +0000 (11:36 +0000)]
Add a switch to select the ia32 transformer.

[r21085]

15 years agoMoved global variable heights to ia32_common_transform.
Sebastian Buchwald [Mon, 11 Aug 2008 09:24:03 +0000 (09:24 +0000)]
Moved global variable heights to ia32_common_transform.

[r21082]

15 years ago- ifconv builds Muxb nodes, so allow mode datab for Mux
Michael Beck [Sun, 10 Aug 2008 21:38:20 +0000 (21:38 +0000)]
- ifconv builds Muxb nodes, so allow mode datab for Mux

[r21080]

15 years ago- More changed:
Michael Beck [Sun, 10 Aug 2008 20:23:01 +0000 (20:23 +0000)]
- More changed:
  we have to move ALL Followers to Leaders which gets hit
  on both sides of the race, regardless on which side the node stay ...
  (really ?)
- factor out follower_to_leader()
- check_list() added
- add always to the end of double-linked lists
- add more assertions
- do not handle follower -> leader for Phi nodes on the cprop list
  (why this is needed ?)

[r21079]

15 years agoFix asm constraint check for 'I': It must be <= 31, not <= 32.
Christoph Mallon [Sat, 9 Aug 2008 06:46:22 +0000 (06:46 +0000)]
Fix asm constraint check for 'I': It must be <= 31, not <= 32.

[r21073]

15 years agoFix macro test which used pbqp transformer when it should not.
Christoph Mallon [Sat, 9 Aug 2008 06:44:46 +0000 (06:44 +0000)]
Fix macro test which used pbqp transformer when it should not.

[r21072]

15 years agofehler132: Endless loop in 64bit lowerer with asm-node.
Christoph Mallon [Sat, 9 Aug 2008 06:36:48 +0000 (06:36 +0000)]
fehler132: Endless loop in 64bit lowerer with asm-node.

[r21071]

15 years ago- finally understand HOW n-input nodes made the Follower -> Leader transition
Michael Beck [Sat, 9 Aug 2008 02:18:20 +0000 (02:18 +0000)]
- finally understand HOW n-input nodes made the Follower -> Leader transition
  (read the text until end :-), this removes half of the fixes from r21061;
  this simplifies segregate_def_use_chains()
- add a partition checker
- opcode contains the arity now (not clear if this is really needed)
- a lot of more assertions()
- do not kill Confirms yet

Still buggy yet :-(

[r21069]

15 years agoMoved common code of ia32_pbqp_transform and ia32_transform into separate file.
Sebastian Buchwald [Fri, 8 Aug 2008 23:40:43 +0000 (23:40 +0000)]
Moved common code of ia32_pbqp_transform and ia32_transform into separate file.

[r21068]