libfirm
15 years agofixed the bad programm
Michael Beck [Thu, 28 Aug 2008 16:17:36 +0000 (16:17 +0000)]
fixed the bad programm

[r21554]

15 years agowrong 64bit lowering
Michael Beck [Thu, 28 Aug 2008 16:07:56 +0000 (16:07 +0000)]
wrong 64bit lowering

[r21553]

15 years agoArg: add a missing inc_irg_visited, who has deleted it?
Michael Beck [Thu, 28 Aug 2008 15:02:04 +0000 (15:02 +0000)]
Arg: add a missing inc_irg_visited, who has deleted it?

[r21552]

15 years agomore DBG_OPT cases
Michael Beck [Tue, 26 Aug 2008 12:23:46 +0000 (12:23 +0000)]
more DBG_OPT cases

[r21483]

15 years agofixed meanings of optimizations
Michael Beck [Tue, 26 Aug 2008 12:14:13 +0000 (12:14 +0000)]
fixed meanings of optimizations

[r21482]

15 years agodo NOT allocate an entry for Constants if they are not counted
Michael Beck [Tue, 26 Aug 2008 11:33:03 +0000 (11:33 +0000)]
do NOT allocate an entry for Constants if they are not counted

[r21477]

15 years agoDo NOT call DBG_OPT_CSE() in identify remember, as this is used for different
Michael Beck [Tue, 26 Aug 2008 11:23:57 +0000 (11:23 +0000)]
Do NOT call DBG_OPT_CSE() in identify remember, as this is used for different
purposes, call it only if a node is really replaced.

[r21475]

15 years agoDo not split string literals.
Michael Beck [Tue, 26 Aug 2008 11:22:07 +0000 (11:22 +0000)]
Do not split string literals.

[r21474]

15 years agoTeach use_dest_am() about Syncs.
Christoph Mallon [Tue, 26 Aug 2008 09:57:51 +0000 (09:57 +0000)]
Teach use_dest_am() about Syncs.

[r21469]

15 years agoGammelfix.
Christoph Mallon [Mon, 25 Aug 2008 20:07:07 +0000 (20:07 +0000)]
Gammelfix.

[r21465]

15 years agoFix lrot.c: Shifting by the width of the left operand results in undefined behaviour.
Christoph Mallon [Mon, 25 Aug 2008 19:44:20 +0000 (19:44 +0000)]
Fix lrot.c: Shifting by the width of the left operand results in undefined behaviour.

[r21464]

15 years agoRemove unnecessary condition in Load-to-Pop-optimisation: The Load does not need...
Christoph Mallon [Mon, 25 Aug 2008 18:45:23 +0000 (18:45 +0000)]
Remove unnecessary condition in Load-to-Pop-optimisation: The Load does not need to have a Spill as memory predecessor. Especially the existing condition tests for Phis, which does not guarantee that there is a Spill.

[r21461]

15 years agoRemove unnecessary test (when there is no index, scale does not matter).
Christoph Mallon [Mon, 25 Aug 2008 18:27:40 +0000 (18:27 +0000)]
Remove unnecessary test (when there is no index, scale does not matter).

[r21460]

15 years agoDo not use && in assert().
Christoph Mallon [Mon, 25 Aug 2008 18:26:58 +0000 (18:26 +0000)]
Do not use && in assert().

[r21459]

15 years agoFix fehler138.
Christoph Mallon [Mon, 25 Aug 2008 12:28:29 +0000 (12:28 +0000)]
Fix fehler138.

[r21446]

15 years agofehler138: must_be_different-handler chokes on Proj of constrained node.
Christoph Mallon [Mon, 25 Aug 2008 12:28:05 +0000 (12:28 +0000)]
fehler138: must_be_different-handler chokes on Proj of constrained node.

[r21445]

15 years agobetter count constants as operands of instructions
Michael Beck [Sun, 24 Aug 2008 12:48:08 +0000 (12:48 +0000)]
better count constants as operands of instructions

[r21407]

15 years agoBugFix: treat 0 as 0.0, not 1.0
Michael Beck [Sun, 24 Aug 2008 12:42:30 +0000 (12:42 +0000)]
BugFix: treat 0 as 0.0, not 1.0

