diff options
author | Richard Sandiford <rsandifo@redhat.com> | 2003-12-04 09:11:19 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2003-12-04 09:11:19 +0000 |
commit | 8a89dbd24275d78205f408da9acdee092850dc5a (patch) | |
tree | 54f81a2dcb6de1daefdbe36bae91815aee6946ac /gcc/targhooks.c | |
parent | afb0918a9b127a64098a1267f328908acc7e4d1d (diff) | |
download | gcc-8a89dbd24275d78205f408da9acdee092850dc5a.tar.gz |
re PR target/13186 ([PPC] Internal compiler error in reload.c)
PR target/13186
Revert all of the following patch, except the addition of
hook_bool_machine_mode_true:
2003-11-02 Richard Sandiford <rsandifo@redhat.com>
* Makefile.in (targhooks.o, reload.o): Update dependencies.
(GTFILES): Add targhooks.c.
(gt-targhooks.h): New rule; depend on s-gtype.
* target.h (direct_pool_load_p): New hook.
* target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro.
(TARGET_INITIALIZER): Include it.
* targhooks.h (default_direct_pool_load_p): Declare.
(hook_bool_machine_mode_true): Declare.
* targhooks.c: Include insn-config.h, recog.h, ggc.h and
gt-targhooks.h.
(pool_symbol): New variable.
(default_direct_pool_load_p): New function.
(hook_bool_machine_mode_true): New function.
* reload.c: Include target.h.
(find_reloads): If an alternative will force a constant into memory,
count an extra reload if constant pool symbols are not valid
addresses. If an alternative uses memory to move values between
registers, count the move as two reloads rather than one.
* config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define.
* doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document.
From-SVN: r74275
Diffstat (limited to 'gcc/targhooks.c')
-rw-r--r-- | gcc/targhooks.c | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/gcc/targhooks.c b/gcc/targhooks.c index 9be6786b53b..62ed9432468 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -61,9 +61,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "target.h" #include "tm_p.h" #include "target-def.h" -#include "insn-config.h" -#include "recog.h" -#include "ggc.h" void default_external_libcall (rtx fun ATTRIBUTE_UNUSED) @@ -199,31 +196,6 @@ default_pretend_outgoing_varargs_named(CUMULATIVE_ARGS *ca ATTRIBUTE_UNUSED) #endif } -/* A SYMBOL_REF for a local symbol. Used by default_direct_pool_load_p. */ - -static GTY(()) rtx pool_symbol; - -/* See whether a local symbol is a valid address for MODE. If so, assume - that constant pool symbols are also valid addresses, otherwise assume - that they aren't. - - ??? This is only an approximation. We can't test constant pool - symbols directly without forcing something into the constant pool. */ - -bool -default_direct_pool_load_p (enum machine_mode mode) -{ - if (pool_symbol == 0) - { - char label[256]; - - ASM_GENERATE_INTERNAL_LABEL (label, "LC", 0); - pool_symbol = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (label)); - SYMBOL_REF_FLAGS (pool_symbol) = SYMBOL_FLAG_LOCAL; - } - return memory_address_p (mode, pool_symbol); -} - /* Generic hook that takes a CUMULATIVE_ARGS pointer and returns true. */ bool @@ -239,5 +211,3 @@ hook_bool_machine_mode_true (enum machine_mode a ATTRIBUTE_UNUSED) { return true; } - -#include "gt-targhooks.h" |