------- Comment #4 from wilson at codesourcery dot com 2010-03-13 03:16 ------- Subject: Re: [ia64] Inappropriate address spills
Or maybe we should just accept any constant here? I tried that, and for typedef struct table { int a; int b; int c; } table; extern table mv_tables[100000]; void foo() { init_mv_table(&mv_tables[50000]); } I get addl r35 = @ltoff(mv_tables#+606208), r1 ;; ld8 r35 = [r35] ;; adds r35 = -6208, r35 which is perhaps still better than using @gprel and the constant pool. In this case, in ia64_legitimate_constant_p we can just return true if aligned_offset_symbol_operand is true, and there is no need for the addend local variable. Jim -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42040