Christoph Mallon [Sat, 11 Oct 2008 16:13:47 +0000 (16:13 +0000)]
Remove the unused function arch_is_possible_memory_operand(). It is identical to arch_possible_memory_operand().
[r22685]
Christoph Mallon [Sat, 11 Oct 2008 16:11:27 +0000 (16:11 +0000)]
Remove the unused parameter const arch_env_t *env from arch_get_op_estimated_cost().
[r22684]
Christoph Mallon [Sat, 11 Oct 2008 16:08:22 +0000 (16:08 +0000)]
Remove the unused parameter const arch_env_t *env from arch_perform_memory_operand().
[r22683]
Christoph Mallon [Sat, 11 Oct 2008 16:03:25 +0000 (16:03 +0000)]
Remove the unused parameter const arch_env_t *env from arch_possible_memory_operand().
[r22682]
Christoph Mallon [Sat, 11 Oct 2008 15:28:57 +0000 (15:28 +0000)]
Remove the unused parameter const arch_env_t *env from arch_get_inverse().
[r22681]
Christoph Mallon [Sat, 11 Oct 2008 15:26:23 +0000 (15:26 +0000)]
Remove the unused parameter const arch_env_t *env from arch_get_sp_bias().
[r22680]
Christoph Mallon [Sat, 11 Oct 2008 15:23:22 +0000 (15:23 +0000)]
Remove the unused parameter const arch_env_t *env from arch_set_frame_entity().
[r22679]
Christoph Mallon [Sat, 11 Oct 2008 15:19:42 +0000 (15:19 +0000)]
Remove the unused parameter const arch_env_t *env from arch_get_frame_entity().
[r22678]
Christoph Mallon [Sat, 11 Oct 2008 15:15:42 +0000 (15:15 +0000)]
Remove the unused parameter const arch_env_t *env from arch_set_frame_offset().
[r22677]
Christoph Mallon [Sat, 11 Oct 2008 15:12:21 +0000 (15:12 +0000)]
Remove the unused parameter const arch_env_t *env from arch_get_register_req().
[r22676]
Matthias Braun [Sat, 11 Oct 2008 15:10:23 +0000 (15:10 +0000)]
fix bad XMALLOC call
[r22675]
Christoph Mallon [Sat, 11 Oct 2008 14:56:42 +0000 (14:56 +0000)]
Remove the unused function arch_get_irn_ops().
[r22674]
Christoph Mallon [Sat, 11 Oct 2008 14:54:13 +0000 (14:54 +0000)]
Remove the unused parameter const arch_env_t *env from get_irn_ops().
[r22673]
Christoph Mallon [Sat, 11 Oct 2008 14:52:32 +0000 (14:52 +0000)]
Remove the unused function arch_count_non_ignore_regs().
[r22672]
Christoph Mallon [Sat, 11 Oct 2008 14:50:23 +0000 (14:50 +0000)]
Remove the unused parameter const arch_env_t *env from arch_put_non_ignore_regs().
[r22671]
Christoph Mallon [Sat, 11 Oct 2008 14:42:18 +0000 (14:42 +0000)]
Use turn_back_am() to implement fix_am_source().
[r22670]
Christoph Mallon [Sat, 11 Oct 2008 10:37:25 +0000 (10:37 +0000)]
It does not make any sense to remove AM, which loads a non-GP value to fix register conflicts with base and index. This situation plain does not exist. Base and index are always GP.
[r22669]
Christoph Mallon [Sat, 11 Oct 2008 10:10:58 +0000 (10:10 +0000)]
Cleanup.
[r22666]
Christoph Mallon [Sat, 11 Oct 2008 10:07:33 +0000 (10:07 +0000)]
Cleanup.
[r22665]
Christoph Mallon [Sat, 11 Oct 2008 08:42:11 +0000 (08:42 +0000)]
vfsub and vfdiv are now commutative, because there are reversed forms of these instructions. This enables more AM folding.
[r22664]
Christoph Mallon [Sat, 11 Oct 2008 06:26:42 +0000 (06:26 +0000)]
Make fehler159 compilable.
[r22663]
Christoph Mallon [Fri, 10 Oct 2008 17:01:50 +0000 (17:01 +0000)]
Do not split string literals.
[r22658]
Christoph Mallon [Fri, 10 Oct 2008 16:45:54 +0000 (16:45 +0000)]
Add missing returns.
[r22657]
Christoph Mallon [Fri, 10 Oct 2008 16:13:42 +0000 (16:13 +0000)]
Emit * in all necessary places for EMIT_ALTERNATE_AM.
[r22656]
Christoph Mallon [Fri, 10 Oct 2008 16:09:46 +0000 (16:09 +0000)]
HACK: Prevent folding reload AM when the node already has a "real" memory input. This should fix 176.gcc
[r22655]
Christoph Mallon [Fri, 10 Oct 2008 15:11:19 +0000 (15:11 +0000)]
Assert that ia32_perform_memory_operand() only tries to fold a reload into a node, which has NoMem as memory input.
[r22654]
Michael Beck [Fri, 10 Oct 2008 12:49:00 +0000 (12:49 +0000)]
typo
[r22647]
Michael Beck [Fri, 10 Oct 2008 12:42:09 +0000 (12:42 +0000)]
- detect non-strict functions
[r22645]
Matthias Braun [Fri, 10 Oct 2008 12:18:57 +0000 (12:18 +0000)]
cleaned up my scripts a bit and added them to svn (as examples)
[r22643]
Michael Beck [Thu, 9 Oct 2008 15:08:22 +0000 (15:08 +0000)]
BugFix: works again for RAW with non twos-complement
[r22629]
Christoph Mallon [Thu, 9 Oct 2008 07:39:21 +0000 (07:39 +0000)]
Add be_dep_on_frame() to let a node depend on the frame, so it does not get scheduled before it can be spilled.
[r22625]
Christoph Mallon [Thu, 9 Oct 2008 07:01:04 +0000 (07:01 +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.
[r22623]
Christoph Mallon [Thu, 9 Oct 2008 06:15:29 +0000 (06:15 +0000)]
Do not pass the cg to transform_nodes().
[r22622]
Christoph Mallon [Thu, 9 Oct 2008 05:54:43 +0000 (05:54 +0000)]
Remove pointless local variable.
[r22621]
Christoph Mallon [Wed, 8 Oct 2008 16:14:25 +0000 (16:14 +0000)]
Remove be_get_old_anchor(), it is not necessary.
[r22618]
Christoph Mallon [Wed, 8 Oct 2008 14:55:25 +0000 (14:55 +0000)]
Remove the attribute int visited from struct be_transform_env_t. It is write-only.
[r22615]
Christoph Mallon [Wed, 8 Oct 2008 14:47:19 +0000 (14:47 +0000)]
Mark the old node as visited in be_set_transformed_node().
[r22614]
Christoph Mallon [Wed, 8 Oct 2008 14:46:11 +0000 (14:46 +0000)]
Do not mark the node as visited before transforming it. This is not necessary anymore since Phis put their predecessors in a worklist, so we cannot walk in a circle.
[r22613]
Christoph Mallon [Wed, 8 Oct 2008 14:40:49 +0000 (14:40 +0000)]
Do not mark the transformed as visited. It makes no sense at all.
[r22612]
Christoph Mallon [Wed, 8 Oct 2008 14:13:52 +0000 (14:13 +0000)]
Remove redundant be_set_transformed_node() in transformer functions. They are vestiges of old transform semantics. Their caller (transform helper) handles this.
[r22610]
Christoph Mallon [Wed, 8 Oct 2008 14:06:58 +0000 (14:06 +0000)]
Introduce ia32_Call, which can handle address mode.
[r22609]
Christoph Mallon [Wed, 8 Oct 2008 14:00:38 +0000 (14:00 +0000)]
No need to ignore Projs in the emitter, because there are none in the schedule.
[r22608]
Christoph Mallon [Wed, 8 Oct 2008 13:55:17 +0000 (13:55 +0000)]
Sort.
[r22606]
Michael Beck [Wed, 8 Oct 2008 11:42:56 +0000 (11:42 +0000)]
- BugFix: fix the rare case where two nodes a congruent, but have different modes
This happens for instance with AddP(x, NULL) and x.
Add a Conv than.
[r22603]
Christoph Mallon [Wed, 8 Oct 2008 10:29:13 +0000 (10:29 +0000)]
Add ia32_emitf() to concisely output ia32 instructions.
[r22602]
Christoph Mallon [Wed, 8 Oct 2008 10:12:44 +0000 (10:12 +0000)]
Make ia32_assign_exc_label() static and remove redundant test.
[r22601]
Christoph Mallon [Wed, 8 Oct 2008 09:32:42 +0000 (09:32 +0000)]
Slightly simplify jump table emitter.
[r22600]
Christoph Mallon [Wed, 8 Oct 2008 09:01:46 +0000 (09:01 +0000)]
Do not emit cld in the CopyB prologue. The ABI mandates that DF is cleared, so do not bother performing this NOP.
[r22599]
Christoph Mallon [Wed, 8 Oct 2008 08:54:21 +0000 (08:54 +0000)]
Simplify emit_CopyB_prolog() and remove an unnecessary bit filter before calling it.
[r22598]
Christoph Mallon [Wed, 8 Oct 2008 08:13:35 +0000 (08:13 +0000)]
Make it a bit more clear, what's going on in ia32_emit_x87_binop().
[r22597]
Michael Beck [Wed, 8 Oct 2008 00:23:30 +0000 (00:23 +0000)]
- fixed some comment typos
[r22596]
Michael Beck [Wed, 8 Oct 2008 00:06:47 +0000 (00:06 +0000)]
- Add support for commutative congruences: Add(a,b) and Add(b,a) are
congruent now
- add some explaining comment for the "wrong opcode after
split_by(lambda_opcode) problem
- new checker added
- improved debug output
[r22595]
Matthias Braun [Tue, 7 Oct 2008 19:38:27 +0000 (19:38 +0000)]
and again
[r22594]
Matthias Braun [Tue, 7 Oct 2008 18:51:00 +0000 (18:51 +0000)]
again
[r22593]
Matthias Braun [Tue, 7 Oct 2008 17:32:21 +0000 (17:32 +0000)]
revert change for now breaks 255.vortex and 253.perlbmk
[r22586]
Matthias Braun [Tue, 7 Oct 2008 17:30:17 +0000 (17:30 +0000)]
another test
[r22585]
Matthias Braun [Tue, 7 Oct 2008 16:56:21 +0000 (16:56 +0000)]
another fix for the delayed phi problem, mark memperms as spill+reload
[r22584]
Michael Beck [Tue, 7 Oct 2008 16:38:56 +0000 (16:38 +0000)]
- cond-eval is ok, gvn-pre has a problem with the do loop
[r22583]
Michael Beck [Tue, 7 Oct 2008 16:29:07 +0000 (16:29 +0000)]
- some strange combination of cond-eval and gvn-pre
[r22582]
Michael Beck [Tue, 7 Oct 2008 15:52:45 +0000 (15:52 +0000)]
- do not clean up keep-alives here
- ensure that really all blocks are initialized
[r22581]
Michael Beck [Tue, 7 Oct 2008 14:54:04 +0000 (14:54 +0000)]
- fixed strange code: when did it break?
[r22579]
Michael Beck [Tue, 7 Oct 2008 14:50:58 +0000 (14:50 +0000)]
- kill Bad nodes from the keep-alive list
[r22578]
Michael Beck [Tue, 7 Oct 2008 13:27:03 +0000 (13:27 +0000)]
- used new irg_walk_blkwise_dom_top_down() to calculate the value of each node
as needed in first phase of BuildSets
[r22574]
Michael Beck [Tue, 7 Oct 2008 13:23:57 +0000 (13:23 +0000)]
- we need irg_walk_blkwise_dom_top_down() instead of
irg_walk_blkwise_dom_graph()
[r22573]
Michael Beck [Tue, 7 Oct 2008 13:04:35 +0000 (13:04 +0000)]
- kill Bad nodes from the keep-alive list: these arise from the new
keep-semantics (all memory must be kept in loops)
[r22572]
Michael Beck [Tue, 7 Oct 2008 12:34:36 +0000 (12:34 +0000)]
- re-enabled global-non-null test, but place Confirms only before Cmp nodes
[r22571]
Christoph Mallon [Tue, 7 Oct 2008 09:39:20 +0000 (09:39 +0000)]
Add irn_visited_else_mark(), which combines irn_visited() and mark_irn_visited().
[r22563]
Christoph Mallon [Tue, 7 Oct 2008 09:32:28 +0000 (09:32 +0000)]
fild and fist can handle 16bit source/destination.
[r22562]
Christoph Mallon [Tue, 7 Oct 2008 09:31:24 +0000 (09:31 +0000)]
Use separate code to emit suffixes for integer and floating point instructions, because GAS wants different suffixes for 16bit /integer/ operands ("w" vs. "s") for them.
[r22561]
Matthias Braun [Mon, 6 Oct 2008 20:44:07 +0000 (20:44 +0000)]
fix last fix (+ optimisation: don't do anything if copy and orig are the same)
[r22552]
Michael Beck [Mon, 6 Oct 2008 20:24:08 +0000 (20:24 +0000)]
- reenabled modeb handling after condeval fix
[r22551]
Matthias Braun [Mon, 6 Oct 2008 19:02:12 +0000 (19:02 +0000)]
fix condeval ssa recondstruction
[r22550]
Andreas Zwinkau [Mon, 6 Oct 2008 17:29:52 +0000 (17:29 +0000)]
Adding a smaller variant of fehler044
[r22546]
Michael Beck [Mon, 6 Oct 2008 15:14:39 +0000 (15:14 +0000)]
- implemented irg_walk_blkwise_dom_graph()
[r22541]
Matthias Braun [Mon, 6 Oct 2008 14:43:12 +0000 (14:43 +0000)]
disable femms usage for now
[r22539]
Michael Beck [Mon, 6 Oct 2008 14:40:05 +0000 (14:40 +0000)]
- indentation fixed
[r22538]
Matthias Braun [Mon, 6 Oct 2008 13:47:35 +0000 (13:47 +0000)]
fix typo
[r22535]
Michael Beck [Mon, 6 Oct 2008 13:33:29 +0000 (13:33 +0000)]
- BugFix: fixed sc_print() for modes with bitsize non dividable by 4
[r22534]
Matthias Braun [Mon, 6 Oct 2008 13:22:08 +0000 (13:22 +0000)]
try to never put phis into pending
[r22532]
Matthias Braun [Mon, 6 Oct 2008 13:21:53 +0000 (13:21 +0000)]
more debug info
[r22531]
Christoph Mallon [Mon, 6 Oct 2008 09:36:34 +0000 (09:36 +0000)]
Typo in comment.
[r22522]
Christoph Mallon [Mon, 6 Oct 2008 09:33:18 +0000 (09:33 +0000)]
s/irn_not_visited(x)/!irn_visited(x)/.
[r22521]
Christoph Mallon [Mon, 6 Oct 2008 08:32:09 +0000 (08:32 +0000)]
Remove redundant test.
[r22518]
Michael Beck [Mon, 6 Oct 2008 00:17:27 +0000 (00:17 +0000)]
- Condeval places a Phi in a wrong block, see the AddP
generated for line 12
[r22508]
Christoph Mallon [Sun, 5 Oct 2008 17:34:39 +0000 (17:34 +0000)]
Clean up need_constraint_copy().
[r22503]
Michael Beck [Sun, 5 Oct 2008 15:07:10 +0000 (15:07 +0000)]
- add missing include
[r22499]
Christoph Mallon [Sun, 5 Oct 2008 13:32:31 +0000 (13:32 +0000)]
Good day and welcome to the FIRM XMALLOC*() macros. These macros are provided for the type safety and convenience of the IPD research facility personnel. The time is 15:32. Check xmalloc.h for details.
[r22494]
Christoph Mallon [Sun, 5 Oct 2008 12:19:18 +0000 (12:19 +0000)]
Plug memory leak.
[r22493]
Christoph Mallon [Sun, 5 Oct 2008 11:41:37 +0000 (11:41 +0000)]
Do not bother zeroing an object just before freeing it.
[r22492]
Christoph Mallon [Sun, 5 Oct 2008 06:56:52 +0000 (06:56 +0000)]
Panic, when encountering a to be lowered ASM node. This at least prevents the endless loop in fehler132.
[r22490]
Michael Beck [Sun, 5 Oct 2008 00:45:03 +0000 (00:45 +0000)]
- improved is_non_null_Confirm()
- disabled buggy parts for now
[r22487]
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]
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]
Michael Beck [Sat, 4 Oct 2008 21:38:35 +0000 (21:38 +0000)]
- fixed r22480: Proj numbers are now different
[r22483]
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]
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]
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]
Christoph Mallon [Sat, 4 Oct 2008 15:35:14 +0000 (15:35 +0000)]
Use turn_back_am() to implement peephole_ia32_Imul_split().
[r22471]
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]
Christoph Mallon [Sat, 4 Oct 2008 13:15:35 +0000 (13:15 +0000)]
Fix fehler157: Lowering Shrs was missing a Conv.
[r22469]