Matthias Braun [Tue, 2 Sep 2008 08:58:05 +0000 (08:58 +0000)]
fehler142 (probably the quake3 client problem)
[r21636]
Christoph Mallon [Tue, 2 Sep 2008 07:16:29 +0000 (07:16 +0000)]
Partially undo r20786: Emit ret $0 especially when its BB is only reached by a fallthrough, because this means its predecessor ends with a conditional jump. According to the AMD Optimization guides, conditional jump directly followed by ret should be avoided.
[r21632]
Matthias Braun [Mon, 1 Sep 2008 10:38:58 +0000 (10:38 +0000)]
improved belady3
[r21619]
Michael Beck [Fri, 29 Aug 2008 02:13:02 +0000 (02:13 +0000)]
testcase for currently broken GVN-PRE
[r21561]
Michael Beck [Fri, 29 Aug 2008 00:46:16 +0000 (00:46 +0000)]
testcase for currently broken GVN-PRE
[r21560]
Christoph Mallon [Thu, 28 Aug 2008 19:07:00 +0000 (19:07 +0000)]
80bit floats have no implicit leading 1.
[r21558]
Christoph Mallon [Thu, 28 Aug 2008 19:06:15 +0000 (19:06 +0000)]
Only warn about Sub with constant in the backend, if the mode is not float.
[r21557]
Christoph Mallon [Thu, 28 Aug 2008 18:07:40 +0000 (18:07 +0000)]
Fix typos in fehler139.
[r21556]
Michael Beck [Thu, 28 Aug 2008 16:31:57 +0000 (16:31 +0000)]
Fix fehler139: Pass eflags input of Adc/Sbb to AM matcher.
[r21555]
Michael Beck [Thu, 28 Aug 2008 16:17:36 +0000 (16:17 +0000)]
fixed the bad programm
[r21554]
Michael Beck [Thu, 28 Aug 2008 16:07:56 +0000 (16:07 +0000)]
wrong 64bit lowering
[r21553]
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]
Michael Beck [Tue, 26 Aug 2008 12:23:46 +0000 (12:23 +0000)]
more DBG_OPT cases
[r21483]
Michael Beck [Tue, 26 Aug 2008 12:14:13 +0000 (12:14 +0000)]
fixed meanings of optimizations
[r21482]
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]
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]
Michael Beck [Tue, 26 Aug 2008 11:22:07 +0000 (11:22 +0000)]
Do not split string literals.
[r21474]
Christoph Mallon [Tue, 26 Aug 2008 09:57:51 +0000 (09:57 +0000)]
Teach use_dest_am() about Syncs.
[r21469]
Christoph Mallon [Mon, 25 Aug 2008 20:07:07 +0000 (20:07 +0000)]
Gammelfix.
[r21465]
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]
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]
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]
Christoph Mallon [Mon, 25 Aug 2008 18:26:58 +0000 (18:26 +0000)]
Do not use && in assert().
[r21459]
Christoph Mallon [Mon, 25 Aug 2008 12:28:29 +0000 (12:28 +0000)]
Fix fehler138.
[r21446]
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]
Michael Beck [Sun, 24 Aug 2008 12:48:08 +0000 (12:48 +0000)]
better count constants as operands of instructions
[r21407]
Michael Beck [Sun, 24 Aug 2008 12:42:30 +0000 (12:42 +0000)]
BugFix: treat 0 as 0.0, not 1.0
[r21406]
Michael Beck [Sun, 24 Aug 2008 11:26:58 +0000 (11:26 +0000)]
beware of NaN's
[r21405]
Michael Beck [Sun, 24 Aug 2008 11:22:41 +0000 (11:22 +0000)]
- add QuotC
- fixed floating point constant classification
[r21404]
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]
Michael Beck [Sun, 24 Aug 2008 10:57:37 +0000 (10:57 +0000)]
added skip_Pin()
[r21401]
Christoph Mallon [Sun, 24 Aug 2008 08:02:20 +0000 (08:02 +0000)]
Remove dead initialisation.
[r21398]
Michael Beck [Sun, 24 Aug 2008 00:19:59 +0000 (00:19 +0000)]
more tarval cleanup
[r21396]
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]
Christoph Mallon [Sat, 23 Aug 2008 23:24:30 +0000 (23:24 +0000)]
Sync the Stores generated by gen_float_const_Store().
[r21393]
Christoph Mallon [Sat, 23 Aug 2008 23:11:59 +0000 (23:11 +0000)]
Simplify gen_float_const_Store().
[r21392]
Michael Beck [Sat, 23 Aug 2008 22:21:27 +0000 (22:21 +0000)]
BugFix: used right descriptor in fc_val_from_str()
[r21391]
Michael Beck [Sat, 23 Aug 2008 21:16:35 +0000 (21:16 +0000)]
fixed fc_val_from_str(), this fixes fehler137.c
[r21390]
Michael Beck [Sat, 23 Aug 2008 21:05:49 +0000 (21:05 +0000)]
add support for explicit one
[r21389]
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]
Christoph Mallon [Sat, 23 Aug 2008 15:30:37 +0000 (15:30 +0000)]
Slightly improve readability.
[r21387]
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]
Christoph Mallon [Sat, 23 Aug 2008 13:19:27 +0000 (13:19 +0000)]
Fix output for long double initializers.
[r21382]
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]
Christoph Mallon [Sat, 23 Aug 2008 06:33:52 +0000 (06:33 +0000)]
Add main().
[r21369]
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]
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]
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]
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]
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]
Christoph Mallon [Fri, 22 Aug 2008 18:14:38 +0000 (18:14 +0000)]
Small cleanup.
[r21363]
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]
Christoph Mallon [Fri, 22 Aug 2008 17:52:17 +0000 (17:52 +0000)]
Do not split string literals.
[r21360]
Christoph Mallon [Fri, 22 Aug 2008 17:44:18 +0000 (17:44 +0000)]
Remove unnecessary cast.
[r21358]
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]
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]
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]
Christoph Mallon [Thu, 21 Aug 2008 14:43:05 +0000 (14:43 +0000)]
Small simplification in ia32 ASM emitter.
[r21325]
Christoph Mallon [Thu, 21 Aug 2008 14:37:55 +0000 (14:37 +0000)]
Add is_Carry(), get_Carry_left(), get_Carry_right().
[r21324]
Christoph Mallon [Thu, 21 Aug 2008 14:35:12 +0000 (14:35 +0000)]
Use Doxygen group comment.
[r21323]
Christoph Mallon [Thu, 21 Aug 2008 14:24:33 +0000 (14:24 +0000)]
Correct assertion.
[r21322]
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]
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]
Andreas Zwinkau [Thu, 21 Aug 2008 13:36:29 +0000 (13:36 +0000)]
Test case to use the correct Cmp mode
[r21315]
Michael Beck [Thu, 21 Aug 2008 13:03:20 +0000 (13:03 +0000)]
- crashes, why?
[r21314]
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]
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]
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]
Christoph Mallon [Thu, 21 Aug 2008 10:58:11 +0000 (10:58 +0000)]
cc_fixed is dead, all hail stickyness_sticky!
[r21309]
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]
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]
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]
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]
Christoph Mallon [Thu, 21 Aug 2008 06:56:42 +0000 (06:56 +0000)]
Fix typo in comment.
[r21301]
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]
Michael Beck [Wed, 20 Aug 2008 22:34:56 +0000 (22:34 +0000)]
another brain damaged gcc extension
[r21297]
Sebastian Buchwald [Wed, 20 Aug 2008 16:24:55 +0000 (16:24 +0000)]
Added test case with an shift amount > 3.
[r21294]
Sebastian Buchwald [Wed, 20 Aug 2008 14:35:24 +0000 (14:35 +0000)]
Added assert for right am_scale value;
[r21291]
Christoph Mallon [Wed, 20 Aug 2008 12:51:10 +0000 (12:51 +0000)]
Do not deconv reference modes.
[r21281]
Sebastian Buchwald [Tue, 19 Aug 2008 18:56:16 +0000 (18:56 +0000)]
Added test case for Rotl node.
[r21270]
Michael Beck [Tue, 19 Aug 2008 13:40:09 +0000 (13:40 +0000)]
detect fully/partly redundant by inspection node index ...
[r21263]
Michael Beck [Tue, 19 Aug 2008 13:01:28 +0000 (13:01 +0000)]
- more doxygen comments
- first support for statistics
[r21261]
Michael Beck [Tue, 19 Aug 2008 13:00:14 +0000 (13:00 +0000)]
fixed name clash
[r21260]
Michael Beck [Tue, 19 Aug 2008 12:28:40 +0000 (12:28 +0000)]
add first statistic support for GVN-PRE and combo
[r21258]
Sebastian Buchwald [Tue, 19 Aug 2008 11:11:29 +0000 (11:11 +0000)]
Moved creation of ia32_LdTls into common transformer.
[r21255]
Michael Beck [Mon, 18 Aug 2008 19:14:36 +0000 (19:14 +0000)]
C99 features removed
[r21246]
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]
Sebastian Buchwald [Mon, 18 Aug 2008 08:11:20 +0000 (08:11 +0000)]
Use switch to decide which ia32 transformer is selected.
[r21234]
Christoph Mallon [Sun, 17 Aug 2008 13:38:25 +0000 (13:38 +0000)]
Use enums instead of magic numbers.
[r21232]
Christoph Mallon [Sun, 17 Aug 2008 13:31:17 +0000 (13:31 +0000)]
Resolve warning about unused label.
[r21231]
Michael Beck [Sat, 16 Aug 2008 10:10:58 +0000 (10:10 +0000)]
small improvement
[r21213]
Michael Beck [Fri, 15 Aug 2008 20:04:21 +0000 (20:04 +0000)]
- clear the descriptions if SSA construction is restarted
[r21207]
Sebastian Buchwald [Fri, 15 Aug 2008 18:33:49 +0000 (18:33 +0000)]
typo
[r21205]
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]
Michael Beck [Fri, 15 Aug 2008 15:54:48 +0000 (15:54 +0000)]
- handle endless loops now
- use resource locking functions
[r21199]
Christoph Mallon [Fri, 15 Aug 2008 09:35:31 +0000 (09:35 +0000)]
Typos.
[r21192]
Michael Beck [Fri, 15 Aug 2008 02:26:03 +0000 (02:26 +0000)]
combo does not add keep alive edges yet
[r21189]
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]
Michael Beck [Fri, 15 Aug 2008 01:32:08 +0000 (01:32 +0000)]
example for optimizing unknown
[r21187]
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]