aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
blob: 510c9d97b92600c9c73d52245a8135562ef84308 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
Wed Aug 27 16:08:43 1997  Jim Wilson  <wilson@cygnus.com>

	* config/alpha/elf.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1
	if USE_GNULIBC_1 is not defined.

Wed Aug 27 15:49:12 1997  Richard Henderson  <rth@cygnus.com>

	* alpha/elf.h (LINK_SPEC): Conditionalize on USE_GNULIBC_1.
	* config.guess: Recognize alpha-linux-gnulibc1.
	* configure.in (alpha-*-linux-gnulibc1): New target.
	(alpha-*-linux-gnu*): Don't build crtbegin/end.

Wed Aug 27 11:52:58 1997  Jim Wilson  <wilson@cygnus.com>

	* m68k.md (iorsi3_internal): Readd ! TARGET_5200 check lost in
	last change.

Wed Aug 27 01:56:18 1997  Doug Evans  <dje@seba.cygnus.com>

	* loop.c (combine_movables): Earlier insns don't match later ones.

	* c-decl.c (grokdeclarator): If array index or size calculations
	overflow, issue an error.
	* fold-const.c (int_const_binop): New static function.
	(const_binop, size_binop): Call it.

Wed Aug 27 01:24:25 1997  H.J. Lu   (hjl@gnu.ai.mit.edu)

	* config/linux.h (CC1_SPEC): Define it only if not defined.

	* config/m68k/linux.h (CC1_SPEC): Undefine it before include
	<linux.h>

	* config/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined as 1 if
	USE_GNULIBC_1 is not defined.

	* config/rs6000/linux.h (DEFAULT_VTABLE_THUNKS): New.  Defined as 1.

	* config/sparc/linux.h (DEFAULT_VTABLE_THUNKS): New. Defined
	as 1 if USE_GNULIBC_1 is not defined.

