aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2009-08-18 19:50:44 +0200
committerUros Bizjak <uros@gcc.gnu.org>2009-08-18 19:50:44 +0200
commite72cee90d52ac45df305c99894908df0bf4be392 (patch)
treee33e4cfed8c9bcec15d96424da15db15f4b299bc /gcc
parente31bcd1b96a5d6236da6cb4965b112773878e35d (diff)
downloadgcc-e72cee90d52ac45df305c99894908df0bf4be392.zip
gcc-e72cee90d52ac45df305c99894908df0bf4be392.tar.gz
gcc-e72cee90d52ac45df305c99894908df0bf4be392.tar.bz2
alpha.c (alpha_output_mi_thunk_osf): Allocate insn locators before emit_insn is called.
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn locators before emit_insn is called. Remove assert that cfun->is_thunk. (alpha_end_function): Clear crtl->emit structure and free insn locators if cfun->is_thunk is true. From-SVN: r150883
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/alpha/alpha.c8
-rw-r--r--gcc/testsuite/ChangeLog2
3 files changed, 14 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8228ad2..206656d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2009-08-18 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
+ locators before emit_insn is called. Remove assert that
+ cfun->is_thunk.
+ (alpha_end_function): Clear crtl->emit structure and free insn
+ locators if cfun->is_thunk is true.
+
2009-08-18 Jason Merrill <jason@redhat.com>
* config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 442dd171..e164491 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -8615,7 +8615,10 @@ alpha_end_function (FILE *file, const char *fnname, tree decl ATTRIBUTE_UNUSED)
#if TARGET_ABI_OSF
if (cfun->is_thunk)
- free_after_compilation (cfun);
+ {
+ memset (&crtl->emit, 0, sizeof (struct emit_status));
+ insn_locators_free ();
+ }
#endif
#if TARGET_ABI_OPEN_VMS
@@ -8666,7 +8669,7 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
HOST_WIDE_INT hi, lo;
rtx this_rtx, insn, funexp;
- gcc_assert (cfun->is_thunk);
+ insn_locators_alloc ();
/* We always require a valid GP. */
emit_insn (gen_prologue_ldgp ());
@@ -8744,7 +8747,6 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
instruction scheduling worth while. Note that use_thunk calls
assemble_start_function and assemble_end_function. */
insn = get_insns ();
- insn_locators_alloc ();
shorten_branches (insn);
final_start_function (insn, file, 1);
final (insn, file, 1);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f2583ec..a0c52bd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -42,7 +42,7 @@
2009-08-17 Uros Bizjak <ubizjak@gmail.com>
* lib/target-supports.exp
- (check_effective_target_vect_cmdline_needed):: Add alpha to the list
+ (check_effective_target_vect_cmdline_needed): Add alpha to the list
of targets that do not need command line argument to enable SIMD.
2009-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>