diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-01-31 20:43:02 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-01-31 20:43:02 +0000 |
commit | e4304442b53e86930c292ee1705d020fa75e8c87 (patch) | |
tree | c060327dd8273d80e7f1a8eb9750da5fdbec9fe2 /gcc/genattrtab.c | |
parent | a1125164a19399284d247a1bb2d46b7a4b5da187 (diff) | |
download | gcc-e4304442b53e86930c292ee1705d020fa75e8c87.tar.gz |
(expand_units): When calculate BLOCKAGE, reverse
terms to POS_MINUS_OP. Clarify comment before BLOCKAGE computation.
(write_complex_function): Use EXECUTING_INSN for first switch, and
CANDIDATE_INSN for second switch.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6442 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/genattrtab.c')
-rw-r--r-- | gcc/genattrtab.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c index 7e93348c928..865c0e74703 100644 --- a/gcc/genattrtab.c +++ b/gcc/genattrtab.c @@ -1954,6 +1954,10 @@ expand_units () candidate insn, so in the expressions below, C is a known term and E is an unknown term. + We compute the blockage cost for each E for every possible C. + Thus OP represents E, and READYCOST is a list of values for + every possible C. + The issue delay function for C is op->issue_exp and is used to write the `<name>_unit_conflict_cost' function. Symbolicly this is "ISSUE-DELAY (E,C)". @@ -1995,8 +1999,8 @@ expand_units () * unit->issue_delay.min)); if (delay > 0) - blockage = operate_exp (POS_MINUS_OP, blockage, - make_numeric_value (delay)); + blockage = operate_exp (POS_MINUS_OP, + make_numeric_value (delay), blockage); blockage = operate_exp (MAX_OP, blockage, op->issue_exp); blockage = simplify_knowing (blockage, unit->condexp); @@ -5114,7 +5118,7 @@ write_complex_function (unit, name, connection) printf ("{\n"); printf (" rtx insn;\n"); printf (" int casenum;\n\n"); - printf (" insn = candidate_insn;\n"); + printf (" insn = executing_insn;\n"); printf (" switch (recog_memoized (insn))\n"); printf (" {\n"); @@ -5136,7 +5140,7 @@ write_complex_function (unit, name, connection) /* Now write an outer switch statement on each case. Then write the tests on the executing function within each. */ - printf (" insn = executing_insn;\n"); + printf (" insn = candidate_insn;\n"); printf (" switch (casenum)\n"); printf (" {\n"); |