Christoph Mallon [Tue, 27 Nov 2012 11:31:04 +0000 (12:31 +0100)]
bearch: Remove the special case for Projs from arch_get_irn_flags().
Nobody should ask Projs for arch_irn_flags_t.
Christoph Mallon [Tue, 27 Nov 2012 11:28:05 +0000 (12:28 +0100)]
beschednormal: Remove strange scheduled test from tree cost calculation.
The test simply makes no sense.
Christoph Mallon [Tue, 27 Nov 2012 10:43:54 +0000 (11:43 +0100)]
util: Remove duplicate definitions of the macros MAX and MIN.
Christoph Mallon [Tue, 27 Nov 2012 09:56:47 +0000 (10:56 +0100)]
array: Remove the attribute eltsize from struct ir_arr_descr.
It is hardly able to catch problems, because most arrays contain pointers.
Christoph Mallon [Tue, 27 Nov 2012 09:49:58 +0000 (10:49 +0100)]
array: Remove the write-only attribute u.obstack from struct ir_arr_descr.
Christoph Mallon [Tue, 27 Nov 2012 09:10:44 +0000 (10:10 +0100)]
irgwalk: Remove unnecessary skip_Id().
n is produced by Id-skipping functions, so cannot be an Id node.
Christoph Mallon [Tue, 27 Nov 2012 08:05:27 +0000 (09:05 +0100)]
bearch: Use arch_register_req_is(req, ignore) instead of arch_irn_is_ignore(...), if we use the register requirements multiple times.
Christoph Mallon [Tue, 27 Nov 2012 07:25:54 +0000 (08:25 +0100)]
bearch: Use arch_register_req_is().
Christoph Mallon [Tue, 27 Nov 2012 07:21:55 +0000 (08:21 +0100)]
bearch: Replace is_2addr_code(req) by arch_register_req_is(req, should_be_same).
Christoph Mallon [Tue, 27 Nov 2012 07:03:10 +0000 (08:03 +0100)]
irnode: Remove unnecessary skip_Proj() from get_Block_cfgpred_block_().
Projs are always in the same block as their predecessor.
Christoph Mallon [Mon, 26 Nov 2012 21:05:54 +0000 (22:05 +0100)]
iredges: Slightly simplify foreach_out_edge_kind_safe().
Christoph Mallon [Mon, 26 Nov 2012 20:11:28 +0000 (21:11 +0100)]
belive: Remove duplicate assert()s.
sched_get_time_step() checks the same.
Matthias Braun [Tue, 27 Nov 2012 10:11:50 +0000 (11:11 +0100)]
improve arch_dump_reqs_and_registers()
make it more robust and remove unnecessary req check
Christoph Mallon [Mon, 26 Nov 2012 21:22:00 +0000 (22:22 +0100)]
beinfo: assert() that be_get_info() is not called on Projs.
This also corrects dumping schedule edges.
Matthias Braun [Mon, 26 Nov 2012 20:27:14 +0000 (21:27 +0100)]
fix doxygen warning
Matthias Braun [Mon, 26 Nov 2012 20:07:51 +0000 (21:07 +0100)]
optimize iredges code
- split edges_notify_edge into add/del/modify and call the correct
function where we know which is needed
- get rid of some unnecessary flags so the ir_edge_t struct is smaller
Matthias Braun [Mon, 26 Nov 2012 18:21:15 +0000 (19:21 +0100)]
expose some critical bearch functions for inlining
Matthias Braun [Mon, 26 Nov 2012 18:01:40 +0000 (19:01 +0100)]
slightly optimize liveness code
- save ir_node* instead of irn_idx in the map (saves irn_idx_map
lookups)
- in liveness_transfer check register class on the inputs (which is
cheaper) and only then check the operand
Matthias Braun [Mon, 26 Nov 2012 17:13:13 +0000 (18:13 +0100)]
get rid of get_irg_estimated_node_count
We have simpler code without it, and a heuristic based on
get_irg_last_idx() seems to work as well.
Matthias Braun [Mon, 26 Nov 2012 16:56:30 +0000 (17:56 +0100)]
remove irprintf_t.h; only unused stuff in it
Matthias Braun [Mon, 26 Nov 2012 16:28:19 +0000 (17:28 +0100)]
fix doxygen warnings
Matthias Braun [Mon, 26 Nov 2012 16:10:53 +0000 (17:10 +0100)]
don't grow the hashset if it just clobbered with deleted entries
Matthias Braun [Mon, 26 Nov 2012 15:20:11 +0000 (16:20 +0100)]
fix irhooks move commit
Matthias Braun [Mon, 26 Nov 2012 14:40:25 +0000 (15:40 +0100)]
move internal defines/datatypes from .h in .c file
Matthias Braun [Mon, 26 Nov 2012 14:24:35 +0000 (15:24 +0100)]
remove a bunch of pointless asserts for non-NULL pointers
We get a clean SIGSEGV anyway, if they're not fulfilled
Christoph Mallon [Mon, 26 Nov 2012 14:23:07 +0000 (15:23 +0100)]
bestack: Remove the unused return value from stack_frame_compute_initial_offset().
Matthias Braun [Mon, 26 Nov 2012 14:15:43 +0000 (15:15 +0100)]
move all inline #defines to the begin of their headers
So all files in libFirm do this consistently
Matthias Braun [Mon, 26 Nov 2012 14:11:51 +0000 (15:11 +0100)]
make irhooks API private
Matthias Braun [Mon, 26 Nov 2012 14:06:43 +0000 (15:06 +0100)]
query firmstat options through lc_opt system
Matthias Braun [Mon, 26 Nov 2012 11:50:44 +0000 (12:50 +0100)]
get rid of #define in public headers
Christoph Mallon [Mon, 26 Nov 2012 09:46:00 +0000 (10:46 +0100)]
bestack: Simplify collect_stack_nodes_walker().
Christoph Mallon [Mon, 26 Nov 2012 09:45:34 +0000 (10:45 +0100)]
cleanup: Remove unnecessary #include from belive_t.h.
Christoph Mallon [Mon, 26 Nov 2012 09:34:42 +0000 (10:34 +0100)]
belive: Remove unused (and partially broken) macros.
Christoph Mallon [Mon, 26 Nov 2012 09:11:50 +0000 (10:11 +0100)]
belive: Remove the declaration of the non-existent function be_liveness_add_missing().
Christoph Mallon [Mon, 26 Nov 2012 06:19:19 +0000 (07:19 +0100)]
ia32: Do not call a global variable mcount.
Profiling uses a magic function named mcount.
When profiling libFirm, these two symbols with the same name lead to strange problems.
Christoph Mallon [Sun, 25 Nov 2012 22:05:24 +0000 (23:05 +0100)]
rbitset: Handle the edge case that the start position equals the end position in rbitset_next_max().
This fixes rbitset_foreach().
Christoph Mallon [Sun, 25 Nov 2012 21:12:26 +0000 (22:12 +0100)]
cleanup: Remove several uses of current_ir_graph.
Christoph Mallon [Sun, 25 Nov 2012 20:54:33 +0000 (21:54 +0100)]
documentation: Update (i.e. mostly delete) information regarding current_ir_graph.
Christoph Mallon [Sun, 25 Nov 2012 18:19:31 +0000 (19:19 +0100)]
cleanup: Use get_Block_n_cfgpreds()/get_Block_cfgpred() instead of get_irn_arity()/get_irn_n().
Christoph Mallon [Sun, 25 Nov 2012 17:45:56 +0000 (18:45 +0100)]
cleanup: Remove unnecessary #include "obst.h".
Christoph Mallon [Sun, 25 Nov 2012 17:30:35 +0000 (18:30 +0100)]
bechordal: Remove T_RA_PROLOG.
It only measures initializing a single struct.
Christoph Mallon [Sun, 25 Nov 2012 17:28:48 +0000 (18:28 +0100)]
bechordal: Put the chordal obstack into be_chordal_env_t instead of delegating it.
Christoph Mallon [Sun, 25 Nov 2012 17:21:26 +0000 (18:21 +0100)]
bechordal: Replace struct post_spill_env_t by its only attribute.
Christoph Mallon [Sun, 25 Nov 2012 17:19:20 +0000 (18:19 +0100)]
bechordal: Remove the attribute cls from struct post_spill_env_t.
Christoph Mallon [Sun, 25 Nov 2012 17:16:00 +0000 (18:16 +0100)]
bechordal: Remove the attribute pre_spill_cost from struct post_spill_env_t.
Christoph Mallon [Sun, 25 Nov 2012 17:09:24 +0000 (18:09 +0100)]
bechordal: Remove the attribute irg from struct post_spill_env_t.
Christoph Mallon [Sun, 25 Nov 2012 17:06:49 +0000 (18:06 +0100)]
bechordal: Remove the parameter iteration, which is always 0, from post_spill().
Christoph Mallon [Sun, 25 Nov 2012 16:44:53 +0000 (17:44 +0100)]
sparc: Remove wrong register assignment code from transformer.
Christoph Mallon [Sun, 25 Nov 2012 14:44:07 +0000 (15:44 +0100)]
beinsn: Do not store the register requirements in struct be_operand_t.
Christoph Mallon [Sun, 25 Nov 2012 16:14:41 +0000 (17:14 +0100)]
beinsn: Avoid copying bitsets by using a raw bitset for the admissible registers.
Christoph Mallon [Sun, 25 Nov 2012 16:05:24 +0000 (17:05 +0100)]
rbitset: Let rbitset_alloca() return the new raw bitset.
Christoph Mallon [Sun, 25 Nov 2012 14:13:20 +0000 (15:13 +0100)]
beinsn: Remove attribute irn from struct be_operand_t.
It is always the same as the irn of the corresponding insn.
Christoph Mallon [Sun, 25 Nov 2012 14:02:47 +0000 (15:02 +0100)]
beinsn: Do not store, whether an insn has constraints.
Simply return no insn, if it has no constraints.
Christoph Mallon [Sun, 25 Nov 2012 13:48:52 +0000 (14:48 +0100)]
bechordal: Remove remnants of the long gone split phase.
Christoph Mallon [Sun, 25 Nov 2012 13:35:57 +0000 (14:35 +0100)]
bechordal: Remove struct be_chordal_alloc_env_t.
Christoph Mallon [Sun, 25 Nov 2012 13:31:38 +0000 (14:31 +0100)]
bechordal: Simplify get_next_free_reg() by priming the set of available registers only with the allocatable registers.
Christoph Mallon [Sun, 25 Nov 2012 13:08:51 +0000 (14:08 +0100)]
bechordal: Remove the write-only bitset live.
Christoph Mallon [Sun, 25 Nov 2012 11:29:43 +0000 (12:29 +0100)]
bechordal: Cleanup.
Christoph Mallon [Sun, 25 Nov 2012 11:20:16 +0000 (12:20 +0100)]
beinsn: Remove the write-only attribute pos from be_operand_t.
Christoph Mallon [Sun, 25 Nov 2012 11:14:53 +0000 (12:14 +0100)]
beinsn: Do not store, whether insn operands are constrained.
The only user of this information (bechordal) can just check the register requirement type.
Christoph Mallon [Sun, 25 Nov 2012 09:21:00 +0000 (10:21 +0100)]
cleanup: Remove unnecessary #include "beirg.h".
Christoph Mallon [Sun, 25 Nov 2012 09:01:54 +0000 (10:01 +0100)]
cleanup: Remove unnecessary #include from be_t.h.
Christoph Mallon [Sun, 25 Nov 2012 08:38:39 +0000 (09:38 +0100)]
beirgmod: Do not set registers for the Perm results in insert_Perm_before() just to clear them afterwards.
Christoph Mallon [Sun, 25 Nov 2012 08:37:46 +0000 (09:37 +0100)]
beirgmod: Update documentation of insert_Perm_before().
This was missed when changing insert_Perm_after() to insert_Perm_before().
Christoph Mallon [Sun, 25 Nov 2012 08:20:55 +0000 (09:20 +0100)]
beinsn: Do not store, whether an insn is pre-coloured.
The only user of this information (bechordal) can just check, whether a register is assigned.
Christoph Mallon [Sat, 24 Nov 2012 22:47:15 +0000 (23:47 +0100)]
bearch: remove arch_register_type_joker.
arch_register_type_virtual is sufficient.
Christoph Mallon [Sun, 25 Nov 2012 07:11:53 +0000 (08:11 +0100)]
bearch: Check the register class first in arch_reg_is_allocatable().
They must match, even for joker registers.
Christoph Mallon [Sat, 24 Nov 2012 22:17:18 +0000 (23:17 +0100)]
bearch: Assert, instead of test, that the register requirement is not arch_register_req_type_none in arch_reg_is_allocatable().
If it is, something is very wrong.
Christoph Mallon [Sat, 24 Nov 2012 21:34:03 +0000 (22:34 +0100)]
cleanup: Reduce code duplication.
Christoph Mallon [Sat, 24 Nov 2012 21:18:46 +0000 (22:18 +0100)]
bearch: Remove arch_get_inverse() and associated code.
Christoph Mallon [Sat, 24 Nov 2012 21:05:01 +0000 (22:05 +0100)]
beinfo: Remove the unused function be_info_initialized().
Christoph Mallon [Sat, 24 Nov 2012 21:04:32 +0000 (22:04 +0100)]
beinfo: Remove declaration of the non-existent function be_info_duplicate().
Christoph Mallon [Sat, 24 Nov 2012 20:57:20 +0000 (21:57 +0100)]
cleanup: Remove unnecessary #include from becopyopt.h.
Christoph Mallon [Sat, 24 Nov 2012 20:51:22 +0000 (21:51 +0100)]
cleanup: Remove unnecessary #include from beifg.h.
Christoph Mallon [Sat, 24 Nov 2012 20:47:04 +0000 (21:47 +0100)]
cleanup: Remove unnecessary #include from belive.h.
Christoph Mallon [Sat, 24 Nov 2012 20:40:47 +0000 (21:40 +0100)]
cleanup: Remove unnecessary #include from beutil.h.
Christoph Mallon [Sat, 24 Nov 2012 20:40:32 +0000 (21:40 +0100)]
cleanup: Remove has_reg_class().
Christoph Mallon [Sat, 24 Nov 2012 20:29:44 +0000 (21:29 +0100)]
beinfo: Remove unnecessary test from sched_edge_hook().
Projs are not scheduled, so they will fail this test later on.
Christoph Mallon [Sat, 24 Nov 2012 20:29:23 +0000 (21:29 +0100)]
cleanup: Remove unnecessary #include from besched.[ch].
Christoph Mallon [Sat, 24 Nov 2012 20:28:19 +0000 (21:28 +0100)]
besched: Remove the unused/unnecessary functions sched_has_next() and sched_has_prev().
Christoph Mallon [Sat, 24 Nov 2012 20:05:48 +0000 (21:05 +0100)]
belive: Assert that only scheduled nodes are used in _value_dominates_intrablock() and _value_strictly_dominates_intrablock().
Christoph Mallon [Sat, 24 Nov 2012 20:01:40 +0000 (21:01 +0100)]
cleanup: Remove unnecessary #include from beintlive_t.h.
Christoph Mallon [Sat, 24 Nov 2012 19:58:00 +0000 (20:58 +0100)]
bearch: Remove special handling that a node has no backend info, when getting a register requirement of the node.
This should not occur anymore.
Christoph Mallon [Sat, 24 Nov 2012 19:57:19 +0000 (20:57 +0100)]
belive: Remove unused functions and macros.
Christoph Mallon [Sat, 24 Nov 2012 19:40:17 +0000 (20:40 +0100)]
cleanup: Remove unnecesary #include from bearch.h.
Christoph Mallon [Sat, 24 Nov 2012 19:37:18 +0000 (20:37 +0100)]
betranshlp: Simply crash with on null pointer instead of having an explicit panic.
Christoph Mallon [Sat, 24 Nov 2012 19:14:35 +0000 (20:14 +0100)]
bearch: Remove unnecessary indirection to access arch_no_register_req.
Christoph Mallon [Sat, 24 Nov 2012 19:11:16 +0000 (20:11 +0100)]
bearch: Remove obsolete special case for out info of switch nodes.
Christoph Mallon [Sat, 24 Nov 2012 18:54:40 +0000 (19:54 +0100)]
heur4: Remove unused macro constants.
Christoph Mallon [Sat, 24 Nov 2012 18:46:57 +0000 (19:46 +0100)]
heur4: Check all n_regs order[] entries, not just k.
This is relevant, when there is an allocateable register with a higher number than some non-allocateable register.
Christoph Mallon [Sat, 24 Nov 2012 18:43:00 +0000 (19:43 +0100)]
sparc: Correct dwarf number of register %i7.
Christoph Mallon [Sat, 24 Nov 2012 18:14:56 +0000 (19:14 +0100)]
ir: Shuffle node macros, so functions in the header declaring the macros use the inline versions of the node functions.
Christoph Mallon [Sat, 24 Nov 2012 17:37:38 +0000 (18:37 +0100)]
heur4: Avoid unnecessary bitset operations when the node is not limited.
Christoph Mallon [Sat, 24 Nov 2012 16:15:17 +0000 (17:15 +0100)]
bechordal: Remove the write-only bitset out_constr from pre_process_constraints().
Christoph Mallon [Sat, 24 Nov 2012 15:55:40 +0000 (16:55 +0100)]
bechordal: Remove the write-only attribute colors_n from struct be_chordal_alloc_env_t.
Christoph Mallon [Sat, 24 Nov 2012 15:53:20 +0000 (16:53 +0100)]
bechordal: Remove the write-only bitset in_colors from struct be_chordal_alloc_env_t.
Christoph Mallon [Sat, 24 Nov 2012 15:46:33 +0000 (16:46 +0100)]
bechordal: Remove unused macro.
Christoph Mallon [Sat, 24 Nov 2012 15:25:24 +0000 (16:25 +0100)]
becopyheur2: Use bitset_foreach_clear() instead of bitset_flip_all() + bitset_foreach().
Christoph Mallon [Sat, 24 Nov 2012 15:13:10 +0000 (16:13 +0100)]
bechordal: Simplify get_decisive_partner_regs().
Christoph Mallon [Sat, 24 Nov 2012 15:10:42 +0000 (16:10 +0100)]
bechordal: Remove impossible case from get_decisive_partner_regs().
o2 gets determined from o1, so o1 cannot be null.