aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorechristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>2006-05-02 00:04:35 +0000
committerechristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>2006-05-02 00:04:35 +0000
commit05154761be319de895195809e92cbcae2dd71d75 (patch)
treec20ccd575f9cfff07c5d915bcf7441bfbfcb4cc1
parentd8e6a5664e5473d99a85e0e5ce69c7201a619e74 (diff)
2006-05-01 Eric Christopher <echristo@apple.com>
* global.c (flag_cw_asm_blocks): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/apple/trunk@113440 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.apple-ppc54
-rw-r--r--gcc/global.c51
2 files changed, 56 insertions, 49 deletions
diff --git a/gcc/ChangeLog.apple-ppc b/gcc/ChangeLog.apple-ppc
index e283b43f3b3..b227d44fc84 100644
--- a/gcc/ChangeLog.apple-ppc
+++ b/gcc/ChangeLog.apple-ppc
@@ -1,3 +1,7 @@
+2006-05-01 Eric Christopher <echristo@apple.com>
+
+ * global.c (flag_cw_asm_blocks): Declare.
+
2006-05-01 Fariborz Jahanian <fjahanian@apple.com>
Radar 4512786
@@ -9,7 +13,7 @@
Radar 4512786
* doc/invoke.texi (fobjc-exceptions): Say it is
on by default.
-
+
2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
Radar 3803157 (method attributes)
@@ -81,7 +85,7 @@
Radar 4498373
(Metadata for objective-c properties)
- * config/darwin.c (machopic_select_section): Put metadata
+ * config/darwin.c (machopic_select_section): Put metadata
name/attribute strings in .data section.
2006-03-29 Fariborz Jahanian <fjahanian@apple.com>
@@ -98,8 +102,8 @@
* c-common.h (objc_diagnose_private_ivar): New decl.
* stub-objc.c (objc_diagnose_private_ivar): New stub.
* c-decl.c (undeclared_variable): Issue disnostic on
- private 'ivar' access.
-
+ private 'ivar' access.
+
2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
Radar 4491608
@@ -123,7 +127,7 @@
Radar 4255172
* config/rs6000/darwin.h (PEG_ALIGN_FOR_MAC68K): Move to here from
config/darwin.h. Don't test TARGET_ALTIVEC.
- * config/darwin.h [RS6000_VECTOR_ALIGNMENT] (PEG_ALIGN_FOR_MAC68K):
+ * config/darwin.h [RS6000_VECTOR_ALIGNMENT] (PEG_ALIGN_FOR_MAC68K):
Move this definition to config/rs6000/darwin.h.
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't define
Altivec PIM macros unless -faltivec.
@@ -138,15 +142,15 @@
* c-typeck.c (build_component_ref): Call objc_build_getter_call.
(build_modify_expr): Call objc_build_setter_call.
* tree.h (CALL_EXPR_OBJC_PROPERTY_GETTER): New macro.
- * c-common.h: Several new declarations in support of
+ * c-common.h: Several new declarations in support of
objective-c's @property.
- * stub-objc.c (objc_set_property_attr, objc_add_property_variable,
+ * stub-objc.c (objc_set_property_attr, objc_add_property_variable,
objc_build_getter_call, objc_build_setter_call): New stubs.
-
+
2006-03-16 Fariborz Jahanian <fjahanian@apple.com>
Radar 4293709
- * c-typeck.c (digest_init): Check for protocol match in
+ * c-typeck.c (digest_init): Check for protocol match in
initialization of two otherwise matching pointers.
2006-03-13 Fariborz Jahanian <fjahanian@apple.com>
@@ -154,7 +158,7 @@
Radar 4472881
* c-parse.in: Change grammar code as needed to allow
declaration in objective-c's foreach for-loop loop header.
-
+
2006-03-08 Fariborz Jahanian <fjahanian@apple.com>
Radar 4468456
@@ -164,7 +168,7 @@
2006-03-07 Fariborz Jahanian <fjahanian@apple.com>
Radar 4468498
- * c-parse.in (for_objc_collection): Add grammar for non-declarative
+ * c-parse.in (for_objc_collection): Add grammar for non-declarative
form of foreach-statement.
2006-02-28 Fariborz Jahanian <fjahanian@apple.com>
@@ -174,7 +178,7 @@
* expr.h (objc_v2_bitfield_ivar_bitpos): New decl.
* stub-objc.c (objc_v2_bitfield_ivar_bitpos): New stub.
* expr.c (get_inner_reference): Compute ivar's bitfield bit offset.
-
+
2006-02-28 Devang Patel <dpatel@apple.com>
Ziemowit Laski <zlaski@apple.com>
@@ -205,7 +209,7 @@
* stub-objc.c (diagnose_selector_cast): New stub.
* config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
objc's new abi.
-
+
2006-02-14 Fariborz Jahanian <fjahanian@apple.com>
Radar 4441049
@@ -224,7 +228,7 @@
* config/darwin-protos.h: Stuff for new __OBJC2, __protocol section.
* config/darwin.c: Ditto.
* config/darwin.h: Ditto.
-
+
2006-02-07 Fariborz Jahanian <fjahanian@apple.com>
Radar 4426814
@@ -237,11 +241,11 @@
each __weak object in the expession.
* c-typeck.c (build_modify_expr): Undo the call to objc_read_weak
on LHS expression.
- * c-objc-common.c (c_objc_common_truthvalue_conversion): Generate
+ * c-objc-common.c (c_objc_common_truthvalue_conversion): Generate
objc_read_weak call before generating tree for !exp, etc.
* c-common.h (objc_generate_weak_read, objc_remove_weak_read): New decl.
* stub-objc.c (objc_generate_weak_read, objc_remove_weak_read): New stubs.
-
+
2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
Radar 4386773
@@ -253,13 +257,13 @@
2006-01-26 Devang Patel <dpatel@apple.com>
Radar 4388369
- * dbxout.c (dbxout_complete_type): Handle internally volatized
+ * dbxout.c (dbxout_complete_type): Handle internally volatized
types for Objective-C EH mechanism.
2006-01-23 Fariborz Jahanian <fjahanian@apple.com>
Radar 4391705
- * config/darwin-protos.h
+ * config/darwin-protos.h
(objc_v2_selector_refs_section): New declaration.
* config/darwin.c: use section __OBJC2,__selector_refs for
@selector expressions in new-ABI and hybrid-ABI.
@@ -273,30 +277,30 @@
* c-parse.in: Add grammar supprt for the foreach initialization
part.
* c-gimplify.c (obj_reuse_bc_block): New function.
- (gimplify_c_loop): Has a new argument to recgognize nested
+ (gimplify_c_loop): Has a new argument to recgognize nested
do-while statement part of foreach-statement synthesis. Use
existing continue/break labels for this loop.
* c-common.h (DO_FOREACH): New field for a do-while statement.
- (objc_finish_foreach_loop, objc_build_component_ref,
+ (objc_finish_foreach_loop, objc_build_component_ref,
objc_build_foreach_components): New declarations.
* stub-objc.c: New stubs.
-
+
2006-01-18 Fariborz Jahanian <fjahanian@apple.com>
Radar 4391705
* config/darwin-protos.h: New declarations for new sections.
- * config/darwin.c: Generate new symbols in OBJC2 segment in
- new sections __category_list, __class_refs, __nonlazy_class
+ * config/darwin.c: Generate new symbols in OBJC2 segment in
+ new sections __category_list, __class_refs, __nonlazy_class
and __nonlazy_catgry.
* config/darwin.h: Define and initialize the above new sections.
2006-01-02 Fariborz Jahanian <fjahanian@apple.com>
Radar 4391705
- * config/darwin.h: Change segment and section name of class meta
+ * config/darwin.h: Change segment and section name of class meta
data.
(objc_section_init): Initialize OBJC2 sections for new abi only.
-
+
2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
Radar 4229905
diff --git a/gcc/global.c b/gcc/global.c
index 251e81a51ef..15d161fd455 100644
--- a/gcc/global.c
+++ b/gcc/global.c
@@ -84,6 +84,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
5. Allocate the variables in that order; each if possible into
a preferred register, else into another register. */
+/* APPLE LOCAL CW asm blocks */
+extern int flag_cw_asm_blocks;
+
/* Number of pseudo-registers which are candidates for allocation. */
static int max_allocno;
@@ -264,7 +267,7 @@ static int local_reg_n_refs[FIRST_PSEUDO_REGISTER];
/* APPLE LOCAL begin rewrite weight computation */
#ifdef REWRITE_WEIGHT_COMPUTATION
/* Overall weight of each hard reg, as used by local alloc.
- This was formerly computed once as
+ This was formerly computed once as
SUM(REG_FREQ(i))/SUM(REG_LIVE_LENGTH(i)) where the sums
are computed over all uses. But that computation produces very
wrong answers when a reg is used both inside and outside a loop.
@@ -601,7 +604,7 @@ global_alloc (FILE *file)
conflicts = xcalloc (max_allocno * allocno_row_words, sizeof (INT_TYPE));
/* APPLE LOCAL begin 4321079 */
- pseudo_preferences =
+ pseudo_preferences =
xcalloc (max_allocno * allocno_row_words, sizeof (INT_TYPE));
/* APPLE LOCAL end 4321079 */
@@ -627,17 +630,17 @@ global_alloc (FILE *file)
int i, j;
for (i = max_allocno - 1; i >= 0; i--)
{
- EXECUTE_IF_SET_IN_ALLOCNO_SET (pseudo_preferences
+ EXECUTE_IF_SET_IN_ALLOCNO_SET (pseudo_preferences
+ i * allocno_row_words,
j,
{
if (REG_N_SETS (allocno[i].reg) == 1
&& REG_N_SETS (allocno[j].reg) == 1)
{
- conflicts[(i) * allocno_row_words
+ conflicts[(i) * allocno_row_words
+ (unsigned) (j) / INT_BITS]
&= ~((INT_TYPE) 1 << ((unsigned) (j) % INT_BITS));
- conflicts[(j) * allocno_row_words
+ conflicts[(j) * allocno_row_words
+ (unsigned) (i) / INT_BITS]
&= ~((INT_TYPE) 1 << ((unsigned) (i) % INT_BITS));
}
@@ -1037,7 +1040,7 @@ expand_preferences (void)
to cut down on the number of reg-reg copies. Since two
inputs that both die conflict with each other, we shouldn't
tie both. Experimentally, neither picking the first nor the second
- seems to be a winner, so we tie neither.
+ seems to be a winner, so we tie neither.
On ppc, this whole idea seems to be a loser; introducing extra
dependencies for scheduling loses more than eliminating reg-reg
copies gains. We make some attempt to abstract this by looking
@@ -1064,9 +1067,9 @@ expand_preferences (void)
/* APPLE LOCAL begin 4321079 */
for (j = allocno_row_words - 1; j >= 0; j--)
{
- pseudo_preferences[a1 * allocno_row_words + j]
+ pseudo_preferences[a1 * allocno_row_words + j]
|= pseudo_preferences[a2 * allocno_row_words + j];
- pseudo_preferences[a2 * allocno_row_words + j]
+ pseudo_preferences[a2 * allocno_row_words + j]
|= pseudo_preferences[a1 * allocno_row_words + j];
}
/* APPLE LOCAL end 4321079 */
@@ -1510,7 +1513,7 @@ find_reg (int num, HARD_REG_SET losers, int alt_regs_p, int accept_call_clobbere
int k, l;
/* Mark tied pseudo-regs that have not yet been assigned a reg
and do not conflict as preferring this reg. Mark pseudo-regs
- conflicting with regs tied to this reg and not yet assigned a
+ conflicting with regs tied to this reg and not yet assigned a
reg as not preferring this reg. */
EXECUTE_IF_SET_IN_ALLOCNO_SET (
pseudo_preferences + num * allocno_row_words, k,
@@ -1533,14 +1536,14 @@ find_reg (int num, HARD_REG_SET losers, int alt_regs_p, int accept_call_clobbere
{
if (num != k)
EXECUTE_IF_SET_IN_ALLOCNO_SET (
- pseudo_preferences + k * allocno_row_words, l,
+ pseudo_preferences + k * allocno_row_words, l,
{
- if (k != l && !CONFLICTP (k, l)
+ if (k != l && !CONFLICTP (k, l)
&& reg_renumber[allocno[l].reg] < 0)
SET_REGBIT (regs_someone_prefers, l, best_reg);
});
});
- }
+ }
/* APPLE LOCAL end 4321079 */
}
}
@@ -1646,13 +1649,13 @@ mirror_conflicts (void)
q0++;
qq0++;
}
- for (j = allocno_row_words - 1, q1 = q0, qq1 = qq0;
- j >= 0;
+ for (j = allocno_row_words - 1, q1 = q0, qq1 = qq0;
+ j >= 0;
j--, q1 += rwb, qq1 += rwb)
{
unsigned INT_TYPE word;
- for (word = (unsigned INT_TYPE) *p++, q2 = q1;
+ for (word = (unsigned INT_TYPE) *p++, q2 = q1;
word;
word >>= 1, q2 += rw)
{
@@ -1956,7 +1959,7 @@ set_preference (rtx dest, rtx src)
/* APPLE LOCAL begin 4321079 */
/* If both are pseudos record that. We do this only for "copies", as
the current focus is to eliminate vector copies where the two
- sides have different modes, converted by a SUBREG.
+ sides have different modes, converted by a SUBREG.
Expansion to reusing the input as output is possible, but there
seems little advantage; reload handles this OK usually.
@@ -1982,7 +1985,7 @@ set_preference (rtx dest, rtx src)
/* Callback for reload. We are going to assign pseudo R a stack slot;
see if a reg tied to it already has one that we can reuse. */
rtx find_tied_stack_pseudo (int);
-rtx
+rtx
find_tied_stack_pseudo (int r)
{
int i = reg_allocno[r];
@@ -1991,7 +1994,7 @@ find_tied_stack_pseudo (int r)
return 0;
EXECUTE_IF_SET_IN_ALLOCNO_SET(pseudo_preferences + i * allocno_row_words, j,
{
- if (!CONFLICTP(i, j)
+ if (!CONFLICTP(i, j)
&& reg_renumber[allocno[j].reg] < 0
&& reg_equiv_memory_loc[allocno[j].reg] != 0
/* APPLE LOCAL begin 4405429 */
@@ -2463,7 +2466,7 @@ mark_reg_change (rtx reg, rtx setter, void *data)
regno = REGNO (reg);
bitmap_set_bit (bb_info->killed, regno);
-
+
if (GET_CODE (setter) != CLOBBER)
bitmap_set_bit (bb_info->avloc, regno);
else
@@ -2532,7 +2535,7 @@ check_earlyclobber (rtx insn)
if (i < 0)
VARRAY_PUSH_INT (earlyclobber_regclass, (int) class);
}
-
+
amp_p = false;
class = NO_REGS;
break;
@@ -2630,7 +2633,7 @@ set_up_bb_rts_numbers (void)
{
int i;
int *rts_order;
-
+
rts_order = xmalloc (sizeof (int) * n_basic_blocks);
flow_reverse_top_sort_order_compute (rts_order);
for (i = 0; i < n_basic_blocks; i++)
@@ -2689,7 +2692,7 @@ calculate_reg_pav (void)
edge_iterator ei;
struct bb_info *bb_info;
bitmap bb_live_pavin, bb_live_pavout;
-
+
bb = bb_array [i];
bb_info = BB_INFO (bb);
bb_live_pavin = bb_info->live_pavin;
@@ -2763,7 +2766,7 @@ modify_reg_pav (void)
FOR_EACH_BB (bb)
{
bb_info = BB_INFO (bb);
-
+
/* Reload can assign the same hard register to uninitialized
pseudo-register and early clobbered pseudo-register in an
insn if the pseudo-register is used first time in given BB
@@ -2822,7 +2825,7 @@ make_accurate_live_analysis (void)
FOR_EACH_BB (bb)
{
bb_info = BB_INFO (bb);
-
+
bitmap_and_into (bb->global_live_at_start, bb_info->live_pavin);
bitmap_and_into (bb->global_live_at_end, bb_info->live_pavout);
}