LP_COUNT register cannot be freely allocated by the compiler as it size, and/or content may change depending on the ARC hardware configuration. Thus, make this register fixed. Remove register classes and unused constraint letters. Cleanup the implementation of conditional_register_usage hook by using macros instead of magic constants and removing all references to reg_class_contents which are bringing so much grief when lra is enabled. gcc/ xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.h (reg_class): Reorder registers classes, remove unused register classes. (REG_CLASS_NAMES): Likewise. (REG_CLASS_CONTENTS): Likewise. (FIXED_REGISTERS): Make lp_count fixed. (BASE_REG_CLASS): Remove ACC16_BASE_REGS reference. (PROGRAM_COUNTER_REGNO): Remove. * config/arc/arc.c (arc_conditional_register_usage): Remove unused register classes, use constants for register numbers, remove reg_class_contents references. (arc_process_double_reg_moves): Add asserts. (arc_secondary_reload): Remove LPCOUNT_REG reference, use lra_in_progress predicate. (arc_init_reg_tables): Remove unused register classes. (arc_register_move_cost): Likewise. (arc_preferred_reload_class): Likewise. (hwloop_optimize): Update rtx patterns involving lp_count register. (arc_return_address_register): Rename ILINK1, INLINK2 regnums macros. * config/arc/constraints.md ("c"): Choose between GENERAL_REGS and CHEAP_CORE_REGS. Former one will be used for LRA. ("Rac"): Choose between GENERAL_REGS and ALL_CORE_REGS. Former one will be used for LRA. ("w"): Choose between GENERAL_REGS and WRITABLE_CORE_REGS. Former one will be used for LRA. ("W"): Choose between GENERAL_REGS and MPY_WRITABLE_CORE_REGS. Former one will be used for LRA. ("f"): Delete constraint. ("k"): Likewise. ("e"): Likewise. ("l"): Change it from register constraint to constraint. * config/arc/arc.md (movqi_insn): Remove unsed lp_count constraints. (movhi_insn): Likewise. (movsi_insn): Update pattern. (arc_lp): Likewise. (dbnz): Likewise. (stack_tie): Remove 'b' constraint letter. (R4_REG): Define. (R9_REG, R15_REG, R16_REG, R25_REG): Likewise. (R32_REG, R40_REG, R41_REG, R42_REG, R43_REG, R44_REG): Likewise. (R57_REG, R59_REG, PCL_REG): Likewise. (ILINK1_REGNUM): Renamed to ILINK1_REG. (ILINK2_REGNUM): Renamed to ILINK2_REG. (Rgp): Remove. (SP_REGS): Likewise. (Rcw): Remove unused reg classes. * config/arc/predicates.md (dest_reg_operand): Just default on register_operand predicate. (mpy_dest_reg_operand): Likewise. (move_dest_operand): Use macros instead of constants. From-SVN: r266100
Name |
Last commit
|
Last update |
---|---|---|
INSTALL | Loading commit data... | |
config | Loading commit data... | |
contrib | Loading commit data... | |
fixincludes | Loading commit data... | |
gcc | Loading commit data... | |
gnattools | Loading commit data... | |
gotools | Loading commit data... | |
include | Loading commit data... | |
intl | Loading commit data... | |
libada | Loading commit data... | |
libatomic | Loading commit data... | |
libbacktrace | Loading commit data... | |
libcc1 | Loading commit data... | |
libcpp | Loading commit data... | |
libdecnumber | Loading commit data... | |
libffi | Loading commit data... | |
libgcc | Loading commit data... | |
libgfortran | Loading commit data... | |
libgo | Loading commit data... | |
libgomp | Loading commit data... | |
libhsail-rt | Loading commit data... | |
libiberty | Loading commit data... | |
libitm | Loading commit data... | |
libobjc | Loading commit data... | |
liboffloadmic | Loading commit data... | |
libphobos | Loading commit data... | |
libquadmath | Loading commit data... | |
libsanitizer | Loading commit data... | |
libssp | Loading commit data... | |
libstdc++-v3 | Loading commit data... | |
libvtv | Loading commit data... | |
lto-plugin | Loading commit data... | |
maintainer-scripts | Loading commit data... | |
zlib | Loading commit data... | |
.dir-locals.el | Loading commit data... | |
.gitattributes | Loading commit data... | |
.gitignore | Loading commit data... | |
ABOUT-NLS | Loading commit data... | |
COPYING | Loading commit data... | |
COPYING.LIB | Loading commit data... | |
COPYING.RUNTIME | Loading commit data... | |
COPYING3 | Loading commit data... | |
COPYING3.LIB | Loading commit data... | |
ChangeLog | Loading commit data... | |
ChangeLog.jit | Loading commit data... | |
ChangeLog.tree-ssa | Loading commit data... | |
MAINTAINERS | Loading commit data... | |
Makefile.def | Loading commit data... | |
Makefile.in | Loading commit data... | |
Makefile.tpl | Loading commit data... | |
README | Loading commit data... | |
ar-lib | Loading commit data... | |
compile | Loading commit data... | |
config-ml.in | Loading commit data... | |
config.guess | Loading commit data... | |
config.rpath | Loading commit data... | |
config.sub | Loading commit data... | |
configure | Loading commit data... | |
configure.ac | Loading commit data... | |
depcomp | Loading commit data... | |
install-sh | Loading commit data... | |
libtool-ldflags | Loading commit data... | |
libtool.m4 | Loading commit data... | |
ltgcc.m4 | Loading commit data... | |
ltmain.sh | Loading commit data... | |
ltoptions.m4 | Loading commit data... | |
ltsugar.m4 | Loading commit data... | |
ltversion.m4 | Loading commit data... | |
lt~obsolete.m4 | Loading commit data... | |
missing | Loading commit data... | |
mkdep | Loading commit data... | |
mkinstalldirs | Loading commit data... | |
move-if-change | Loading commit data... | |
multilib.am | Loading commit data... | |
symlink-tree | Loading commit data... | |
test-driver | Loading commit data... | |
ylwrap | Loading commit data... |