Wed Aug 27 00:49:14 1997  Jeffrey A Law  (law@cygnus.com)

	* reorg.c (dbr_schedule): Allow current_function_return_rtx
	to be something other than a REG.
	* function.c (expand_function_end): Fix current_function_return_rtx
	if it was a pseudo.

	* t-freebsd (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS.
	* x-netbsd: Likewise
	* x-dgux (USER_H): Include EXTRA_HEADERS and LANG_EXTRA_HEADERS
	(INSTALL_HEADERS): Delete.
	* x-dguxbcs: Likewise.
	* x-hp3bsd44: Likewise
	* x-pa: Likewise.

Wed Aug 27 00:30:00 1997  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>

	* i386.md (pop): pop increments the stack pointer.
	(prologue_set_stack_ptr): New pattern.
	* i386.c (ix86_expand_prologue): Use prologue_set_stack_ptr
	instead of subsi3.

Tue Aug 26 18:50:32 1997  Jim Wilson  <wilson@cygnus.com>

	* reload.c (find_reloads, case '0'): Reject matching a non-offsettable
	address where an offsettable address is required.

Tue Aug 26 17:54:56 1997  Michael P. Hayes  (michaelh@ongaonga.chch.cri.nz>

	* loop.c (check_final_value): Don't miss a biv increment in a
	parallel.

Tue Aug 26 12:03:49 1997  Jim Wilson  (wilson@cygnus.com)

	* dwarfout.c (dwarfout_file_scope_decl, case TYPE_DECL): Check
	TYPE_DECL_IS_STUB instead of DECL_NAME.

Mon Aug 25 23:27:10 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* objc/Make-lang.in ($(OBJC_O)): Also depend on cc1obj.

Mon Aug 25 23:27:10 1997  Jim Meyering <meyering@eng.ascend.com>

	* objc/Make-lang.in ($(OBJC_O)): Also depend on $(GCC_PASSES).

Mon Aug 25 13:12:24 1997  Jeffrey A Law  (law@cygnus.com)

	* haifa-sched.c (find_pre_sched_live): Remove #if 0 code.
	(find_post_sched_live): Likewise.

	* haifa-sched.c (schedule_block): Remove old code to get arguments
	from hard regs into pseudos early.

Mon Aug 25 08:55:00 1997  Jeffrey A Law  (law@cygnus.com)

	* version.c: Bump for new snapshot.

	* local-alloc.c (update_equiv_regs): All the target to reject
	promotion of some REG_EQUAL to REG_EQUIV notes.
	* pa.h (DONT_RECORD_EQUIVALENCE): Define.

	* pa.c (secondary_reload_class): (mem (mem ... )) does not need
	secondary reloads.

	* pa.c (hppa_builtin_saveregs): Emit a blockage insn after the
	store of the argument registers.

Mon Aug 25 08:39:02 1997  Craig Burley  (burley@gnu.ai.mit.edu)

	* fold-const.c (multiple_of_p): New function.
	(fold): Turn some cases of *_DIV_EXPR into EXACT_DIV_EXPR.

Mon Aug 25 01:47:41 1997  Jeffrey A Law  (law@cygnus.com)

	* expr.h (insn_gen_function): Temporarily remove prototype.

Sun Aug 24 17:22:21 1997  Jim Wilson  <wilson@cygnus.com>

	* Makefile.in (install-info): Don't cd into srcdir.  Add srcdir to
	filenames.  Use sed to extract base filename for install.

Sat Aug 23 18:19:40 1997  John F. Carr  <jfc@mit.edu>

	* unroll.c (find_splittable_givs): Only share if two givs have the
	same add and multiply values.

Sat Aug 23 14:36:27 1997  Jim Wilson  <wilson@cygnus.com>

	* m68k/next.h (GO_IF_INDEXABLE_BASE): Fix typo in undef.
	* m68k/m68kemb.h (LIB_SPEC): Add missing comment end before it.

Sat Aug 23 00:18:22 1997  Jeffrey A Law  (law@cygnus.com)

	* pa.c (pa_reorg): Always put begin_brtab and end_brtab insns
	around branch tables.
	* pa.md (begin_brtab, end_brtab): Only emit the .begin_brtab
	and .end_brtab directives if TARGET_GAS.

Fri Aug 22 14:05:55 1997  Jim Wilson  <wilson@cygnus.com>

	* alias.c (true_dependence): Pass x_addr not x to varies.

	* acconfig.h (NEED_DECLARATION_CALLOC): Add.
	* configure.in: Add GCC_NEED_DECLARATION call for calloc.
	* rs6000/xm-rs6000.h (malloc, realloc, calloc, free): Delete
	declarations.
	* config.in, configure: Regenerate.

Thu Aug 21 23:52:16 1997  John F. Carr  <jfc@mit.edu>

	* alias.c (find_base_value): Improve handling of PLUS, MINUS, and
	LO_SUM.
	(record_set): Handle LO_SUM like PLUS.
	(init_alias_analysis): When following chains of base addresses,
	do not stop on reaching a hard register.

Thu Aug 21 20:17:37 1997  Jeffrey A Law  (law@cygnus.com)

	* version.c: Bump for new snapshot.

Thu Aug 21 17:28:00 1997  Jim Wilson  <wilson@cygnus.com>

	* alpha.h (ARCH_ASM_FILE_START): Define.
	(ASM_FILE_START): Use ARCH_ASM_FILE_START.
	* osf12.h, osf2or3.h (ARCH_ASM_FILE_START): Redefine to null string.

Thu Aug 21 10:22:19 1997  Jeffrey A Law  (law@cygnus.com)

	* Makefile.in (install-common): Put gcov comment at start of line.

Wed Aug 20 22:47:33 1997  Jeffrey A Law  (law@cygnus.com)

	* alias.c (init_alias_analysis): When simplifying the reg_base_value
	array, simplify entries for hard registers too.

Wed Aug 20 12:35:47 1997  Dave Love  <d.love@dl.ac.uk>

	* dwarf2.h (enum dwarf_call_frame_info): Remove trailing comma from
	list.

Wed Aug 20 11:58:33 1997  Jim Wilson  <wilson@cygnus.com>

	* stmt.c (start_cleanup_deferal, end_cleanup_deferal): Test
	block_stack before dereferencing it.

Wed Aug 20 11:57:11 1997  Michael Meissner  <meissner@cygnus.com>

	* rs6000.h (ISSUE_RATE): Define instead of MACHINE_issue_rate.

Tue Aug 19 17:10:56 1997  Jason Merrill  <jason@yorick.cygnus.com>

	* cplus-dem.c: Add 'extern' to prepends_underscore.

Tue Aug 19 09:34:57 1997  Jeffrey A Law  (law@cygnus.com)

	* haifa-sched.c (ISSUE_RATE): Renamed from MACHINE_issue_rate.
	(get_issue_rate): Delete.
	* pa.h (ISSUE_RATE): Define.

	* configure.in: Turn on haifa by default for the PA.
	* configure: Rebuilt.
	* pa.c (override_options): Accept -mschedule=7200 option.
	(pa_adjust_cost): No longer need to scale costs for newer
	processors.
	* pa.h (enum processor_type): Add PROCESSOR_7200.
	* pa.md: Revamp scheduling parameters to work better with
	haifa.  Add scheduling parameters for the 7200.

	* haifa-sched.c (move_insn): Reemit notes for SCHED_GROUP_P
	insns too.
	(schedule_block): When adjusting basic_block_{head,end}, account
	for movement of SCHED_GROUP_P insns too.

	* haifa-sched.c (debug_dependencies): Fix thinko.

	* Makefile.in (EXPECT, RUNTEST, RUNTESTFLAGS): Define.
	(site.exp, check, check-g++, check-gcc): New targets.

	* haifa-sched.c: Make lots of variables static.

Tue Aug 19 07:18:34 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)

	* expr.h, real.h: Finish prototyping.

Mon Aug 18 21:49:02 1997  Jim Wilson  <wilson@cygnus.com>

	* reload.c (find_reloads): Add code to convert RELOAD_FOR_OPADDR_ADDR
	reloads to RELOAD_FOR_OPERAND_ADDRESS reloads.
	* reload1.c: Undo bugfix from Aug 11.

Mon Aug 18 17:39:02 1997  Mike Meissner  <meissner@cygnus.com>

	* configure.in ({powerpc,rs6000}*-*-*, --with-cpu): Remove single
	quotes around the name.
	* configure: Regenerate.

Mon Aug 18 13:46:47 1997  Jim Wilson  <wilson@cygnus.com>

	* Makefile.in (stmp-multilib-sub): Fix typo in last change.

Thu Aug  7 10:33:13 1997  Manfred Hollstein  <manfred@s-direktnet.de>

	* Makefile.in (sub-makes): Pass the current value of LANGUAGES down
	to sub-makes to avoid building more passes than the user might have
	requested on the command line.

Sun Aug 17 15:42:17 1997  Dave Love  (d.love@dl.ac.uk)

	* configure.in: Expurgate `broken_install' (install is
 	autoconfed).

	* configure.lang: Substitute autoconfed ${INSTALL} (not currently
	relevant).

Sat Aug 16 01:08:12 1997  Jeffrey A Law  (law@cygnus.com)

	* loop.c (is_power_of_2, is_conditional_branch): Delete unused
	functions and declarations.
	(analyze_loop_iterations): Use condjump_p.
	(insert_bct): Likewise.  Use exact_log2.
	
Fri Aug 15 23:48:32 1997  Jeffrey A Law  (law@cygnus.com)

	* haifa-sched.c (find_post_sched_live): Call FREE_REG_SET as needed.
	(schedule_region): Likewise.
	(schedule_insns): Likewise.

	* PROJECTS: Update with Haifa stuff.

Fri Aug 15 12:49:56 1997  Jeffrey A Law  (law@cygnus.com)

	* version.c: Change the version string to look like:
	egcs-2.90.00 970814 (gcc2-970802 experimental).

	* loop.c (is_conditional_branch): Make definition match declaration.

	* gcc.c: Take out experimental snapshot warning message.

Fri Aug 15 13:43:39 1997  Michael Meissner  <meissner@cygnus.com>

	* haifa-sched.c (debug_dependencies): Use GET_NOTE_INSN_NAME to
	print out the names of the notes.  Print out the name of the insn
	that is not a note, and not an {,CALL_,JUMP_}INSN.

Wed Aug 13 01:03:37 1997  Doug Evans  <dje@canuck.cygnus.com>

	* configure.in (haifa configury): Fix typo.
	* configure: Regenerate.

Tue Aug 12 10:20:36 1997  Jeffrey A Law  (law@cygnus.com)

	* version.c: Bump version to "gcc-3.0.0 970802 experimental".

	* gcc.info*: Rebuilt.

	* COPYING.g77, README.g77: New files.
	* real.c (ereal_unto_float, ereal_unto_double): New functions.
	* real.h (ereal_unto_float, ereal_unto_double): Declare them.
	(REAL_VALUE_UNTO_TARGET_DOUBLE, REAL_VALUE_UNTO_TARGET_SINGLE): Define.

Mon Aug 11 14:50:55 1997  Jeffrey A Law  (law@cygnus.com)

	* Integrate Haifa instruction scheduler.
	* Makefile.in (ALL_CFLAGS): Add SCHED_CFLAGS.  Prefix all references
	to sched with $(SCHED_CFLAGS.
	* configure.in: Handle --enable-haifa.
	* configure: Rebuilt.
	* flags.h: Add new flags for haifa instruction scheduler.
	* genattrtab.c (expand_units): For haifa, don't subtract one
	when computing blockage.
	* toplev.h (flag_schedule_interblock): Haifa scheduler flag.
	(flag_schedule_speculative): Ditto.
	(flag_schedule_speculative_load): Ditto.
	(flag_schedule_speculative_load_dangerous): Ditto.
	(flag_schedule_reverse_before_reload): Ditto.
	(flag_schedule_reverse_after_reload): Ditto.
	(flag_branch_on_count_reg): Ditto.
	(f_options): Add Haifa switches.
	(main): Turn off some Haifa options if appropriate macro is
	defined.  Process Haifa switches.
	* unroll.c (iteration_info): No longer static, since Haifa
	scheduler uses it.
	(unroll_loop): Inform HAIFA scheduler about loop unrolling factor.
	* unroll.c (unroll_loop): Set loop_unroll_iter, loop_start_value.
	* loop.h (loop_unroll_factor, loop_number): Add HAIFA decls.
	* loop.h (loop_initial_value,loop_unroll_iter): New globals.
	* loop.c (loop_optimize): If HAIFA is defined, allocate additional
	storage for the Haifa scheduler.
	(mark_loop_jump): If HAIFA defined, set LABEL_OUTSIDE_LOOP_P and
	LABEL_NEXTREF.
	(strength_reduce): If HAIFA and HAVE_decrement_and_branch_on_count
	are defined, call analyze_loop_iterations and insert_bct to use
	countdown loops.
	(record_giv): Refine test for jumps out of loops if HAIFA is
	defined.
	(analyze_loop_iterations): New function to identify if we can use
	a countdown loop.
	(insert_bct): Insert countdown loop.
	(instrument_loop_bct): Low level code to insert countdown loop.
	(loop_number): Calculate UID of loop.
	(indirect_jump_in_function_p): Return true if an indirect jump is
	in the function.
	(is_power_of_2): Return true if value is a power of 2.
	(is_conditional_branch): Return true if insn is a conditional
	jump.
	(fix_bct_param): Process -fbct-{min,max}-N switches.
	(check_bct_param): Return true if loop should be instrumented.
	* loop.c (loop_initial_value,loop_unroll_iter): New globals.
	(loop_optimize): Initialize.
	(get_condition_for_loop): Ditto.
	* loop.c (strength_reduce): Inside of code that uses #ifdef
	HAVE_decrement_and_branch_on_count code, test it to make sure the
	condition is true.
	(instrument_loop_bct): Ditto.
	* haifa-sched.c: New file.
	

	* Integrate regmove pass.
	* Makefile.in (OBJS): Add regmove.o
	(regmove.o): Add dependencies.
	* flow.c (find_use_as_address): No longer static.
	* rtl.h (find_use_as_address): Declare.
	* toplev.c (regmove_dump, flag_regmove): Define.
	(f_options): Add -fregmove.
	(regmove_dump_file, regmove_time): Define.
	(fatal_insn): Close the regmove dump file.
	(compile_file): Initialize regmove_time; open/close the regmove dump
	file as needed.  Print regmove time as needed.
	(rest_of_compilation): Run regmove pass if requested, dump
	RTL after regmove if requested.
	(main): If -O2 or more, turn on regmove.  Handle dump switches.
	* regmove.c: New file.
	
Mon Aug 11 14:15:02 1997  Jeffrey A Law  (law@cygnus.com)

	* Integrate tlink patch from jason@cygnus.com
	* gcc.c (SWITCH_TAKES_ARG): Add 'V', 'B' and 'b'.
  	(process_command): Increment n_switches for them.  Don't discard
 	their args.  Validate them.
	(main): Escape " marks when creating COLLECT_GCC_OPTIONS.
	From Rohan Lenard.
	(process_command): Set include_prefixes from COMPILER_PATH.
	(main): Set COLLECT_GCC_OPTIONS sooner.
	* confiugre.in: Link ../ld/ld.new to collect-ld rather than real-ld.
	* tlink.c, hash.c, hash.h: New files.
	* Makefile.in (USE_COLLECT2): Always use collect2.
	(collect2): Depend on and link in hash.o and tlink.o.
	(tlink.o, hash.o): Add dependencies.

Mon Aug 11 10:04:49 1997  Jeffrey A Law  (law@cygnus.com)

	* Integrate alias analysis changes from jfc@mit.edu
	* Makefile.in (OBJS): Add alias.o
	(alias.o): Add dependencies.
	* alias.c: New file.
	* sched.c: Remove alias analysis code.  It lives in alias.c now.
	(sched_analyze_2): Add new arguments to true_dependence.
	(schedule_insns): Always call init_alias_analysis.
	* calls.c (expand_call): Note calls to malloc, calloc, and realloc;
	mark return value from such functions as a pointer and keep track of
	them for alias analysis.  If a return value from a function is a
	pointer, mark it as such.
	* combine.c (distribute_notes): Handle REG_NOALIAS.
	* cse.c (struct write_data): Delete.  No longer needed.
	(invalidate): Don't call set_nonvarying_address_components anymore.
	Use true_dependence to decide if an entry should be removed from
	the hash table.
	(invalidate_memory): Remove WRITES argument, simplify appropriately.
	Fix all callers.
	(note_mem_written): Similarly for WRITE_PTR argument.
	(invalidate_from_clobbers): Similarly for W argument.
	(invalidate_for_call): Remove memory elements from the hash table.
	(refers_to_mem_p, cse_rtx_addr_varies_p): Deleted.
	(cse_rtx_varies_p): New function.  Derived from old
	cse_rtx_addr_varies_p.
	(cse_insn): Remove WRITES_MEMORY and INIT variables and all references.
	Don't call note_mem_written anymore.  Stack pushes invalidate the stack
	pointer if PUSH_ROUNDING is defined.  No longer need to call
	cse_rtx_addr_varies_p to decide if a MEM should be invalidated.
	(skipped_writes_memory): Remove variable.
	(invalidate_skipped_set): Simplify and wewrite to use invalidate_memory.
	(invalidate_skipped_block): Simplify for new alias analysis code.
	(cse_set_around_loop): Likewise.
	(cse_main): Call init_alias_analysis.
	* flags.h (flag_alias_check, flag_argument_noalias): Declare.
	* toplev.c (flag_alias_check, flag_argument_noalias): Define.
	(f_options): Add new alias checking arguments.
	(main): Set flag_alias_check when optimizing.
	* local_alloc (validate_equiv_mem_from_store): Add new arguments
	to true_dependence.
	(memref_referenced_p): Likewise.
	* loop.c (NUM_STORES): Increase to 30.
	(prescan_loop): Only non-constant calls set unknown_address_altered.
	(invariant_p): Add new arguments to true_dependence.
	(record_giv): Initialize unrolled and shared fields.
	(emit_iv_add_mult): Call record_base_value as needed.
	* loop.h (struct induction): Add unrolled and shared fields.
	* unroll.c  (unroll_loop): Call record_base_value as needed.
	(copy_loop_body): Likewise.
	(final_biv_value): Likewise.
	(final_giv_value): Likewise.
	(find_splittable_regs): Likewise.  Only create one new pseudo
	if we have multiple address GIVs that were combined with the same
	dst_reg GIV.  Note when a new register is created due to unrolling.
	* rtl.c (reg_note_name): Add REG_NOALIAS.
	* rtl.h (enum reg_note): Similarly.
	(rtx_varies_p, may_trap_p, side_effects_p): Declare.
	(volatile_refs_p, volatile_insn_p, remove_note): Likewise.
	(note_stores, refers_to_regno_p, reg_overlap_mentioned_p): Likewise.
	(true_dependence, read_dependence, anti_dependence): Likewise.
	(output_dependence, init_alias_analysis, end_alias_analysis): Likewise.
	(mark_user_reg, mark_reg_pointer): Likewise.


	* Integrate reload bugfix from Wilon which enables the PA port
	to bootstrap again.
	* reload1.c (reload): Sum needs for both OPADDR_ADDR and and
	OPERAND_ADDRESS when computing how many registers an insn needs.
	(reload_reg_free_p): OPADDR_ADDR and OPERAND_ADDRESS reloads do
	conflict.
	(reload_reg_free_before_p): Treat OPERAND_ADDRESS reloads just like
	OPADDR_ADDR reload.
	(reload_reg_reaches_end_p): For RELOAD_FOR_OPADDR_ADDR insns, registers
	in reload_reg_use_in_op_addr do not reach the end.
	do not reach the end.
	(reloads_conflict): RELOAD_FOR_OPADDR_ADDR conflicts with
	RELOAD_FOR_OPERAND_ADDRESS.

Sun Aug 10 12:00:20 1997  Jeffrey A Law  (law@cygnus.com)

	* egcs project officially starts.