Christoph Mallon [Sat, 3 Nov 2012 08:58:58 +0000 (09:58 +0100)]
Pass the value to be pushed to x87_create_fpush().
Before it was calculated from op_idx.
Christoph Mallon [Sat, 3 Nov 2012 08:49:47 +0000 (09:49 +0100)]
Cleanup and use C99.
Christoph Mallon [Sun, 4 Nov 2012 13:56:04 +0000 (14:56 +0100)]
Panic when get_call_result_proj() does not find the Proj.
Christoph Mallon [Sat, 3 Nov 2012 04:16:58 +0000 (05:16 +0100)]
Inline x87_alloc_state() into its only user.
Christoph Mallon [Fri, 2 Nov 2012 18:18:09 +0000 (19:18 +0100)]
Remove unnecessary indirection for the empty x87 state.
Christoph Mallon [Fri, 2 Nov 2012 17:51:28 +0000 (18:51 +0100)]
Remove tos from x87_state.
It is the same as N_ia32_st_REGS - depth.
Christoph Mallon [Fri, 2 Nov 2012 14:18:39 +0000 (15:18 +0100)]
Simplify x87_dump_stack().
Christoph Mallon [Fri, 2 Nov 2012 10:31:43 +0000 (11:31 +0100)]
Add the function x87_get_entry() to retrieve elements of the x87 stack.
Christoph Mallon [Thu, 1 Nov 2012 15:41:35 +0000 (16:41 +0100)]
Only copy the x87 state once per block.
Copy it before x87_kill_deads() instead of after it, so x87_kill_deads() does not need to conditionally copy it.
Christoph Mallon [Thu, 1 Nov 2012 15:34:54 +0000 (16:34 +0100)]
Simplify x87 sim_Return().
Just flush the fp stack, only check for the correct number of fp values in debug builds.
Christoph Mallon [Thu, 1 Nov 2012 15:31:44 +0000 (16:31 +0100)]
Remove stale and unused cruft from x87 simulator.
Christoph Mallon [Mon, 5 Nov 2012 17:04:56 +0000 (18:04 +0100)]
Panic when the x87 simulator encounters and asm node with x87 constraints.
Christoph Mallon [Sun, 4 Nov 2012 19:23:02 +0000 (20:23 +0100)]
Remove stale comments.
Christoph Mallon [Sun, 4 Nov 2012 15:47:25 +0000 (16:47 +0100)]
Remove the unused function be_set_Copy_op().
Christoph Mallon [Sun, 4 Nov 2012 16:01:17 +0000 (17:01 +0100)]
Use be_get_Copy_op().
Christoph Mallon [Sun, 4 Nov 2012 16:22:53 +0000 (17:22 +0100)]
Correct name: OP(OP(x)) = x is involution, not idempotence.
Christoph Mallon [Sat, 3 Nov 2012 07:46:23 +0000 (08:46 +0100)]
Add newline to avoid warning.
Christoph Mallon [Wed, 31 Oct 2012 13:29:33 +0000 (14:29 +0100)]
Simplify test when to stop in push_through_perm().
Christoph Mallon [Wed, 31 Oct 2012 10:24:37 +0000 (11:24 +0100)]
Fix a performance bug in push_through_perm().
Now more than one node can be pushed through a Perm.
After pushing the first node through a Perm, we next inspected the Perm itself (the new schedule predecessor of the moved node), which obviously cannot be pushed through itself.
Christoph Mallon [Tue, 30 Oct 2012 07:10:40 +0000 (08:10 +0100)]
Fix iterating all irgs in gc_irgs().
Do not leave out the last (highest numbered) irg.
Sebastian Buchwald [Mon, 29 Oct 2012 16:54:33 +0000 (17:54 +0100)]
Fixed warning: Made global variable static.
Matthias Braun [Mon, 29 Oct 2012 15:53:41 +0000 (16:53 +0100)]
fix bad input register requirements
some inputs had "no requirement" set instead of the correct one
Matthias Braun [Fri, 28 Sep 2012 08:42:24 +0000 (10:42 +0200)]
beverify: cleanup, use bool for ok/bad return value
Matthias Braun [Fri, 28 Sep 2012 08:36:04 +0000 (10:36 +0200)]
beverify: remove dominance check
irverify already checks the dominance property
Matthias Braun [Mon, 1 Oct 2012 16:38:52 +0000 (18:38 +0200)]
fix output constraints of ia32_IJmp
Matthias Braun [Sun, 30 Sep 2012 15:23:56 +0000 (17:23 +0200)]
fix some missing register constraints
Matthias Braun [Thu, 27 Sep 2012 17:11:49 +0000 (19:11 +0200)]
Set an input requirement for be_Spill, be_Reload frame input
(It was set to NULL in the past to support the STA-architecture, but
that backend is not maintained anymore)
Matthias Braun [Thu, 27 Sep 2012 17:10:46 +0000 (19:10 +0200)]
share common phi code, fix missing phi input reqs
Matthias Braun [Mon, 3 Sep 2012 14:50:34 +0000 (16:50 +0200)]
remove unnecessary options from beprefalloc
They were used to selectively disable parts of the algorithm for
measurements in the paper. We now know that we always want them switched
on so remove the switches to simplify the code.
Matthias Braun [Mon, 3 Sep 2012 14:10:46 +0000 (16:10 +0200)]
change arch_XXX_out functions to use unsigned for pos
Matthias Braun [Mon, 29 Oct 2012 12:52:04 +0000 (13:52 +0100)]
fix some memory leaks in beprefalloc
Matthias Braun [Mon, 29 Oct 2012 12:51:57 +0000 (13:51 +0100)]
deallocate all datastructures when freeing a graph
Matthias Braun [Mon, 29 Oct 2012 12:48:22 +0000 (13:48 +0100)]
make remove_irp_irg API private
Because otherwise we confuse users with free_ir_graph vs.
remove_irp_irg. Change it so that free_ir_graph also removes the graph
from the irp list.
Matthias Braun [Mon, 1 Oct 2012 14:58:49 +0000 (16:58 +0200)]
remove obsolete comment
Christoph Mallon [Sat, 27 Oct 2012 08:21:56 +0000 (10:21 +0200)]
Fix warnings.
Make function definitions prototype declarations.
Christian Helmer [Fri, 26 Oct 2012 11:07:13 +0000 (13:07 +0200)]
removed old divmod handling
Christian Helmer [Thu, 4 Oct 2012 13:28:11 +0000 (15:28 +0200)]
removed unimplemented extension
Christian Helmer [Fri, 28 Sep 2012 14:38:12 +0000 (16:38 +0200)]
fixed processing of mode_T nodes
Christian Helmer [Wed, 26 Sep 2012 20:32:24 +0000 (22:32 +0200)]
Stores also handled, optimize_node option implemented
Christian Helmer [Fri, 14 Sep 2012 16:21:29 +0000 (18:21 +0200)]
divmod handling broken and preliminary removed
Christian Helmer [Fri, 14 Sep 2012 14:00:40 +0000 (16:00 +0200)]
removed unnecessary declarations
Christian Helmer [Fri, 14 Sep 2012 12:31:50 +0000 (14:31 +0200)]
clean up and comments
Christian Helmer [Fri, 24 Aug 2012 14:51:34 +0000 (16:51 +0200)]
cleanup, constants fixed
Christian Helmer [Thu, 23 Aug 2012 18:43:03 +0000 (20:43 +0200)]
fixed loads
Christian Helmer [Fri, 17 Aug 2012 15:38:19 +0000 (17:38 +0200)]
used the same anti-leader to leader transfer in greedy check
Christian Helmer [Wed, 15 Aug 2012 16:24:39 +0000 (18:24 +0200)]
probably fixed loads, changed greedy condition
Christian Helmer [Fri, 10 Aug 2012 14:27:12 +0000 (16:27 +0200)]
Fixed high hoisting, additional comments, correct debug levels
Christian Helmer [Fri, 10 Aug 2012 09:31:04 +0000 (11:31 +0200)]
hoist high generates new node
Christian Helmer [Mon, 6 Aug 2012 16:32:24 +0000 (18:32 +0200)]
maybe fixed error where nontranslated expression needed to be translated during insert
Christian Helmer [Tue, 31 Jul 2012 15:33:38 +0000 (17:33 +0200)]
GVN fixes
Christian Helmer [Fri, 27 Jul 2012 13:17:44 +0000 (15:17 +0200)]
fixed leader problem
Christian Helmer [Wed, 25 Jul 2012 15:43:58 +0000 (17:43 +0200)]
reverted antic_in
Christian Helmer [Fri, 20 Jul 2012 16:26:25 +0000 (18:26 +0200)]
better available constant handling
Christian Helmer [Thu, 19 Jul 2012 17:00:31 +0000 (19:00 +0200)]
Different management of antic sets.
Christian Helmer [Thu, 19 Jul 2012 16:56:38 +0000 (18:56 +0200)]
Added link field for arbitrary data to ir_valueset elements.
Christian Helmer [Wed, 18 Jul 2012 15:17:32 +0000 (17:17 +0200)]
implemented true GVN
Christian Helmer [Fri, 25 May 2012 14:01:49 +0000 (16:01 +0200)]
fixed bug where projections ended up in the wrong blocks
Matthias Braun [Thu, 25 Oct 2012 18:49:56 +0000 (20:49 +0200)]
switch_lowerer: cast to backend specified Switch mode
This should fix all cases of 64bit switches
Matthias Braun [Thu, 25 Oct 2012 18:16:28 +0000 (20:16 +0200)]
remove no-out_of_bounds option from lower_switch
noone was using it anyway
Matthias Braun [Thu, 25 Oct 2012 17:09:40 +0000 (19:09 +0200)]
change lower_switch to work on tarvals instead of int
Matthias Braun [Wed, 24 Oct 2012 16:43:03 +0000 (18:43 +0200)]
Switch nodes may have dw inputs, without outputs
switch with double-word input leads to panic, but still better than
obscure verifier errors.
Matthias Braun [Wed, 24 Oct 2012 16:21:24 +0000 (18:21 +0200)]
avoid -pedantic warning
Matthias Braun [Sun, 14 Oct 2012 20:06:30 +0000 (22:06 +0200)]
make statev API public
Matthias Braun [Mon, 1 Oct 2012 14:51:40 +0000 (16:51 +0200)]
remove irg_phase_state, use IR_GRAPH_CONSTRAINT instead
Matthias Braun [Mon, 1 Oct 2012 14:25:39 +0000 (16:25 +0200)]
irverify: remove load/store from entity verification
It was only a valid check in strongly typed unoptimized languages, not
much value in a firm-graph.
Matthias Braun [Sun, 14 Oct 2012 20:07:02 +0000 (22:07 +0200)]
localopt stuff for const-code irg
Matthias Braun [Sun, 14 Oct 2012 20:06:03 +0000 (22:06 +0200)]
rework timer API
Matthias Braun [Sun, 14 Oct 2012 14:55:12 +0000 (16:55 +0200)]
move get_irn_edge_kind to internal API
Matthias Braun [Tue, 25 Sep 2012 13:17:03 +0000 (15:17 +0200)]
reorgranize method properties
- do not record properties on irgs anymore, always do it on the irgs
entity; entity properties have to be a superset of the entities method
type properties.
- Remove special irg_inline_property and use mtp_additional_properties
instead
Matthias Braun [Tue, 25 Sep 2012 10:57:26 +0000 (12:57 +0200)]
always dump additional method props
Matthias Braun [Tue, 25 Sep 2012 10:09:41 +0000 (12:09 +0200)]
opt_funccall: cleanup, use C99
Also removes some debugging output to simplify the code
Matthias Braun [Tue, 25 Sep 2012 08:56:10 +0000 (10:56 +0200)]
opt_funccall: remove outdated/unused OO optimisations
Matthias Braun [Tue, 25 Sep 2012 08:54:44 +0000 (10:54 +0200)]
ia32: cleanup handling of 8/16bit operations
This also fixes backend/sign_bit.c
Matthias Braun [Fri, 21 Sep 2012 11:54:25 +0000 (13:54 +0200)]
fix a bunch of warnings reported by clang analyzer
Matthias Braun [Sun, 14 Oct 2012 20:22:22 +0000 (22:22 +0200)]
add some missing cases for copy_const_value
Matthias Braun [Fri, 21 Sep 2012 11:38:25 +0000 (13:38 +0200)]
fix comdat emitting on macho
Christoph Mallon [Wed, 24 Oct 2012 05:23:06 +0000 (07:23 +0200)]
Remove unused map_Abs().
Christoph Mallon [Wed, 24 Oct 2012 05:15:27 +0000 (07:15 +0200)]
Remove duplicate macro.
Julian Oppermann [Tue, 23 Oct 2012 13:27:17 +0000 (15:27 +0200)]
Don't set copy_attr_func to NULL for nodes without attributes.
Christoph Mallon [Mon, 22 Oct 2012 19:14:42 +0000 (21:14 +0200)]
Properly specify alternate AM in the ia32_IJmp emit clause.
When hard-coding the *, invalid assembler gets emitted if an immediate ends up as ia32_IJmp operand.
Sebastian Buchwald [Fri, 19 Oct 2012 12:30:13 +0000 (14:30 +0200)]
Perform switch lowering before double-word lowering.
This fixes gcc/pr37285.c.
Christoph Mallon [Thu, 18 Oct 2012 07:10:47 +0000 (09:10 +0200)]
Update documentation.
Andreas Seltenreich [Mon, 15 Oct 2012 09:43:58 +0000 (11:43 +0200)]
Fix doc typo.
Manuel Mohr [Fri, 14 Sep 2012 15:05:34 +0000 (17:05 +0200)]
Extended public backend API.
Added some additional functions that allow direct access to some fields
of the backend params struct. These functions avoid struct type,
thereby making interfacing with the jFirm library easier.
Manuel Mohr [Fri, 14 Sep 2012 11:25:09 +0000 (13:25 +0200)]
Fixed some typos.
Manuel Mohr [Fri, 14 Sep 2012 11:15:26 +0000 (13:15 +0200)]
Fixed lowering of calls with compound returns.
Reusing the same dummy struct as a hidden parameter for multiple
calls is not always correct (see opt/structcall2.c for an example).
For now, just use multiple dummy structs.
Sebastian Hack [Thu, 13 Sep 2012 11:56:41 +0000 (13:56 +0200)]
changed the dump format to match the cplex lp format
Matthias Braun [Thu, 13 Sep 2012 10:02:52 +0000 (12:02 +0200)]
sparc: use 128bit long double even for softfloat
We can't handle 128bit long double in softfloat yet, but most libraries
are compiled like this. It's better to have the compiler fail than to
produce code with a mismatching ABI in the default setting.
Matthias Braun [Mon, 3 Sep 2012 08:12:22 +0000 (10:12 +0200)]
beverify: simplify by using C99
Conflicts:
ir/be/beverify.c
Sebastian Buchwald [Wed, 12 Sep 2012 11:52:09 +0000 (13:52 +0200)]
Fixed typo.
Sebastian Buchwald [Tue, 11 Sep 2012 17:00:40 +0000 (19:00 +0200)]
Revert "Prevent SSA construction from running into endless loops."
This reverts commit
2a018b8111bd0596816c1d00c38a0024857753f7.
Unreachable loops always have a loop entry edge and thus a Phi node.
Christoph Mallon [Tue, 11 Sep 2012 08:48:19 +0000 (10:48 +0200)]
Dump immature blocks in ird_color_error (red) again.
Both mature and immature blocks were dumped in ird_color_block_background.
Christoph Mallon [Tue, 11 Sep 2012 08:45:42 +0000 (10:45 +0200)]
Remove redundant get_Block_matured() check before calling mature_immBlock().
Christoph Mallon [Mon, 10 Sep 2012 18:05:11 +0000 (20:05 +0200)]
Remove the unused facility to register space /in front of/ a node.
Matthias Braun [Fri, 31 Aug 2012 12:50:02 +0000 (14:50 +0200)]
further corrections for the keepalive hack
Matthias Braun [Fri, 31 Aug 2012 11:33:07 +0000 (13:33 +0200)]
sparc: be more conservative when moving memops around
Christoph Mallon [Fri, 31 Aug 2012 10:41:07 +0000 (12:41 +0200)]
Simplify rounding next_block_nr.
Christoph Mallon [Fri, 31 Aug 2012 08:28:56 +0000 (10:28 +0200)]
Skip the check whether ifconv is allowed, if both phi operands are identical.
In particular this allows ifconv when a PhiM is present, but nothing happens with the memory on the two paths.
Matthias Braun [Thu, 30 Aug 2012 11:46:45 +0000 (13:46 +0200)]
workaround for placement of nodes held only by keepalive edge
This is a workaround for keepalive edges which are probably broken
(adding the stuff to the End node is wrong, it should get added to the
endless loop somehow)
Matthias Braun [Wed, 29 Aug 2012 16:41:58 +0000 (18:41 +0200)]
set load/store to floating if ptr is never NULL