[r21406]

15 years agobeware of NaN's
Michael Beck [Sun, 24 Aug 2008 11:26:58 +0000 (11:26 +0000)]
beware of NaN's

[r21405]

15 years ago- add QuotC
Michael Beck [Sun, 24 Aug 2008 11:22:41 +0000 (11:22 +0000)]
- add QuotC
- fixed floating point constant classification

[r21404]

15 years ago- converted get_irn_n(*, -1) back into get_nodes_block()
Michael Beck [Sun, 24 Aug 2008 11:07:08 +0000 (11:07 +0000)]
- converted get_irn_n(*, -1) back into get_nodes_block()
- use is_Pin()
- use value_of() instead of is_Const() test

[r21402]

15 years agoadded skip_Pin()
Michael Beck [Sun, 24 Aug 2008 10:57:37 +0000 (10:57 +0000)]
added skip_Pin()

[r21401]

15 years agoRemove dead initialisation.
Christoph Mallon [Sun, 24 Aug 2008 08:02:20 +0000 (08:02 +0000)]
Remove dead initialisation.

[r21398]

15 years agomore tarval cleanup
Michael Beck [Sun, 24 Aug 2008 00:19:59 +0000 (00:19 +0000)]
more tarval cleanup

[r21396]

15 years ago- simplified code
Michael Beck [Sun, 24 Aug 2008 00:04:45 +0000 (00:04 +0000)]
- simplified code
- add half and quad (need to change general precision from 66 to 130 bit) precisions

[r21395]

15 years agoSync the Stores generated by gen_float_const_Store().
Christoph Mallon [Sat, 23 Aug 2008 23:24:30 +0000 (23:24 +0000)]
Sync the Stores generated by gen_float_const_Store().

[r21393]

15 years agoSimplify gen_float_const_Store().
Christoph Mallon [Sat, 23 Aug 2008 23:11:59 +0000 (23:11 +0000)]
Simplify gen_float_const_Store().

[r21392]

15 years agoBugFix: used right descriptor in fc_val_from_str()
Michael Beck [Sat, 23 Aug 2008 22:21:27 +0000 (22:21 +0000)]
BugFix: used right descriptor in fc_val_from_str()

[r21391]

15 years agofixed fc_val_from_str(), this fixes fehler137.c
Michael Beck [Sat, 23 Aug 2008 21:16:35 +0000 (21:16 +0000)]
fixed fc_val_from_str(), this fixes fehler137.c

[r21390]

15 years agoadd support for explicit one
Michael Beck [Sat, 23 Aug 2008 21:05:49 +0000 (21:05 +0000)]
add support for explicit one

[r21389]

15 years agoRemove write-only variable. = and + output constraints are handled way earlier.
Christoph Mallon [Sat, 23 Aug 2008 15:32:33 +0000 (15:32 +0000)]
Remove write-only variable. = and + output constraints are handled way earlier.

[r21388]

15 years agoSlightly improve readability.
Christoph Mallon [Sat, 23 Aug 2008 15:30:37 +0000 (15:30 +0000)]
Slightly improve readability.

[r21387]

15 years agofehler137: tarval module does not model the explicit leading 1 for long double on...
Christoph Mallon [Sat, 23 Aug 2008 13:20:45 +0000 (13:20 +0000)]
fehler137: tarval module does not model the explicit leading 1 for long double on x86.

[r21383]

15 years agoFix output for long double initializers.
Christoph Mallon [Sat, 23 Aug 2008 13:19:27 +0000 (13:19 +0000)]
Fix output for long double initializers.

[r21382]

15 years agoRemove unnecessary dependency edge from the IncSP, which destroys the stack frame...
Christoph Mallon [Sat, 23 Aug 2008 06:35:34 +0000 (06:35 +0000)]
Remove unnecessary dependency edge from the IncSP, which destroys the stack frame, to the final memory Proj.  Most probably it is unnecessary since Projs are not scheduled anymore.

[r21370]

15 years agoAdd main().
Christoph Mallon [Sat, 23 Aug 2008 06:33:52 +0000 (06:33 +0000)]
Add main().

[r21369]

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]