aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2020-07-12 18:41:25 +0200
committerHans-Peter Nilsson <hp@axis.com>2020-07-13 10:14:40 +0200
commit9a2ae08b02d185a11e3e525e100ba637ce81c7ff (patch)
tree7e98f9dd3d9cee797158c3957bdee30cdd163b31 /gcc/function.c
parent881fb2091cf0609f7a6e3454a3b6f23062943b7e (diff)
downloadgcc-9a2ae08b02d185a11e3e525e100ba637ce81c7ff.zip
gcc-9a2ae08b02d185a11e3e525e100ba637ce81c7ff.tar.gz
gcc-9a2ae08b02d185a11e3e525e100ba637ce81c7ff.tar.bz2
cris: Add new pass eliminating compares after delay-slot-filling
Delayed-branch-slot-filling a.k.a. reorg or dbr, often causes opportunities for more compare-elimination than were visible for the cmpelim pass. With cc0, these were caught by the elimination pass run in "final", thus the missed opportunities is a regression. A simple reorg-aware pass run just after reorg handles most of them, if not all. I chose to keep the "mach2" pass identifier string I copy-pasted from the SPARC port instead of inventing one like "postdbr_cmpelim". Note the gap in numbers in the test-case file names. gcc: PR target/93372 * config/cris/cris-passes.def: New file. * config/cris/t-cris (PASSES_EXTRA): Add cris-passes.def. * config/cris/cris.c: Add infrastructure bits and pass execute function cris_postdbr_cmpelim. * config/cris/cris-protos.h (make_pass_cris_postdbr_cmpelim): Declare. gcc/testsuite: * gcc.target/cris/pr93372-44.c, gcc.target/cris/pr93372-46.c: New.
Diffstat (limited to 'gcc/function.c')
0 files changed, 0 insertions, 0 deletions