haifa-sched.c (extend_global): Split to extend_global_data and extend_region_data.
* haifa-sched.c (extend_global): Split to extend_global_data and extend_region_data. Update all uses. (extend_all): Rename to extend_block_data. * gcc.target/ia64/20080802-1.c: New test. From-SVN: r138758
This commit is contained in:
parent
07da1cfcf6
commit
a0d33ff828
4 changed files with 57 additions and 21 deletions
|
@ -1,3 +1,9 @@
|
|||
2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
|
||||
|
||||
* haifa-sched.c (extend_global): Split to extend_global_data and
|
||||
extend_region_data. Update all uses.
|
||||
(extend_all): Rename to extend_block_data.
|
||||
|
||||
2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
|
||||
|
||||
* sched-rgn.c (new_ready): Check if instruction can be
|
||||
|
|
|
@ -544,8 +544,6 @@ static void change_queue_index (rtx, int);
|
|||
|
||||
static void extend_h_i_d (void);
|
||||
static void extend_ready (int);
|
||||
static void extend_global (rtx);
|
||||
static void extend_all (rtx);
|
||||
static void init_h_i_d (rtx);
|
||||
static void generate_recovery_code (rtx);
|
||||
static void process_insn_forw_deps_be_in_spec (rtx, rtx, ds_t);
|
||||
|
@ -3188,36 +3186,45 @@ extend_ready (int n_new_insns)
|
|||
choice_stack[i].state = xmalloc (dfa_state_size);
|
||||
}
|
||||
|
||||
/* Extend global scheduler structures (those, that live across calls to
|
||||
schedule_block) to include information about just emitted INSN. */
|
||||
/* Extend global-scope scheduler data structures
|
||||
(those, that live within one call to schedule_insns)
|
||||
to include information about just emitted INSN. */
|
||||
static void
|
||||
extend_global (rtx insn)
|
||||
extend_global_data (rtx insn)
|
||||
{
|
||||
gcc_assert (INSN_P (insn));
|
||||
|
||||
/* These structures have scheduler scope. */
|
||||
|
||||
/* Init h_i_d. */
|
||||
extend_h_i_d ();
|
||||
init_h_i_d (insn);
|
||||
|
||||
/* Init data handled in sched-deps.c. */
|
||||
sd_init_insn (insn);
|
||||
|
||||
/* Extend dependency caches by one element. */
|
||||
extend_dependency_caches (1, false);
|
||||
}
|
||||
|
||||
/* Extends global and local scheduler structures to include information
|
||||
about just emitted INSN. */
|
||||
/* Extend global- and region-scope scheduler data structures
|
||||
(those, that live within one call to schedule_region)
|
||||
to include information about just emitted INSN. */
|
||||
static void
|
||||
extend_all (rtx insn)
|
||||
{
|
||||
extend_global (insn);
|
||||
extend_region_data (rtx insn)
|
||||
{
|
||||
extend_global_data (insn);
|
||||
|
||||
/* Init dependency data. */
|
||||
sd_init_insn (insn);
|
||||
}
|
||||
|
||||
/* Extend global-, region- and block-scope scheduler data structures
|
||||
(those, that live within one call to schedule_block)
|
||||
to include information about just emitted INSN. */
|
||||
static void
|
||||
extend_block_data (rtx insn)
|
||||
{
|
||||
extend_region_data (insn);
|
||||
|
||||
/* These structures have block scope. */
|
||||
extend_ready (1);
|
||||
|
||||
|
||||
(*current_sched_info->add_remove_insn) (insn, 0);
|
||||
}
|
||||
|
||||
|
@ -3391,7 +3398,7 @@ add_to_speculative_block (rtx insn)
|
|||
rec = BLOCK_FOR_INSN (check);
|
||||
|
||||
twin = emit_insn_before (copy_insn (PATTERN (insn)), BB_END (rec));
|
||||
extend_global (twin);
|
||||
extend_region_data (twin);
|
||||
|
||||
sd_copy_back_deps (twin, insn, true);
|
||||
|
||||
|
@ -3581,7 +3588,7 @@ init_before_recovery (void)
|
|||
x = emit_jump_insn_after (gen_jump (label), BB_END (single));
|
||||
JUMP_LABEL (x) = label;
|
||||
LABEL_NUSES (label)++;
|
||||
extend_global (x);
|
||||
extend_global_data (x);
|
||||
|
||||
emit_barrier_after (x);
|
||||
|
||||
|
@ -3681,7 +3688,7 @@ create_check_block_twin (rtx insn, bool mutate_p)
|
|||
check = emit_insn_before (check, insn);
|
||||
|
||||
/* Extend data structures. */
|
||||
extend_all (check);
|
||||
extend_block_data (check);
|
||||
RECOVERY_BLOCK (check) = rec;
|
||||
|
||||
if (sched_verbose && spec_info->dump)
|
||||
|
@ -3708,7 +3715,7 @@ create_check_block_twin (rtx insn, bool mutate_p)
|
|||
}
|
||||
|
||||
twin = emit_insn_after (ORIG_PAT (insn), BB_END (rec));
|
||||
extend_global (twin);
|
||||
extend_region_data (twin);
|
||||
|
||||
if (sched_verbose && spec_info->dump)
|
||||
/* INSN_BB (insn) isn't determined for twin insns yet.
|
||||
|
@ -3761,7 +3768,7 @@ create_check_block_twin (rtx insn, bool mutate_p)
|
|||
jump = emit_jump_insn_after (gen_jump (label), BB_END (rec));
|
||||
JUMP_LABEL (jump) = label;
|
||||
LABEL_NUSES (label)++;
|
||||
extend_global (jump);
|
||||
extend_region_data (jump);
|
||||
|
||||
if (BB_PARTITION (second_bb) != BB_PARTITION (rec))
|
||||
/* Partition type is the same, if it is "unpartitioned". */
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2008-08-06 Maxim Kuvyrkov <maxim@codesourcery.com>
|
||||
|
||||
* gcc.target/ia64/20080802-1.c: New test.
|
||||
|
||||
2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||||
|
||||
PR tree-opt/37024
|
||||
|
|
19
gcc/testsuite/gcc.target/ia64/20080802-1.c
Normal file
19
gcc/testsuite/gcc.target/ia64/20080802-1.c
Normal file
|
@ -0,0 +1,19 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -msched-control-spec" } */
|
||||
|
||||
struct cpp_reader;
|
||||
|
||||
extern const char * parse_include (struct cpp_reader *, int *m, void *);
|
||||
extern int _cpp_compare_file_date (struct cpp_reader *, const char *, int);
|
||||
|
||||
void
|
||||
_cpp_init_internal_pragmas (struct cpp_reader *pfile)
|
||||
{
|
||||
const char *fname;
|
||||
int angle_brackets, ordering;
|
||||
|
||||
fname = parse_include (pfile, &angle_brackets, (void *) 0);
|
||||
if (!fname)
|
||||
return;
|
||||
ordering = _cpp_compare_file_date (pfile, fname, angle_brackets);
|
||||
}
|
Loading…
Add table
Reference in a new issue