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.
Christoph Mallon [Sat, 24 Nov 2012 15:09:47 +0000 (16:09 +0100)]
bechordal: Remove unnecessary bitset copies from get_decisive_partner_regs().
Christoph Mallon [Sat, 24 Nov 2012 14:55:54 +0000 (15:55 +0100)]
bechordal: Remove invalid cases from assertion.
The register classes must not be null here.
All allocatable register requirements must have a class.
Christoph Mallon [Sat, 24 Nov 2012 14:55:12 +0000 (15:55 +0100)]
beinsn: Remove a pointless if.
The register class cannot be null here, because only operands for the current class are collected before.
Christoph Mallon [Sat, 24 Nov 2012 14:26:01 +0000 (15:26 +0100)]
belive: Change be_liveness_nodes_live_at() to be_liveness_nodes_live_before().
The operation we want to perform is to get the live values just before a node.
Christoph Mallon [Sat, 24 Nov 2012 14:16:30 +0000 (15:16 +0100)]
be: Change insert_Perm_after() to insert_Perm_before().
The operation we want to perform is to insert a Perm before a node.
Christoph Mallon [Sat, 24 Nov 2012 13:15:39 +0000 (14:15 +0100)]
beinsn: Remove the attribute next_insn from struct be_insn_t.
Just use sched_next().
Christoph Mallon [Sat, 24 Nov 2012 13:04:30 +0000 (14:04 +0100)]
beinsn: Remove the attributes in_constraints and out_constraints from struct be_insn_t.
They are only used locally.
Write their combined value directly to has_constraints.
Christoph Mallon [Sat, 24 Nov 2012 13:00:57 +0000 (14:00 +0100)]
be: Remove the indirection via chordal_scan_insn() to be_scan_insn().
Christoph Mallon [Sat, 24 Nov 2012 12:38:08 +0000 (13:38 +0100)]
bechordal: Remove the unused attribute ilp_server[] from struct be_ra_chordal_opts_t.
Christoph Mallon [Sat, 24 Nov 2012 12:36:50 +0000 (13:36 +0100)]
bechordal: Remove the unused attribute ilp_solver[] from struct be_ra_chordal_opts_t.
Christoph Mallon [Sat, 24 Nov 2012 12:34:49 +0000 (13:34 +0100)]
bechordal: Make be_ra_chordal_color() static.
Christoph Mallon [Sat, 24 Nov 2012 12:32:09 +0000 (13:32 +0100)]
bechordal: Use foreach_border_head() instead of the raw list_for_each_entry()/list_for_each_entry_reverse().
The uses of list_for_each_entry() can use reverse, too.
They are only debug output.
Christoph Mallon [Sat, 24 Nov 2012 12:25:30 +0000 (13:25 +0100)]
bechordal: Remove the pointless wrapper macro get_block_border_head().
Christoph Mallon [Sat, 24 Nov 2012 12:24:20 +0000 (13:24 +0100)]
bechordal: Remove the unused macros border_next() and border_prev().
Christoph Mallon [Sat, 24 Nov 2012 12:23:20 +0000 (13:23 +0100)]
bechordal: Merge the macro chordal_has_class() and the function has_reg_class().
Christoph Mallon [Sat, 24 Nov 2012 11:51:27 +0000 (12:51 +0100)]
beabi: Remove unnecessary #include from beabi.h.
Christoph Mallon [Sat, 24 Nov 2012 11:45:04 +0000 (12:45 +0100)]
beabi: Remove the declaration of the non-existent function be_abi_call_get_method_type().
Christoph Mallon [Sat, 24 Nov 2012 11:39:21 +0000 (12:39 +0100)]
beabi: Remove pointless local variable.
Christoph Mallon [Sat, 24 Nov 2012 11:35:58 +0000 (12:35 +0100)]
beabi: Remove parameters from create_be_return(), which can be deduced from the parameter irn.
Christoph Mallon [Sat, 24 Nov 2012 11:31:39 +0000 (12:31 +0100)]
beabi: The parameter irn of create_be_return() never is null.
Christoph Mallon [Sat, 24 Nov 2012 11:12:54 +0000 (12:12 +0100)]
beabi: Remove the attribute cls_addr from struct be_abi_call_t.
It is only used locally.
Christoph Mallon [Sat, 24 Nov 2012 11:01:00 +0000 (12:01 +0100)]
beabi: Remove the unused function be_abi_call_set_call_address_reg_class().
Christoph Mallon [Sat, 24 Nov 2012 10:58:49 +0000 (11:58 +0100)]
beabi: Remove the unused attribute between_type from struct be_abi_call_t.
Christoph Mallon [Sat, 24 Nov 2012 10:55:13 +0000 (11:55 +0100)]
beabi: Remove the global variable be_omit_fp.
Simply directly use the be_options.
Christoph Mallon [Sat, 24 Nov 2012 10:53:02 +0000 (11:53 +0100)]
beabi: Remove redundant adjustment of try_omit_fp in process_ops_in_block().
It was initialised properly by be_abi_call_new().
Christoph Mallon [Sat, 24 Nov 2012 10:49:18 +0000 (11:49 +0100)]
beabi: Always be_abi_call_get_flags() before be_abi_call_set_flags().
The template and amd64 backends left the omit_fp flag undefined due to allocating an uninitialized be_abi_call_flags_t on the stack.
Christoph Mallon [Sat, 24 Nov 2012 10:45:49 +0000 (11:45 +0100)]
beabi: Turn be_abi_call_flags_t into a struct.
Remove the union aspect to interpret the flags as one unsigned int.
Christoph Mallon [Sat, 24 Nov 2012 10:20:27 +0000 (11:20 +0100)]
beabi: Remove the atttribute on_stack from struct be_abi_call_arg_t.
It is the complement of the atttribute in_reg.
Christoph Mallon [Sat, 24 Nov 2012 09:51:50 +0000 (10:51 +0100)]
beabi: Use the stack alignment, instead of hardcoding 4, to align the frame size.
Christoph Mallon [Sat, 24 Nov 2012 09:51:10 +0000 (10:51 +0100)]
beabi: Remove the attribute frame_tp from struct lower_frame_sels_env_t.
It is only used locally.
Christoph Mallon [Sat, 24 Nov 2012 09:44:20 +0000 (10:44 +0100)]
beabi: Remove the unused attribute static_link_pos from struct lower_frame_sels_env_t.
Christoph Mallon [Sat, 24 Nov 2012 09:43:38 +0000 (10:43 +0100)]
bearch: Remove the write-only attribute link_class from struct arch_env_t.
Christoph Mallon [Sat, 24 Nov 2012 09:42:28 +0000 (10:42 +0100)]
beabi: Remove the write-only attribute link_class from struct lower_frame_sels_env_t.