Commit | Line | Data |
---|---|---|
82f08e1a C |
1 | Thu May 10 22:48:31 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) |
2 | ||
3 | * rtl.def (DEFINE_DELAY): Change description to describe annulling. | |
4 | ||
5 | * genattr.c (main): Write out definitions for annulling, if present. | |
6 | ||
7 | * genattrab.c (expand_delays): Build internal attributes for | |
8 | which insns can be annulled in a delay slot. | |
9 | (gen_delay): Validate number of elements in DEFINE_DELAY list. | |
10 | (write_eligible_delay): Write out routines for validating annulled | |
11 | insns as well as those in normal delay slot. | |
12 | (main): Call write_eligible_delays to output annulling information, | |
13 | if it exists for this machine. | |
14 | ||
15 | * out-m68k.c (not_sp_operand): New function. | |
16 | * m68k.md (andsi3): Don't allow sp as ourput to avoid reload | |
17 | inefficiency. | |
18 | ||
19 | * calls.c (struct arg_data): Delete field STORED; add fields | |
20 | PASS_ON_STACK and SAVE_AREA. | |
21 | (prepare_call_address): Static chain value can't have QUEUED. | |
22 | (expand_call): Rework to support additional calling sequence options. | |
23 | ||
24 | Major changes include: | |
25 | Call FUNCTION_ARG_PASS_BY_REFERENCE to determine whether an | |
26 | object should be passed by invisible reference. | |
27 | Handle arguments passed both on stack and in a register; this can be | |
28 | used to allow arguments that are hard to compute directly into | |
29 | registers to be passed. | |
30 | Support option (ACCUMULATE_OUTGOING_ARGS) where the largest amount | |
31 | of stack for outgoing arguments is computer and pushed during the | |
32 | function prologue. Stack space usage is tracked and any location | |
33 | that would need to be reused will be saved and restored. | |
34 | If preallocating arg block, compute address where each arg will be | |
35 | placed and pass it as target to expand_expr. | |
36 | ||
37 | Other changes: | |
38 | Use virtual regs to see if structure value address isn't stable. | |
39 | If inlined, return TARGET if TARGET and TEMP are equivalent. | |
40 | UNNAMED_ARGS_IN_REGISTERS is redundant with the NAMED parameter to | |
41 | FUNCTION_ARG and has been deleted. | |
42 | Use virtual_outgoing_stack_rtx instead of FIRST_PARM_CALLER_OFFSET. | |
43 | Use locate_and_pad_parm to compute any needed padding for argument. | |
44 | If REG_PARM_STACK_SPACE is defined, allocate backing stack locations | |
45 | for args passed in registers; these are not included in the length | |
46 | of stack space required unless OUTGOING_REG_PARM_STACK_SPACE is also | |
47 | defined. | |
48 | When precomputing register parameters, can stop computation when we | |
49 | obtain any rtx, not necessarily a register. | |
50 | No longer need code to protect data written below bottom of stack; | |
51 | this is taken care of by preexpanding calls in argument. | |
52 | target_for_arg no longer needed; its function is performed by | |
53 | store_one_arg. | |
54 | Always copy function return result to our target since they cannot | |
55 | possibly be the same. | |
56 | (target_for_arg): No longer used. | |
57 | (store_one_arg): Save and restore in-use argument list location. | |
58 | Support args passed both in register and on stack. | |
59 | No need for explicit code for preallocated area; now pass location | |
60 | as target to expand_expr; only copy if result in different place. | |
61 | Put sequence point after expanding one value. | |
62 | ||
63 | * cse.c (struct write_data): Add bit to indicate stack pointer changed. | |
64 | (canon_hash): Allow recording of stack pointer. | |
65 | (cse_insn): Indicate stack pointer invalidated by subroutine calls. | |
66 | Pass stack push and pop operations to note_mem_written. | |
67 | Process stack pointer assignment as normal operation. | |
68 | Finish change of April 7th that excludes ap and fp from being marked | |
69 | as clobbered by calls. Also exclude sp; if it is clobbered by a | |
70 | call, an explicit CLOBBER will be written. | |
71 | (note_mem_written): Look for adjustment of stack pointer. | |
72 | (invalidate_from_clobbers): Invalidate stack pointer, if required. | |
73 | ||
74 | * emit-rtl.c (gen_inline_header_rtx): Add field for outgoing args size. | |
75 | (copy_rtx_if_shared): Check for any virtual register instead of frame | |
76 | or argument pointer. | |
77 | (init_emit): Start normal pseudos after virtual pseudos. | |
78 | Copy the unique virtual regs into regno_reg_rtx. | |
79 | (init_emit_once): Incoming and outgoing static chain can be the same; | |
80 | inlining of nested functions won't need the distinction. | |
81 | Create unique copies of virtual registers. | |
82 | ||
83 | * explow.c (memory_address): Don't worry about refs to fp or ap; | |
84 | force_reg knows how to handle them correctly. | |
85 | (fix_lexical_addr): Moved to function.c | |
86 | (adjust_stack, anti_adjust_stack): Do nothing for adjustment of zero. | |
87 | (allocate_dynamic_stack_space): New function copied from | |
88 | expand_builtin. Handle STACK_POINTER_OFFSET via | |
89 | virtual_stack_dynamic_rtx. When STACK_POINTER_OFFSET is defined, | |
90 | perform alignment by always reserving a multiple of STACK_BOUNDARY | |
91 | stack bits. This avoids concern about whether sp itself or the top of | |
92 | stack needs to be aligned; if we start with an aligned stack, we keep | |
93 | it aligned. | |
94 | (round_push): Use ADD and AND rather than DIV and MULT. | |
95 | ||
96 | * expr.c (init_expr): Initialize some more vars. | |
97 | (push_block): Use virtual_outgoing_args_rtx so don't need | |
98 | STACK_POINTER_OFFSET here. | |
99 | Merge extra and size more efficiently; no need to call force_operand | |
100 | since memory_address is called. | |
101 | (emit_push_insn): Pass type for FUNCTION_ARG_PADDING. | |
102 | Use REG_PARM_STACK_SPACE instead of FIRST_PARM_CALLER_OFFSET. | |
103 | To see if must copy address, check if it is a virtual register that | |
104 | will be mapped to sp; only need check if not accumulating space | |
105 | space for outgoing parms. | |
106 | Ignore EXTRA if argument block has already been allocated. | |
107 | (emit_library_call): Major rework to support calling sequences similar | |
108 | to expand_call in calls.c, but only support a very small subset of | |
109 | the conventions; abort if something outside our subset occurs. | |
110 | Abort if incorrect mode is passed; we can't convert here since we don't | |
111 | know the signedness. | |
112 | (store_field): Check for virtual registers instead of hard registers | |
113 | when seeing if stable. | |
114 | (safe_from_p): Location in outgoing stack area is known to be safe. | |
115 | (expand_builtin, BUILT_IN_ALLOCA): Use allocate_dynamic_stack_space. | |
116 | ||
117 | * expr.h: Define current_function_outgoing_args_size and | |
118 | locate_and_pad_parm; delete definition of get_structure_value_addr. | |
119 | (ARGS_SIZE_RTX): Always return a valid operand. | |
120 | (ARGS_SIZE_TREE): New macro. | |
121 | (FUNCTION_ARG_PADDING): Accept MODE and TYPE like other | |
122 | FUNCTION_ARG_... macros. | |
123 | (FUNCTION_ARG_BOUNDARY): Provide default for new macro. | |
124 | (MUST_PASS_IN_STACK): New macro. | |
125 | (allocate_dynamic_stack_space): New function. | |
126 | * tm-3b1.h, tm-3b1g.h, tm-apollo68.h, tm-crds.h, tm-mot3300.h: | |
127 | Change definition of FUNCTION_ARG_PADDING to use TYPE instead of SIZE. | |
128 | ||
129 | * function.c (current_function_outgoing_args_size): New var. | |
130 | (arg_pointer_save_area, virtuals_instantiated): Likewise. | |
131 | (invalid_stack_slot): No longer used. | |
132 | (push_function_context, pop_function_context): Save and restore | |
133 | outgoing args size and arg pointer save area. | |
134 | No longer save or restore invalid_stack_slot. | |
135 | (pop_function_context): Set up variables whose value is constant | |
136 | throughout rtl generation. | |
137 | (get_frame_size): No longer adjust by STARTING_FRAME_OFFSET. | |
138 | (assign_stack_local): Use virtual_stack_vars_rtx instead of fp | |
139 | until virtuals have been instantiated, then use fp. | |
140 | Remove reference to obsolete invalid_stack_slot. | |
141 | Can no longer be called with size == 0. | |
142 | (assign_outer_stack_loc): Use virtual_stack_vars_rtx instead of fp. | |
143 | Remove references to obsolete invalid_stack_slot. | |
144 | Push to obstack of containing function when allocating rtx. | |
145 | (put_var_into_stack): Only switch obstacks around making of | |
146 | queue entry. | |
147 | Replace call to parm_stack_loc with reference to info in proper | |
148 | function. | |
149 | (fixup_stack_1): Handle any virtual register instead of handling | |
150 | just fp. | |
151 | (instantiate_virtual_regs, instantiate_virtual_regs_1): New functions. | |
152 | (use_variable, use_variable_after): Check for virtual register | |
153 | instead of checking against ap and fp. | |
154 | (parm_stack_loc): Function deleted. | |
155 | (assign_parms): No longer need internal_arg_pointer. | |
156 | Accept SECOND_TIME argument that suppresses rtl generation and | |
157 | assignments to DECL_RTL. Used by integrate.c to recompute vars. | |
158 | Don't use FIRST_PARM_OFFSET here; use virtual_incoming_args_rtx. | |
159 | Replace test for nonstable incoming arg pointer. | |
160 | If structure value address is treated as the first argument, add | |
161 | it into the list of arguments; this means we can have a RESULT_DECL | |
162 | in with the PARM_DECL's. | |
163 | DECL_OFFSET is no longer needed by integrate.c. | |
164 | Handle args passed by invisible reference. | |
165 | Support new macro, SETUP_INCOMING_VARARGS, to save all registers used | |
166 | for args including and beyond those for the current arg. Used for | |
167 | non-ANSI varargs. | |
168 | Pass locate_and_pad_parm data it needs to handle reg->stack boundary | |
169 | if register parameters have assigned stack space. | |
170 | If we received the function's incoming structure pointer as a | |
171 | normal argument, update DECL_RTL of DECL_RESULT. | |
172 | Round total argument size if required; similarly, always use at | |
173 | least REG_PARM_STACK_SPACE bytes if defined. | |
174 | (locate_and_pad_parm): Do not need PARM. | |
175 | Major rework to do much of the job of aligning and padding stack | |
176 | location. Now a void function wich is passed pointers to struct | |
177 | args_size vars that are set to the argument position, size, and | |
178 | initial offset. | |
179 | Accept flag denoting if a parm was passed in a register and also | |
180 | the current function declaration. | |
181 | If register parameters are assigned stack locations and there is a | |
182 | minimum required size for the area assigned to register parameters, | |
183 | pad the stack position when a parameter not assigned to a register | |
184 | is encountered. | |
185 | Remove redundant code in MAX_PARM_BOUNDARY case. | |
186 | (lookup_static_chain): Use virtual_stack_vars_rtx instead of fp. | |
187 | (fix_lexical_addr): Move from explow.c. | |
188 | If referencing variable that lives in the incoming argument area | |
189 | of its parent and a separate ap is required, allocate a save area in | |
190 | the parent for it and use it here. If no separate ap is require, | |
191 | compute offset between ap and fp. | |
192 | (trampoline_address): No need to push obstacks here. | |
193 | (init_function_start): Initialize new vars; delete obsolete vars. | |
194 | (expand_function_start): Don't need to handle case where incoming | |
195 | structure return address is passed as hidden parameter here; now done | |
196 | completely in assign_parms. | |
197 | (expand_function_end): Save ap if a save area was made for it. | |
198 | Set REG_FUNCTION_VALUE_P when copying address of returned | |
199 | structure. | |
200 | Be consistent in use of FUNCTION_... macros vs. hard_function_value. | |
201 | ||
202 | * function.h (outgoing_args_size, arg_pointer_save_area): New fields. | |
203 | (invalid_stack_slot): Obsolete, deleted. | |
204 | ||
205 | * integrate.c: Major rework and simplification. | |
206 | Split up vars into two classes. Those used for expand_inline_function | |
207 | and children are now part of struct inline_remap. Most of the others | |
208 | are for save_for_inline and its children. | |
209 | (function_cannot_inline_p): The only type of arguments that will | |
210 | cause us to reject inlining are variable-sized arguments; also | |
211 | reject functions that return variable-sized objects. | |
212 | For now, don't inline a nested function. We'll support this shortly. | |
213 | Use current_function_returns_pcc_struct instead of duplicating test. | |
214 | (save_for_inline): No need to set TREE_VOLATILE for parms. | |
215 | Save outgoing args size in header. | |
216 | Use unique copy of virtual reg rtx's. | |
217 | Handle any required fixups for INSN_LIST forward-references. | |
218 | Don't bother resetting dead static vars when we are done. | |
219 | Need not save current_function_pretend_args_size. | |
220 | (copy_for_inline): First copy all insns, then all REG_NOTES to avoid | |
221 | problems with forward references. | |
222 | (struct inline_remap): Move all previously-static vars used by | |
223 | expand_inline_function and children into this structure. This avoids | |
224 | potential problems due to recursive calls to expand_inline_function. | |
225 | (expand_inline_function and children): Allocate a struct inline_remap | |
226 | and pass to all children. | |
227 | (expand_inline_function): Rework parameter handling by looking at | |
228 | DECL_RTL and using it to determine what types of mappings need to be | |
229 | done. Support objects passed by invisible reference. Put any | |
230 | constant memory addresses into const_equiv_map. parm_map is no longer | |
231 | used. | |
232 | Likewise for the return value: consult DECL_RTL (DECL_RESULT)). | |
233 | Don't allocate space for called function's frame until referenced. | |
234 | No longer need special handling for insn following CALL. | |
235 | Ignore USE whose argument has REG_FUNCTION_VALUE_P true. | |
236 | Ignore setting function register if we don't have a mapping for it | |
237 | (e.g., we are ignoring the result of the call). | |
238 | Look at new SET_SRC for constant equivalences. Some new ones may | |
239 | have resulted from constant folding. | |
240 | Pass both new and old rtx to try_constants. | |
241 | Discard NOTE_INSN_DELETED notes. | |
242 | Copy insns first, then REG_NOTES, to avoid problems with forward refs. | |
243 | (copy_parm_decls): Compute new address of parameter using the | |
244 | constant equivalence map, which will contain the remapping of | |
245 | the frame and argument pointer. | |
246 | (copy_decl_tree): Likewise. | |
247 | (copy_rtx_and_substitute): Handle references to frame and argument | |
248 | pointers by allocating a space equal to the size of the frame and | |
249 | incoming arguments, respectively, and setting a pseudo to point to | |
250 | the start of each area. Set up an equivalence in CONST_EQUIV_MAP | |
251 | between fp or ap and the actual address. Return the pseudo. | |
252 | Don't need to deal with possibility of (SUBREG (CONST_INT)) since | |
253 | we are only replacing register with other registers here. | |
254 | No longer need to special-case PLUS and MEM; subst_constants will do | |
255 | this work. | |
256 | Update detection of sets of ap and fp. | |
257 | (try_constants, subst_constants): Accept old and new rtx. They will | |
258 | be isomorphic, with only register numbers changed. Use old rtx to | |
259 | look up register in CONST_EQUIV_MAP and new rtx for substitution. | |
260 | Correctly handle SUBREG of CONST_INT and CONST_DOUBLE. | |
261 | Fix typos in handling of PLUS. | |
262 | (access_parm_map, copy_address): Delete functions. | |
263 | (try_fold_cc0): Handle both compare and test. | |
264 | (fold_out_cnst_cc0): Rework to simplify and remove dubious cases. | |
265 | (output_inline_function): Call assign_parms to perform any needed | |
266 | setups. | |
267 | Need not restore pretend arg size (will be computed by assign_parms). | |
268 | Restore outgoing argument size. | |
269 | ||
270 | * output.h (current_function_outgoing_args_size): New var. | |
271 | ||
272 | * rtl.h (OUTGOING_ARGS_SIZE): New field in INLINE_HEADER. | |
273 | (PRETEND_ARGS_SIZE): No longer needed. | |
274 | (virtual_..., VIRTUAL_...): Define virtual register numbers and rtx. | |
275 | ||
276 | * rtlanal.c (rtx_equal_p): Update comment on use of | |
277 | REG_FUNCTION_VALUE_P. | |
278 | ||
279 | * stmt.c (expand_goto): Just restore fp; non-local goto handler | |
280 | will restore ap if needed. | |
281 | (expand_return): Don't use STARTING_FRAME_OFFSET here. | |
282 | (expand_end_bindings): Adjust fp in nonlocal-goto handler. If needed, | |
283 | reload ap from its save area in the frame; allocate save area if none. | |
284 | (expand_decl): Use new function allocate_dynamic_stack_space. | |
285 | ||
286 | * toplev.c (rest_of_compilation): Instantiate virtual registers. | |
287 | Clear rtx_equal_function_value_matters immediately after possibly | |
288 | saving current routine for inlining. | |
289 | ||
290 | * stupid.c (stupid_life_analysis): Don't try to allocate virtual | |
291 | registers (which don't exist any more). | |
292 | ||
293 | Thu May 10 13:59:11 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
294 | ||
295 | * reload1.c (modes_equiv_for_class_p): Don't compare HARD_REGNO_NREGS. | |
296 | ||
297 | * combine.c (subst): Simplify | |
298 | (sign_extend:M (subreg:N (ashiftrt:M (sign_extend:M (any:N ...))))). | |
299 | ||
300 | * fixincludes: Verify that a link leads back to /usr/include | |
301 | by checking name of dir it arrives in. If so, use rest of dirname | |
302 | as target for new link. | |
303 | ||
304 | * Makefile.in (tmpgnulib): Put dummy entry in loop with LIBFUNCS_EXTRA | |
305 | so loop is never null. Then ignore that entry when it comes up. | |
306 | ||
307 | * gcc.c (default_compilers): Add explicit suffix to arg of -dumpbase. | |
308 | ||
309 | Tue May 8 13:54:37 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
310 | ||
311 | * tm-ultrix.h: New file. | |
312 | ||
313 | Mon May 7 18:47:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
314 | ||
315 | * i386.md (test... recognizers): Output symbolic constant first. | |
316 | ||
317 | Sun May 6 22:51:06 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
318 | ||
319 | * function.c (fixup_memory_subreg): Make a sequence if -fforce-addr. | |
320 | ||
321 | * fixincludes: When going to directory of link name, don't lose | |
322 | if name has no directory. | |
323 | Move the code to fix netinet/ip.h; was in the middle of something. | |
324 | ||
325 | * Makefile.in (tmpgnulib): Test LIBFUNCS_EXTRA for nonempty. | |
326 | ||
327 | Sun May 6 08:29:27 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
328 | ||
329 | * Makefile.in (LIBFUNCS): Remove extraneous "\". | |
330 | ||
331 | * Makefile.in (stamp-gnulib2): Move "-" to proper line. | |
332 | ||
333 | * gnulib2.c (clear_cache): Ignore routine unless INSN_CACHE_SIZE | |
334 | is defined (avoids cpp-detected divide-by-zero). | |
335 | ||
336 | * expr.c (safe_from_p): Don't blow up when passed a null tree. | |
337 | ||
338 | * varasm.c (get_pool_size): New function to return constant pool size. | |
339 | ||
340 | Fri May 4 16:11:54 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
341 | ||
342 | * expr.c (safe_from_p): If EXP has some rtx, just check it. | |
343 | Handle TREE_LIST, RTL_EXPR, and WITH_CLEANUP_EXPR. | |
344 | Note that CALL clobbers memory and hard registers. | |
345 | Look at enclosed object for SUBREG, but SUBREG of a hard reg is unsafe. | |
346 | ||
347 | * expr.c (store_constructor): Now that safe_from_p has been applied | |
348 | to the target, need not avoid hard register targets. | |
349 | Abort if called with neither ARRAY_TYPE or RECORD_TYPE. | |
350 | ||
351 | * reload.c (find_equiv_reg): Handle goal of (plus (sp) (const)). | |
352 | ||
353 | * Makefile.in (STAGESTUFF): Include hard-params. | |
354 | ||
355 | Fri May 4 15:33:22 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
356 | ||
357 | * gcc.c (add_prefix): New arg WARN. Record in prefix_list. | |
358 | (main): Calls changed. Pass nonzero for -B prefixes. | |
359 | Later, call unused_prefix_warning. | |
360 | (unused_prefix_warning): Warn about prefixes never used. | |
361 | ||
362 | Thu May 3 16:56:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
363 | ||
364 | * print-tree.c (print_node): Align the `align' line with the others. | |
365 | ||
366 | * expmed.c (store_bit_field): Maximum size for loading mem struct | |
367 | into reg comes from the mode of the value to be stored. | |
368 | Alignment is no restriction if it matches BIGGEST_ALIGNMENT. | |
369 | Always do the real work in SImode if couldn't use MEM. | |
370 | (extract_bit_field): Likewise. | |
371 | ||
372 | * combine.c (subst): Handle (sign_extend:M (subreg (sign_extract:M))) | |
373 | on big-endian machine like corresponding zero_extend case. | |
374 | ||
375 | * combine.c (try_combine): Use rtl_equal_p instead of == when | |
376 | testing for sources and destinations that match. | |
377 | ||
378 | * pyr.md (bitw recognizer): Set CC_NO_OVERFLOW. | |
379 | ||
380 | Thu May 3 13:03:02 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
381 | ||
382 | * expr.c (expand_expr, case COND_EXPR): Can always use original | |
383 | target if specified. | |
384 | In "X ? A + B : A" case, use safe_from_p to see if target conflicts | |
385 | with B. | |
386 | ||
387 | * cse.c (cse_insn): Don't rewrite (set REG0 REG1) if REG1 is a hard | |
388 | register even if is REG0 cheaper. | |
389 | ||
390 | Thu May 3 12:04:19 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
391 | ||
392 | * reload1.c (reload): Handle multiple size groups for one class. | |
393 | ||
394 | * stdarg.h: Typo in conditional. | |
395 | ||
396 | Wed May 2 16:34:25 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
397 | ||
398 | * tm-sun3.h (CC1_SPEC): Ignore -target. | |
399 | (WORD_SWITCH_TAKES_ARG): Define it. | |
400 | * tm-sparc.h (CC1_SPEC): Ignore -target and -dalign. | |
401 | (WORD_SWITCH_TAKES_ARG): Define it. | |
402 | ||
403 | Wed May 2 09:38:33 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
404 | ||
405 | * cse.c (cse_insn): Always replace registers with oldest equivalent, | |
406 | including the case when the destination is present in the source. | |
407 | ||
408 | Tue May 1 15:55:52 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
409 | ||
410 | * gnulib2.c (__adddi3, __subdi3): New, simpler algorithm. | |
411 | ||
412 | Tue May 1 14:48:03 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
413 | ||
414 | * Makefile.in: Insert "else true;" in *_ALLOCA macros. | |
415 | ||
416 | * stor-layout.c (mode_for_size): No longer static. | |
417 | Accept LIMIT parameter to limit mode to MAX_FIXED_MODE_SIZE. | |
418 | (layout_decl, layout_type): Pass appropriate limit parameter to | |
419 | mode_for_size. | |
420 | ||
421 | Tue May 1 13:09:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
422 | ||
423 | * stmt.c (assign_parms): Don't make entry_parm and stack_parm valid. | |
424 | Leave them explicit stack slots. | |
425 | * explow.c (validize_mem): Copy it, don't alter it. | |
426 | ||
427 | * out-m68k.c (standard_68881_constant_p): Handle HOST_WORDS_BIG_ENDIAN. | |
428 | ||
429 | * integrate.c (save_for_inline): Copy reg notes after all insns. | |
430 | ||
431 | * combine.c (subst): When checking reg_last_set, verify nonzero. | |
432 | ||
433 | * gcc.c (default_compilers): Use %b, not %i, after -dumpbase. | |
434 | ||
435 | * stor-layout.c (make_unsigned_type): Change like make_signed_type. | |
436 | ||
437 | Tue May 1 07:36:21 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
438 | ||
439 | * tm-m68k.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Allocate space | |
440 | for local variables even if no frame pointer; adjust size to account | |
441 | for place where old frame pointer would have been placed. | |
442 | (INITAL_FRAME_POINTER_OFFSET): Add frame size instead of subtracting | |
443 | it and perform adjustment described above. | |
444 | ||
445 | * expr.c (validate_subtarget): Deleted. | |
446 | (expand_expr): Replace calls to validate_subtarget with safe_from_p. | |
447 | ||
448 | Mon Apr 30 01:39:14 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
449 | ||
450 | * Makefile.in (install-headers): Simplify loop by cd'ing to srcdir. | |
451 | ||
452 | * stor-layout.c (layout_type): Get alignment of all scalar types | |
453 | from the mode. | |
454 | (make_signed_type): Get rid of ptr_size_node, function_size_node. | |
455 | * tm-*.h (POINTER_BOUNDARY): Deleted. | |
456 | ||
457 | * c-typeck.c (build_unary_op): For ADDR_EXPR of COMPONENT_REF, | |
458 | mark the PLUS_EXPR constant if appropriate. | |
459 | (parser_build_binary_op): Record C_SET_EXP_ORIGINAL_CODE here. | |
460 | (build_binary_op): Not here. | |
461 | ||
462 | * fold-const.c (size_int): Make arg unsigned. | |
463 | ||
464 | * varasm.c (output_addressed_constants): Fixed typo. | |
465 | ||
466 | * cccp.c (macarg1): `\' not special outside strings. | |
467 | ||
468 | * c-typeck.c (build_unary_op): In increment ops, | |
469 | typo checking for ptr to void/function. | |
470 | Check original type for this and for amount of increment. | |
471 | ||
472 | Sat Apr 28 16:43:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
473 | ||
474 | * c-typeck.c (build_indirect_ref): Error if target is incomplete type. | |
475 | ||
476 | Fri Apr 27 13:56:22 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
477 | ||
478 | * reload1.c (order_regs_for_reload): Count multi-word pseudos right. | |
479 | ||
480 | Thu Apr 26 17:52:17 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
481 | ||
482 | * cccp.c (handle_directive): Don't pass directive through if no_output. | |
483 | ||
484 | * c-parse.y (yylex): Large hex constants are signed if -traditional. | |
485 | ||
486 | Tue Apr 24 13:57:22 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
487 | ||
488 | * i860.md, m88k.md: Add missing = in some output constraints. | |
489 | ||
490 | * tm-ns32k.h (POINTER_BOUNDARY): Now 32. | |
491 | ||
492 | * out-*.c (output_move_double): Use split_double. | |
493 | * final.c (split_double): New function, handles byte-order differences. | |
494 | ||
495 | * stmt.c (expand_decl): Check size for integer, not "constant". | |
496 | * stor-layout.c (layout_decl, layout_type): Likewise. | |
497 | * c-decl.c (finish_decl): Likewise. | |
498 | * c-typeck.c (digest_init): Likewise. | |
499 | * varasm.c (assemble_variable, output_constructor): Likewise. | |
500 | (decode_addr_const): Distinguish getting rtl by code alone. | |
501 | (output_addressed_constants): No need to abort. | |
502 | In ADDR_EXPR case, check TREE_CODE_CLASS. | |
503 | ||
504 | * c-tree.h (C_DECLARED_LABEL_FLAG): New flag. | |
505 | * c-parse.y (label declarations): Set it. | |
506 | * c-decl.c (pop_label_level, lookup_label): Use it. | |
507 | ||
508 | * expr.c (string_constant): Accept variable offsets. | |
509 | (expand_expr): Check for explicit integers, not constants, in sizes. | |
510 | (safe_from_p): No need to check TREE_CONSTANT. | |
511 | ||
512 | * Makefile.in (prefix): Now replaces /usr/local instead of adding on. | |
513 | ||
514 | Mon Apr 23 02:01:11 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
515 | ||
516 | * cplus-tree.h (DECL_FRIENDLIST): Use DECL_INITIAL. | |
517 | ||
518 | * expr.c (expand_assignment): Use expr_size to compute size. | |
519 | ||
520 | Sun Apr 22 21:53:55 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
521 | ||
522 | * expr.c (expand_assignment, expand_expr): Check for COMPONENT_REF | |
523 | before testing DECL_BIT_FIELD. | |
524 | ||
525 | * stor-layout.c (convert_units): Deleted. All calls eliminated. | |
526 | ||
527 | * TREE_CONSTANT renamed from TREE_LITERAL. | |
528 | * TYPE_READONLY split off from TREE_READONLY. | |
529 | * TREE_SIDE_EFFECTS renamed from TREE_VOLATILE. | |
530 | * TYPE_VOLATILE split off from TREE_VOLATILE/TREE_THIS_VOLATILE. | |
531 | ||
532 | Sun Apr 22 15:26:50 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
533 | ||
534 | * loop.c (strength_reduce): Avoid problems in biv elimination by not | |
535 | being forced to use giv's that have complex new_reg values while the | |
536 | underlying giv is marked maybe_dead; clear maybe_dead in this case. | |
537 | ||
538 | * loop.c: Make verification of loops take linear, not quadratic, time. | |
539 | (verify_loop, can_jump_in_range_p): Deleted. | |
540 | (prescan_loop): New function, contents are from old verify_loop. | |
541 | (scan_loop): Call prescan_loop. | |
542 | (find_and_verify_loops, mark_loop_jump): New functions. | |
543 | (loop_optimize): Allocate new tables and call find_and_verify_loops | |
544 | once instead of calling verify_loop for each loop. | |
545 | Use data from find_and_verify_loops instead of scanning all insns. | |
546 | ||
547 | * expr.c (safe_from_p): New function. | |
548 | (validate_subtarget): Use safe_from_p. | |
549 | (expand_expr, case CONSTRUCTOR): Likewise. | |
550 | ||
551 | * expr.c (store_expr): Handle cases where EXP is a compound | |
552 | or conditional expression specially to avoid unnecessary temporaries. | |
553 | ||
554 | Sun Apr 22 00:15:58 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
555 | ||
556 | * tree.h (struct tree_type): Delete size_unit. | |
557 | (struct tree_decl): Delete size_unit and voffset_unit. | |
558 | Reduce lang_flags to save 1 word. | |
559 | ||
560 | * function.c (init_function_start): Don't use DECL_RESULT_TYPE. | |
561 | * integrate.c (expand_inline_function): Likewise. | |
562 | * c-decl.c (start_function, duplicate_decls): Likewise. | |
563 | * tree.h (struct tree_decl): Delete voffset. | |
564 | (DECL_RESULT_TYPE): Deleted. | |
565 | ||
566 | * objc-actions.c (encode_field_decl, objc_copy_list): | |
567 | Switch to DECL_FRAME_SIZE. | |
568 | * cplus-class.c (finish_struct): Likewise. | |
569 | * cplus-decl2.c (grokbitfield): Switch to DECL_BIT_FIELD. | |
570 | * c-parse.y, cplus-parse.y, objc-parse.y: Likewise. | |
571 | ||
572 | * tree.h (TYPE_NO_FORCE_BLK): New flag in types. | |
573 | * stor-layout.c (layout_type): Use it. | |
574 | * tree.h (DECL_TOO_LATE): New flag. | |
575 | * stmt.c (expand_end_bindings, expand_goto_internal): Use it. | |
576 | * tree.h (TREE_PACKED): Deleted. | |
577 | ||
578 | * cplus-typeck.c (unary_complex_lvalue): Confusing use of | |
579 | DECL_SIZE_UNIT; not clear what to do. | |
580 | * cplus-tree.c (layout_vbasetypes): Likewise. | |
581 | * cplus-class.c (modify_vtable_entry): Likewise. | |
582 | ||
583 | * cplus-parse.y (YYDEBUG): Force it on. | |
584 | (print_parse_statistics, init_parse): No-op if not YYDEBUG. | |
585 | ||
586 | * fold-const.c (fold): REAL_INFINITY affects reals, not ints. | |
587 | ||
588 | * protoize.c (edit_fn_declaration): Make arg volatile to stop warning. | |
589 | ||
590 | Sat Apr 21 03:04:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
591 | ||
592 | * expmed.c (store_bit_fields): Adjust for elimination of BImode. | |
593 | ||
594 | * c-parse.y (simple_if, stmt): Store stmt_count in proper place, | |
595 | which is slot 1 of the if. | |
596 | (simple_if, lineno_stmt, stmt): Output the note at beginning of | |
597 | stmt, not in lineno_stmt. Use emit_line_note. | |
598 | (simple_if): Set if_stmt_*, then use lineno_stmt directly. | |
599 | (lineno_stmt): Before most uses, call skip_white_space. | |
600 | (finput): Move to top of file. | |
601 | ||
602 | * cplus-class.c (build_instantiated_decl): Fix typo. | |
603 | ||
604 | * cplus-tree.h (C_TYPE_FIELDS_READONLY): Use lang_flag_1. | |
605 | (TYPE_HAS_CONSTRUCTOR, TYPE_HAS_DESTRUCTOR, TYPE_NEEDS_CONSTRUCTOR): | |
606 | (TYPE_NEEDS_DESTRUCTOR): Advance each to next lang_flag. | |
607 | * tree.h (TREE_LANG_FLAG_5, TREE_LANG_FLAG_6): Define them. | |
608 | ||
609 | * config.gcc: Delete ./Makefile.in iff not in the source dir. | |
610 | ||
611 | * Makefile.in (for-bootstrap): New target. | |
612 | ||
613 | * dbxout.c (dbxout_finish_symbol, dbxout_type, dbxout_prepare_symbol): | |
614 | Add temporary conditionals on WINNING_GDB. | |
615 | ||
616 | * print-tree.c (print_node): Print the TYPE_SYMTAB_ADDRESS. | |
617 | ||
618 | * Makefile.in (protoize.o, unprotoize.o, SYSCALLS.c.X): | |
619 | Include from or look in dir $(srcdir). | |
620 | ||
621 | Fri Apr 20 16:30:11 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
622 | ||
623 | * varasm.c (output_constructor): Backward test for bit-field. | |
624 | ||
625 | * Makefile.in (stamp-*): Delete .c or .h from these names. | |
626 | ||
627 | Fri Apr 20 15:56:21 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
628 | ||
629 | * cplus-typeck.c (compparms, comp_target_parms, build_modify_expr_1): | |
630 | (build_modify_expr): Clean parens in complicated if. | |
631 | * cplus-decl.c (finish_decl, grokdeclarator): Likewise. | |
632 | ||
633 | Fri Apr 20 14:42:36 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
634 | ||
635 | * tm-3b1.h (ASM_SPEC, PRINT_OPERAND_ADDRESS): Support 68020, 68881. | |
636 | Useful even though this isn't one. | |
637 | (ASM_OUTPUT_OPCODE): Convert fbne to fbneq. Don't change ftst. | |
638 | (REGISTER_NAMES): Define it. Fpreg names not same as hp. | |
639 | ||
640 | * stor-layout.c (mode_for_size): Don't check MAX_FIXED_MODE_SIZE. | |
641 | (layout_type): Check it here when appropriate. | |
642 | ||
643 | * loop.c (strength_reduce): Clean parens in complicated if. | |
644 | ||
645 | * fold-const.c (mul_double, const_binop): Add parens around shifts. | |
646 | ||
647 | Thu Apr 19 03:03:39 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
648 | ||
649 | * machmode.def: Delete unused modes. | |
650 | ||
651 | * stor-layout.c (mode_for_size): Accepts mode class as arg. | |
652 | Calls changed. | |
653 | (layout_type): Can now use mode_for_size for floating types. | |
654 | ||
655 | * stor-layout.c (layout_type): Get mode of function type from size. | |
656 | * c-decl.c, cplus-decl.c (grokdeclarator): Don't worry about | |
657 | mode of a function type. | |
658 | * calls.c (prepare_call_address): No values contain static chains. | |
659 | ||
660 | * tree.h (struct tree_decl, struct tree_common): Rename the flag bits. | |
661 | * cplus-tree.h: References here changed. | |
662 | ||
663 | * tree.h (DECL_BIT_FIELD): New macro, with new flag. | |
664 | * print-tree.c: Print it. | |
665 | * stor-layout.c (layout_decl): Use on input instead of TREE_PACKED. | |
666 | Clear it if field happens to be aligned. | |
667 | * expr.c, tree.c, varasm.c, symout.c, objc-actions.c, c-typeck.c: | |
668 | Use this to distinguish bit-fields. | |
669 | * c-decl.c, cplus-class.c (finish_struct): Set this for bit-fields. | |
670 | ||
671 | * c-typeck.c (build_binary_op): Make NON_LVALUE_EXPR, not NOP_EXPR. | |
672 | ||
673 | * out-sparc.c (find_addr_reg): Avoid using frame pointer. | |
674 | ||
675 | * config.gcc: Delete all formfeeds from Makefile. | |
676 | ||
677 | * stor-layout.c (layout_decl): Delete `bitsize'. | |
678 | (layout_record): Test size for CONST_INT, not TREE_LITERAL. | |
679 | (layout_type): Simplify array case. | |
680 | ||
681 | * fold-const.c (size_binop): Division not special case. | |
682 | ||
683 | Wed Apr 18 16:05:23 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
684 | ||
685 | * c-typeck.c (datatype): Function deleted. | |
686 | (build_binary_op_nodefault, pointer_int_sum, pointer_diff): | |
687 | Don't use it. | |
688 | * cplus-typeck.c (build_binary_op_nodefault, pointer_int_sum): | |
689 | (pointer_diff): Likewise. | |
690 | (convert_for_assignment): Likewise. Took some work. | |
691 | (datatype): Function deleted. | |
692 | ||
693 | * c-typeck.c (common_type): Renamed from commontype. | |
694 | (function_types_compatible_p): New function. | |
695 | (compparms): Deleted. | |
696 | (self_promoting_args_p): Renamed from compparms1. | |
697 | * cplus-typeck.c (common_type, self_promoting_args_p): Likewise. | |
698 | * c-typeck.c (build_function_call): Eliminate local value_type. | |
699 | ||
700 | * c-typeck.c (parser_build_binary_op): Detect +/- within boolean. | |
701 | ||
702 | * c-typeck.c (convert_arguments): Renamed from actualparameterlist. | |
703 | Push results on front, and reverse at end. | |
704 | * cplus-typeck.c: Likewise. All calls changed. | |
705 | ||
706 | * tree.h (STMT_BIND_SIZE): Deleted. | |
707 | (struct tree_bind_stmt): Deleted that slot. | |
708 | * tree.c (build_let_stmt): Don't set it. | |
709 | ||
710 | * print-tree.c (print_node): Call print_lang_identifier. | |
711 | * c-decl.c, cplus-ptree.c (print_lang_identifier): New function. | |
712 | ||
713 | * gnulib2.c (__clear_cache): New function. | |
714 | ||
715 | Tue Apr 17 16:57:17 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
716 | ||
717 | * cplus-tree.c (build_member_type): Use TYPE_HASH, not TREE_UID. | |
718 | (TYPE_HASH): Use the address. Delete the duplicate definition. | |
719 | ||
720 | * c-typeck.c (build_unary_op): Bug in pedantic warning about ++. | |
721 | ||
722 | * tree.h (TYPE_SEP, TYPE_SEP_UNIT): Deleted. | |
723 | * stor-layout.c (layout_type): Don't set them. | |
724 | (mode_for_size): New name for agg_mode; code cleaned up. | |
725 | * c-tree.h (C_TYPE_FIELDS_READONLY): Use TREE_LANG_FLAG_1. | |
726 | ||
727 | * fold-const.c (size_int, size_binop): New names for build_int | |
728 | and genop, moved here. All callers changed. | |
729 | (const_binop): New name for combine, and now static. | |
730 | * stmt.c (expand_end_case, group_case_nodes, node_has_low_bound): | |
731 | (node_has_high_bound): Don't call `combine' directly. | |
732 | ||
733 | * tree.h (DECL_VOFFSET, DECL_VOFFSET_UNIT): Deleted. | |
734 | * tree.c (staticp): Don't use DECL_VOFFSET. | |
735 | * stor-layout.c (layout_*): Don't use it or set it. | |
736 | (layout_record): Simplify: Keep all sizes in units of 1. | |
737 | ||
738 | * tree.c (debug_tree, print_node, print_node_brief, indent_to): | |
739 | New functions to print a tree. | |
740 | * c-decl.c (print_lang_decl, print_lang_type): Define as no-op. | |
741 | * cplus-ptree.c (print_lang_type): Complete rewrite. | |
742 | Most other functions deleted. | |
743 | * tree.c (print_node): Call print_lang_* unconditionally. | |
744 | ||
745 | * tree.c (TYPE_HASH): Now use the address. | |
746 | ||
747 | Mon Apr 16 16:27:28 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
748 | ||
749 | * final.c: Check LEAF_REGISTERS, not LEAF_REGS. | |
750 | ||
751 | * real.h (*_FLOAT_FORMAT): Change enums to macros. | |
752 | (REAL_INFINITY): Define it if IEEE format. | |
753 | ||
754 | * c-decl.c (c_decode_options): Handle -Wconversion here. | |
755 | * toplev.c (main): Not here. | |
756 | ||
757 | * tm-*.h (INITIAL_FRAME_POINTER_OFFSET): Count get_frame_size. | |
758 | ||
759 | Mon Apr 16 15:05:49 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
760 | ||
761 | * loop.c (eliminate_biv): Build COMPARE with VOIDmode, not mode | |
762 | of operands. | |
763 | ||
764 | Mon Apr 16 14:55:58 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
765 | ||
766 | * jump.c: Include real.h. | |
767 | ||
768 | Sun Apr 15 20:30:24 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
769 | ||
770 | * c-typeck.c (pedantic_lvalue_warning): New function. | |
771 | (build_component_ref): Handle COMPOUND_VALUE and COND_EXPR by moving | |
772 | reference inside it and calling pedantic_lvalue_warning. | |
773 | (build_unary_op): Incrementing a cast-expression is warning, not | |
774 | error; call new pedantic_lvalue_warning. | |
775 | (unary_complex_lvalue): Use of compound or conditional expression as | |
776 | lvalue is warning, not error. | |
777 | (build_modify_expr): Likewise. | |
778 | * cplus-typeck.c: Likewise. | |
779 | ||
780 | Sun Apr 15 12:27:11 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
781 | ||
782 | * cse.c (fold_rtx, fold_cc0): Check TARGET_FLOAT_FORMAT, | |
783 | not FLOAT_NOT_IEEE. | |
784 | * jump.c (jump_back_p): Likewise. FLOAT_NOT_IEEE is now gone. | |
785 | ||
786 | * cccp.c (collect_expansion): Handle warn_stringify. | |
787 | (main): Set it for -Wtraditional. | |
788 | ||
789 | * function.c (init_function_start): | |
790 | Set current_function_returns_pointer here. | |
791 | (expand_function_start): Not here. | |
792 | ||
793 | * expr.c (emit_library_call): Precompute reg and partial of all parms, | |
794 | to do it in proper order. | |
795 | ||
796 | * final.c (final_scan_insn): Typo in deleting obvious no-ops. | |
797 | ||
798 | * expr.c (emit_push_insn): Change #if to ordinary if. | |
799 | ||
800 | Sat Apr 14 13:20:40 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
801 | ||
802 | * expr.c (do_jump): In COMPONENT_REF, check TYPE is nonzero. | |
803 | ||
804 | * tm-i386.h (ASM_OUTPUT_ADDR_DIFF_ELT): Delete spurious `abort ()'. | |
805 | ||
806 | * emit-rtl.c (reverse_comparison): New function. | |
807 | (get_last_insn_anywhere): New function. | |
808 | * i386.md (ble, blt): New define_expands. | |
809 | ||
810 | * Makefile.in (LANGUAGES): New parameter chooses languages to build. | |
811 | (native): Use that. | |
812 | (c, c++, objc): Targets for use in LANGUAGES. | |
813 | ||
814 | * Makefile.in (install): Split up. | |
815 | (install-cross, install-headers, install-gnulib, install-proto): | |
816 | (install-man, $(libsubdir)): New targets. | |
817 | ||
818 | * Makefile.in (native): New target, split from start.encap. | |
819 | (tmpgnulib): Split out from gnulib.portable. | |
820 | (gnulib.convert): Makes tmpgnulib, then converts. | |
821 | (LIBCONVERT): New parameter. | |
822 | (GCC_FOR_TARGET): New parameter. | |
823 | (hard-params.o, hard-params, stamp-gnulib2): Use that. | |
824 | ||
825 | * cse.c (fold_cc0): Compare equivalence classes of non-constants. | |
826 | Waiting for papers from Steven McCanne. | |
827 | ||
828 | Fri Apr 13 14:12:46 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
829 | ||
830 | * stor-layout.c (layout_type): If record is BLKmode because not | |
831 | aligned, set TREE_PACKED. Don't force BLKmode due to field | |
832 | with TREE_PACKED. | |
833 | ||
834 | * cse.c (fold_rtx): Use dconst1, not atof. | |
835 | * varasm.c (output_constant): Likewise. | |
836 | ||
837 | * c-parse.y (yylex): Handle SIGFPE in atof. | |
838 | ||
839 | * tm-tti68k.h: New file. | |
840 | ||
841 | * toplev.c, flags.h (flag_pretend_float): New flag. | |
842 | ||
843 | * regclass.c (reg_class_record): Handle `E' constraint, for float | |
844 | constants but only if can examine their bits. | |
845 | * reload.c (find_reloads): Likewise. | |
846 | * recog.c (constrain_operands): Likewise. | |
847 | * out-m68k.c (output_move_double): Abort on float constant | |
848 | if can't examine the bits. | |
849 | (standard_68881_constant_p): Fail if can't examine the bits. | |
850 | (standard_sun_fpa_constant_p): Likewise. | |
851 | ||
852 | * m68k.md (DFmode move recognizers): Use `E', not `F'. | |
853 | * tm-m68k.h (PREFERRED_RELOAD_CLASS): Handle float constants. | |
854 | ||
855 | * tm-next.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_FLOAT_OPERAND): | |
856 | (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_DOUBLE_OPERAND): Use REAL_VALUE_ISINF. | |
857 | * tm-sun3.h, tm-sparc.h: Likewise. | |
858 | ||
859 | * xm-vax.h (HOST_FLOAT_FORMAT): Define it. | |
860 | * tm-vax.h (TARGET_FLOAT_FORMAT): Define it. | |
861 | ||
862 | * real.h (enum float_format): Define codes for formats. | |
863 | (HOST_FLOAT_FORMAT, TARGET_FLOAT_FORMAT): New macros, defaulted here. | |
864 | (REAL_IS_NOT_DOUBLE, REAL_VALUE_TYPE): Override if formats differ. | |
865 | (REAL_VALUE_ISINF): New macro. | |
866 | * xm-vax.h (isinf): Define as macro. | |
867 | ||
868 | * Makefile.in (LIBFUNCS_EXTRA): New variable. | |
869 | (gnulib.portable): Compile those files. | |
870 | ||
871 | * Makefile.in (AUX_OUTPUT2): New variable. | |
872 | (OBJS): Use it. | |
873 | (aux-output2.o): New target. | |
874 | ||
875 | * Makefile.in (RANLIB, RANLIB_TEST): New variables. | |
876 | ||
877 | * Makefile.in (AR_FLAGS, OLDAR_FLAGS): New variables. | |
878 | (gnulib.portable, stamp-gnulib2): Use them. | |
879 | ||
880 | * i386.md: Add patterns for `bt' insns. | |
881 | ||
882 | Fri Apr 13 12:54:14 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
883 | ||
884 | * c-decl.c (builtin_function): Now returns decl that was made. | |
885 | ||
886 | * config.gcc: Support both -host= and +host=. | |
887 | ||
888 | Thu Apr 12 22:39:10 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
889 | ||
890 | * Changes from Data General. | |
891 | ||
892 | * syms.h: New file. | |
893 | * sdbout.c: Include that if not USG. | |
894 | ||
895 | * tree.h (enum built_in_function): Added BUILT_IN_STRCPY and | |
896 | BUILT_IN_STRCMP. | |
897 | * c-decl.c (init_decl_processing): Create additional pointer and | |
898 | function types. Declare strcpy, strcmp, memcpy, memcmp built-in. | |
899 | * expr.c (expand_builtin): Support strcpy, strcmp, memcpy, memcmp. | |
900 | If special handler breaks out of switch, do library call. | |
901 | By default, print error message and do library call. | |
902 | (get_pointer_alignment, string_constant): New functions. | |
903 | ||
904 | * dbranch.c: Put entire contents in conditional on HAVE_DELAYED_BRANCH. | |
905 | (init_flags, enote): Clear and set memr. | |
906 | (enote): Don't move a store across a fetch. | |
907 | (insn_eligible_p): Check enote before volatility and dependencies. | |
908 | Check for volatility if memw or memr. | |
909 | (loads_from_mem_p): New function. | |
910 | ||
911 | * Makefile.in (dbranch.o): New target. | |
912 | (OBJS): Add dbranch.o. | |
913 | ||
914 | Thu Apr 12 22:39:10 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
915 | ||
916 | * calls.c (expand_call): Count args in order written, with argpos. | |
917 | ||
918 | Thu Apr 12 22:01:16 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
919 | ||
920 | * expmed.c (synth_mult): Ensure OPS is always valid in returned alg. | |
921 | ||
922 | * local-alloc.c (block_alloc): If we have an operand that is an | |
923 | address, look inside it for registers to combine with. | |
924 | ||
925 | * reload.c (combine_reloads): If the output reload is for an | |
926 | earlyclobber operand, can't combine it. | |
927 | Try to use a register that dies in an insn for a single output reload | |
928 | if the insn has only one output. | |
929 | ||
930 | Thu Apr 12 21:27:18 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
931 | ||
932 | * c-decl.c (duplicate_decls): Preserve DECL_INITIAL from old | |
933 | function def to new one. | |
934 | ||
935 | Thu Apr 12 07:55:14 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
936 | ||
937 | * expr.c (expand_assignment): Order of source and destination to | |
938 | bcopy/memcpy was reversed. | |
939 | ||
940 | Wed Apr 11 17:29:18 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
941 | ||
942 | * tm-i386.h (ABC_REGS): New register class. | |
943 | (REG_CLASS_CONTENTS, REG_CLASS_NAMES, enum reg_class): Changed. | |
944 | * i386.md (divsi3, etc.): Exclude register d from constraints. | |
945 | ||
946 | * c-parse.y (save_filename, save_lineno): New nonterminals | |
947 | to record text location at start of statement. | |
948 | (lineno_stmt): New nonterminal, outputs line note before statement. | |
949 | (lineno_decl): Likewise for decl, to avoid conflicts. | |
950 | (stmt): Don't emit line notes at start of statement. | |
951 | (simple_if): Collect file and line using save_filename, save_lineno. | |
952 | ||
953 | * Changes from Data General. | |
954 | ||
955 | * cccp.c (main, do_include): Implement -H to print header names. | |
956 | ||
957 | * c-parse.y (component_decl_list): Parse even if final `;' missing. | |
958 | ||
959 | Wed Apr 11 16:49:16 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
960 | ||
961 | * gcc.c: Fix miscellaneous typos. | |
962 | ||
963 | Wed Apr 11 12:59:57 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
964 | ||
965 | * config.gcc: Typos in setting pass1done, testing it, | |
966 | and calling sed for usage msg. | |
967 | ||
968 | * cccp.c (macroexpand): Count Newline Space as part of whitespace | |
969 | sequence when stringifying. | |
970 | ||
971 | * expmed.c (expand_mult): Handle synth_mult returning no operations. | |
972 | ||
973 | Tue Apr 10 21:08:06 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
974 | ||
975 | * cccp.c (do_line): No error if string follows number without space. | |
976 | ||
977 | Tue Apr 10 20:52:02 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
978 | ||
979 | * recog.c (apply_change_group): Return a zero if rejected changes. | |
980 | ||
981 | * loop.c (update_giv_derive): If a giv is only set conditionally, it | |
982 | may only derive other givs in its own basic block. | |
983 | ||
984 | Tue Apr 10 13:09:40 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
985 | ||
986 | * tm-ctix.h: New file. Waiting for papers from Ronald Cole. | |
987 | csusac!unify!dbrus.rjc@ucdavis.ucdavis.edu. | |
988 | ||
989 | * cse.c (rtx_cost): Use new macro RTX_COSTS. | |
990 | (COSTS_N_INSNS): New macro for use in RTX_COSTS. | |
991 | ||
992 | * config.gcc: Fix typos in conditionals and case. Also usage message. | |
993 | Missing backslashes in `echo | tee'. | |
994 | Unset various vars after pass 1. | |
995 | ||
996 | * c-typeck.c (build_c_cast): Complain if function type specified. | |
997 | ||
998 | * expmed.c (synth_mult): Accept max_cost as arg and cut off there. | |
999 | Pass it along recursively, making it smaller. | |
1000 | Eliminate quadratic loop, thus postponing powers of 2. | |
1001 | Costs are now signed. Initialize best_alg->cost from max_cost | |
1002 | and change to -1 only before returning. | |
1003 | (expand_mult): Pass cost of multiply as max cost. | |
1004 | Use synth_mult only if optimizing. | |
1005 | In alg_compound case, sign was backward. | |
1006 | Use TEM as target for force_operand there, to get better output. | |
1007 | ||
1008 | Tue Apr 10 07:09:51 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1009 | ||
1010 | * expr.c (expand_expr, case COND_EXPR): Add missing argument to | |
1011 | operand_equal_p. | |
1012 | Check for (X ? unop A : A) in addition to (X ? A + B : A). | |
1013 | ||
1014 | * Makefile.in (protoize, unprotoize): Compile with GCC, not just link. | |
1015 | ||
1016 | * fold-const.c (fold): Fix typo in converting conditional to COND. | |
1017 | ||
1018 | * expr.c (expand_expr): Treat (A ? 1 : 0) as A when A is a comparison. | |
1019 | (do_jump): Special-case (A ? 1 : 0) and (A ? 0 : 1). | |
1020 | ||
1021 | * expr.c (store_expr): Fix typo in checking mode of target. | |
1022 | ||
1023 | Mon Apr 9 18:33:55 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1024 | ||
1025 | * integrate.c (expand_inline_function): Clear out parm_copies. | |
1026 | ||
1027 | Mon Apr 9 18:00:40 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1028 | ||
1029 | * tree.def: SAVE_EXPR now has three operands. | |
1030 | * tree.h: Add new field SAVE_EXPR_CONTEXT; SAVE_EXPR_RTL remains last. | |
1031 | * tree.c (save_expr): Set context to current function. | |
1032 | (decl_function_context): Context is in SAVE_EXPR_CONTEXT if SAVE_EXPR. | |
1033 | * calls.c (expand_call): Call make_tree to build an RTL_EXPR instead | |
1034 | of explicitly making SAVE_EXPR. | |
1035 | * cplus-typeck.c (c_expand_return): Use make_tree instead of SAVE_EXPR. | |
1036 | * c-parse.y, objc-parse.y: Don't call mark_addressable here. | |
1037 | * expr.c (expand_expr, ..._DECL cases): If non-local, make addressable. | |
1038 | (expand_expr, case SAVE_EXPR): If defined in containing function, put | |
1039 | put into stack. | |
1040 | * function.c (put_var_into_stack): Use SAVE_EXPR_RTL for SAVE_EXPR. | |
1041 | * print-tree.c (dump): SAVE_EXPR_RTL is now third operand. | |
1042 | * stmt.c (expand_asm_operands): Call save_expr instead of making | |
1043 | tree node directly. | |
1044 | ||
1045 | Mon Apr 9 00:08:15 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1046 | ||
1047 | * Makefile.in (install): Turn off x bit on SYSCALLS.c.X. | |
1048 | ||
1049 | * i860.md (cmpeqsf, etc.): Change opcode name to pfeq.ss, etc. | |
1050 | ||
1051 | * tm-m68k.h (PRINT_OPERAND_PRINT_FLOAT): Delete spurious backslash. | |
1052 | ||
1053 | * c-decl.c (store_parm_decls): Don't do storedecls in prototype case. | |
1054 | That was discarding the enumerators already pushdecl'd. | |
1055 | ||
1056 | * gcc.c (exec_prefix, startfile_prefix): Record prefix search paths. | |
1057 | (find_a_file): New function to search a path. | |
1058 | (find_exec_file): Deleted; find_a_file used instead. | |
1059 | (find_file): Just call find_a_file. | |
1060 | (add_prefix): Add name to a prefix path. | |
1061 | (process_command): Call that. | |
1062 | ||
1063 | * gcc.c (spec_list): Generalize asm_spec, etc., to arbitrary names. | |
1064 | (set_spec): New function. Set the old specific vars and spec list. | |
1065 | (do_spec_1): Handle `%(' and `%[' for general specs. | |
1066 | ||
1067 | * ns32k.md (ashlhi3): Use %0, not %1. | |
1068 | ||
1069 | * cplus-tree.h (TREE_ANON_UNION_ELEM, DECL_ANON_UNION_ELEM): | |
1070 | regdecl_attr is now in decl, not common. | |
1071 | (TREE_PARMLIST): Use external_attr. | |
1072 | (TREE_VIA_PUBLIC): Use static_attr. | |
1073 | ||
1074 | Sun Apr 8 23:43:59 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1075 | ||
1076 | * fold-const (fold): Two conversions in a row are needed if from a | |
1077 | pointer type to an integer type of a different precision. | |
1078 | ||
1079 | * flow.c (mark_used_regs): When replacing addition with register | |
1080 | in auto-increment creation, mark that insn must be re-recognized. | |
1081 | ||
1082 | Sun Apr 8 13:56:17 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1083 | ||
1084 | * tm-m68k.h (ASM_OUTPUT_FLOAT): Defn depends on CROSS_COMPILER. | |
1085 | (PRINT_OPERAND): Depends on CROSS_COMPILER and HOST_WORDS_BIG_ENDIAN. | |
1086 | (PRINT_OPERAND_EXTRACT_FLOAT, PRINT_OPERAND_PRINT_FLOAT): | |
1087 | These new subroutines contain the code that depends. | |
1088 | ||
1089 | * xm-m68k.h, xm-mips.h, xm-pyr.h, xm-tahoe.h (HOST_WORDS_BIG_ENDIAN): | |
1090 | New macro, defined in these files. | |
1091 | ||
1092 | * config.gcc: Define macro CROSS_COMPILE if making cross-compiler. | |
1093 | * Makefile.in (INTERNAL_CFLAGS): Include CROSS. | |
1094 | ||
1095 | * config.gcc: Decode -host argument. Set $host and $target. | |
1096 | Rename vars for files to link to, to tm_file, xm_file, etc. | |
1097 | Let $host override xm_file value. | |
1098 | Mention $host in messages and config.status if diff from $target. | |
1099 | Check for errors in args at beginning of processing. | |
1100 | ||
1101 | * expmed.c (expand_shift): Make no insns if count is 0. | |
1102 | ||
1103 | * cse.c (rtx_cost): Increase default cost of mult and div. | |
1104 | ||
1105 | * expmed.c (synth_mult): New function. Finds best way to multiply | |
1106 | by given constant, and the cost. | |
1107 | (expand_mult): Use that. | |
1108 | (init_expmed): Init new vars add_cost, shift_cost, mult_cost, | |
1109 | and negate_cost. mult_is_cheap has been deleted. | |
1110 | ||
1111 | * expmed.c (store_bit_field): Don't use insv if unit for copying | |
1112 | mem to reg won't hold the entire field. | |
1113 | ||
1114 | Sun Apr 8 12:54:07 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1115 | ||
1116 | * expr.c (expand_expr, case COND_EXPR): Add OK_DEFER_POP to path with | |
1117 | only OK_DEFER_POP. | |
1118 | ||
1119 | Sun Apr 8 12:50:54 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1120 | ||
1121 | * i386.md (insv): Use SImode for operand 0. | |
1122 | ||
1123 | Sat Apr 7 15:24:56 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1124 | ||
1125 | * emit-rtl.c (gen_lowpart, gen_highpart): When checking mode class, | |
1126 | check for not MODE_FLOAT. | |
1127 | * cse.c (fold_rtx): Likewise when avoiding x-x -> 0 for IEEE float. | |
1128 | * jump.c (jump_back_p): Likewise. | |
1129 | * optabs.c (emit_cmp_insn): Likewise, comparing result of libcall. | |
1130 | * expr.c (move_block_to_reg, emit_push_insn): Likewise, | |
1131 | when putting floats in memory. | |
1132 | ||
1133 | * machmode.def (PSImode, PDImode): Class is now MODE_PARTIAL_INT. | |
1134 | * expr.c (convert_to_mode): Don't treat them as ints. | |
1135 | ||
1136 | * fixincludes: When making directory links, assume any relative path | |
1137 | is within /usr/include. | |
1138 | ||
1139 | Sat Apr 7 14:56:27 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1140 | ||
1141 | * function.c (assign_stack_local, assign_outer_stack_local): | |
1142 | Don't use division for rounding to avoid problems with negative | |
1143 | dividends; use logical operations instead. | |
1144 | No need to ever align stricter than BIGGEST_ALIGNMENT. | |
1145 | ||
1146 | Sat Apr 7 14:38:36 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1147 | ||
1148 | * expr.c (expand_expr, case CONSTRUCTOR:): Finish Jan 12 change | |
1149 | in store_expr by calling store_constructor if target is a temp. | |
1150 | ||
1151 | * cse.c (cse_insn): For regs invalidated by calls, go back to | |
1152 | checking for fp and ap explicitly, not fixed_regs. | |
1153 | ||
1154 | Sat Apr 7 14:06:43 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1155 | ||
1156 | * recog.h: Define num_validated_changes and cancel_changes. | |
1157 | * recog.c (validate_change, apply_change_group, cancel_changes): | |
1158 | Support changes both within an insn and within a MEM. | |
1159 | ||
1160 | Sat Apr 7 00:45:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1161 | ||
1162 | * sparc.md (addcc and subcc patterns): Set CC_NO_OVERFLOW. | |
1163 | ||
1164 | Fri Apr 6 15:20:51 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1165 | ||
1166 | * cccp.c (lookup_import): Return -1 for not found to agree with | |
1167 | the open system call. Use -2 for duplicate. | |
1168 | (do_include): -2 now means duplicate; previously, -1 meant not found | |
1169 | from open and duplicate from lookup_import. | |
1170 | ||
1171 | Fri Apr 6 00:06:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1172 | ||
1173 | * c-decl.c (poplevel): Use DECL_INITIAL to detect undef label. | |
1174 | ||
1175 | * sparc.md (peephole for returning sum): Use more restrictive preds. | |
1176 | ||
1177 | * reload1.c (choose_reload_regs): When testing reload reg | |
1178 | for HARD_REGNO_MODE_OK, use SImode instead of VOIDmode. | |
1179 | ||
1180 | Thu Apr 5 14:00:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1181 | ||
1182 | * cccp.c (main, include_defaults): Use STANDARD_INCLUDE_DIR | |
1183 | instead of /usr/include. | |
1184 | * Makefile.in (cccp.o): Specify STANDARD_INCLUDE_DIR. | |
1185 | ||
1186 | * varasm.c (assemble_variable): No sdb output for initialized global. | |
1187 | * toplev.c (compile_file): Output it here, at end of run. | |
1188 | ||
1189 | * stdarg.h (va_start): Round initial pointer value down | |
1190 | to double boundary. This is to eliminate big-endian adjustment. | |
1191 | ||
1192 | * fixincludes: Delete netinet/ip.h and sundev/vuid_event.h | |
1193 | if no changes are needed. | |
1194 | ||
1195 | * c-typeck.c (build_c_cast): Reject array types for result. | |
1196 | * cplus-typeck.c (build_c_cast): Likewise. | |
1197 | ||
1198 | * tm-*.h (ASM_OUTPUT_SKIP): Print size as unsigned. | |
1199 | (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise. | |
1200 | ||
1201 | * fold-const.c (fold): Simplify double truncation, double extension, | |
1202 | or extension followed by truncation. | |
1203 | ||
1204 | * fixincludes: Don't ignore errors when making dirs. | |
1205 | But check whether dir already exists. | |
1206 | ||
1207 | * cse.c (fold_rtx): Don't simplify real*0, because of nans. | |
1208 | ||
1209 | * real.h (dconst0, dconst1, dconstm1): Declare them. | |
1210 | * tree.c (real_zerop, real_onep): New functions. | |
1211 | * fold-const.c (fold): Check for trivial +, -, * with reals. | |
1212 | Also use dconst0 instead of computing with REAL_VALUE_ATOF. | |
1213 | ||
1214 | Tue Apr 3 22:52:26 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1215 | ||
1216 | * m68k.md (32-bit bit fields): Special patterns added. | |
1217 | (push byte and adjust stack by 2): New peephole. | |
1218 | These from Bruce Robertson. | |
1219 | ||
1220 | * c-decl.c (grokdeclarator): Complain if fn defn has `typedef' etc. | |
1221 | ||
1222 | Tue Apr 3 21:39:54 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1223 | ||
1224 | * expr.c (preexpand_calls): Reinsert check to not expand calls | |
1225 | already preexpanded. | |
1226 | ||
1227 | Mon Apr 2 07:05:34 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1228 | ||
1229 | * c-typeck.c (digest_init): Don't blow up on null list. | |
1230 | ||
1231 | * Makefile.in (cc1obj): Link OBJC_OBJS instead of C_OBJS. | |
1232 | * objc-actions.c: Correct compilation errors. | |
1233 | * objc-parse.y: Likewise. | |
1234 | ||
1235 | Mon Apr 2 03:33:14 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1236 | ||
1237 | * objc-actions.h: Define the objc tree codes. | |
1238 | Declare doing_objc_thang. | |
1239 | ||
1240 | Fri Mar 30 17:28:30 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1241 | ||
1242 | * sdbout.c (PUT_SDB_EPILOGUE_END): Write out assembler name for | |
1243 | function (i.e., usually include leading "_"). | |
1244 | ||
1245 | * sdbout.c (PUT_SDB_...): Use new macro SDB_DELIM; it defaults to ";". | |
1246 | ||
1247 | Fri Mar 30 15:25:20 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1248 | ||
1249 | * jump.c (prev_active_insn, next_active_insn): New functions. | |
1250 | These skip USEs and CLOBBERs. | |
1251 | (jump_optimize): Use them instead of ..._real_insn | |
1252 | for the simple optimizations. | |
1253 | ||
1254 | * integrate.c (expand_inline_function): Always index const_equiv_map | |
1255 | with regno from current function. And set up the map only after | |
1256 | creating all the pseudos we will need for the parms. | |
1257 | This requires intermediate tables parm_equivs and parm_copies. | |
1258 | Make const_equiv_map big enough to handle all the pseudos we | |
1259 | expect to make. Record actual size, and don't look in it | |
1260 | for regnos too large. | |
1261 | (subst_constants, const_equiv): Don't access const_equiv_map | |
1262 | if regno is too large. | |
1263 | ||
1264 | * function.c (trampoline_address): Push and pop obstacks around | |
1265 | call to assign_outer_stack_local. | |
1266 | ||
1267 | * function.c (push_function_context, pop_function_context): | |
1268 | Save and restore max_parm_reg and parm_reg_stack_loc. | |
1269 | * function.h (struct function): Make slots. | |
1270 | ||
1271 | * c-decl.c (c_build_type_variant): New function. | |
1272 | (grokdeclarator): Call that, for ARRAY_TYPE only, in fields and vars. | |
1273 | * c-decl.c, c-typeck.c: All calls to build_type_variant use that now. | |
1274 | ||
1275 | * emit-rtl.c (reinstate_emit_status): Unused function deleted. | |
1276 | ||
1277 | Thu Mar 29 15:35:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1278 | ||
1279 | * tree.c (rtl_in_current_obstack): New function. | |
1280 | * toplev.c (rest_of_compilation): Call that. | |
1281 | This makes it true that rtl is allocated in current_obstack | |
1282 | during optimization. | |
1283 | ||
1284 | * reload1.c (eliminate_frame_pointer): Scan equivalent addresses | |
1285 | of pseudo-regs, and eliminate frame-pointer there too. | |
1286 | (reload): Don't do this here. | |
1287 | ||
1288 | * c-decl.c (build_enumerator): Return pair of decl and value. | |
1289 | (finish_enum): Go through the list replacing decls with names. | |
1290 | ||
1291 | * function.c (fixup_var_refs): Eliminate all but first arg. | |
1292 | Use current sequence_stack, insn chain and rtl_expr_chain. | |
1293 | (put_var_into_stack): Don't pass those args. | |
1294 | If var is nonlocal, don't do it now; put it on fixup_var_refs_queue. | |
1295 | (pop_function_context): Do fixup_var_refs on vars queued up. | |
1296 | ||
1297 | * tree.c (function_maybepermanent_obstack): Make a separate | |
1298 | saveable obstack for each nested function level. | |
1299 | (init_tree): Init this variable. | |
1300 | (save_tree_status, restore_tree_status): Save and restore it. | |
1301 | Create and free a new obstack for the purpose. | |
1302 | (temporary_allocation, resume_temporary_allocation): Use this var. | |
1303 | (preserve_data, preserve_initializer): Use this var. | |
1304 | (make_node): Use this var for PARM_DECL nodes. | |
1305 | ||
1306 | * tree.c (push_obstacks): New name for push_obstack. | |
1307 | Additional arg specifies saveable_obstack. All calls changed. | |
1308 | (pop_obstacks): New name for pop_obstack. All calls changed. | |
1309 | ||
1310 | * config.gcc: Add `3300'. | |
1311 | (genix): Fix typo in name of makevar file. | |
1312 | * tm-mot3300.h, xm-mot3300.h: New files. | |
1313 | * math-3300.h: New file. | |
1314 | ||
1315 | * output.h: Fix typo in SDB_DEBUGGING_INFO. | |
1316 | ||
1317 | * tm-sun386i.h (LINK_SPEC): Moved here, and -static handled. | |
1318 | * xm-sun386i.h: Moved from here. | |
1319 | * tm-alliant.h (LINK_SPEC): Moved here, from xm-alliant.h. | |
1320 | ||
1321 | * tm-convex.h, tm-i860.h, tm-spur.h, tm-vax.h, tm-tahoe.h, tm-pyr.h: | |
1322 | Delete FIX_FRAME_POINTER_ADDRESS. | |
1323 | ||
1324 | * tm-sparc.h, tm-m88k.h: Turn off FIX_FRAME_POINTER_ADDRESS. | |
1325 | INITIAL_FRAME_POINTER_OFFSET could be written later. | |
1326 | ||
1327 | * tm-m68k.h, tm-ns32k.h, tm-alliant.h, tm-i386.h, tm-mips.h: | |
1328 | Define INITIAL_FRAME_POINTER_OFFSET. | |
1329 | ||
1330 | * toplev.c (compile_file): Remove .m and .cc suffixes, like .c. | |
1331 | ||
1332 | * final.c (end_final): For basic block profiling, don't output | |
1333 | source file name. Instead, append ".d", and remove ".c". | |
1334 | * gnulib2.c (__bb_init_func): New name for __bb_init_function. | |
1335 | Conditionalize on mc68000, not m68k. | |
1336 | Fix other typos. | |
1337 | ||
1338 | Wed Mar 28 16:07:15 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1339 | ||
1340 | * c-decl.c, cplus-decl.c (duplicate_decls): Preserve DECL_FRAME_SIZE | |
1341 | from definition past subsequent declarations. | |
1342 | ||
1343 | * c-decl.c (xref_tag): If global_binding_level, make nodes permanent. | |
1344 | ||
1345 | * expmed.c (init_expmed): Set up mult_is_very_cheap. | |
1346 | (expand_mult): Never use shifts if mult_is_very_cheap. | |
1347 | ||
1348 | * expr.c (store_expr): When copying through new temporary, | |
1349 | allocate temporary first and use as target. | |
1350 | ||
1351 | * tm-m68k.h (HARD_REGNO_MODE_OK): Abort on VOIDmode. | |
1352 | ||
1353 | * reload1.c (fix_frame_pointer_address): New function. | |
1354 | (alter_frame_pointer_addresses): New arg INSN. Calls changed. | |
1355 | Use that function instead of macro FIX_FRAME_POINTER_ADDRESS | |
1356 | which is now obsolete. | |
1357 | (eliminate_frame_pointer): Use macro INITIAL_FRAME_POINTER_OFFSET | |
1358 | to initialize depth. Abort if that macro is missing. | |
1359 | ||
1360 | * expmed.c (store_bit_field): If loading MEM into a reg, use the | |
1361 | mode of the MEM if that is not BLKmode. | |
1362 | (extract_bit_field): Likewise. | |
1363 | ||
1364 | * tm-mips.h (STRUCTURE_SIZE_BOUNDARY): Changed from 16 to 8. | |
1365 | ||
1366 | * calls.c (expand_call): Handle STACK_BOUNDARY when using push insns. | |
1367 | ||
1368 | * function.c (assign_parms): Note how PUSH_ROUNDING affects stack | |
1369 | parm size. | |
1370 | ||
1371 | Tue Mar 27 19:40:11 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1372 | ||
1373 | * c-decl.c (poplevel): Output inline nested functions if needed. | |
1374 | * cplus-decl.c: Likewise. | |
1375 | ||
1376 | * i386.md (insv): New pattern added for the moment. | |
1377 | ||
1378 | Tue Mar 27 17:47:35 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1379 | ||
1380 | * function.c (lookup_outer_static_chain): Deleted, no longer used. | |
1381 | (trampoline_address): RTL for trampoline, rather than its address, is | |
1382 | stored in trampoline list. | |
1383 | Just add entry to list; don't fill in the trampoline here. | |
1384 | (expand_function_end): Fill in any required trampolines here. | |
1385 | (expand_function_start): Move tail recursion entry to after | |
1386 | creation of display list; size computations come next. | |
1387 | ||
1388 | Tue Mar 27 14:09:31 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1389 | ||
1390 | * m68k.md (movsi, movhi, movstricthi, movqi, movstrictqi): | |
1391 | Avoid both clr and st on volatile mem, but only on 68000. | |
1392 | (SImode store 0 recognizer): Likewise. | |
1393 | ||
1394 | * stor-layout.c (agg_mode): Don't consider PSImode, etc. | |
1395 | ||
1396 | Mon Mar 26 21:12:16 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1397 | ||
1398 | * local-alloc.c (combine_regs): Only set suggested bit for first | |
1399 | register if multi-word quantity. | |
1400 | (find_free_reg): Look at suggested regs for first in set, then use | |
1401 | all available for subsequent regs. | |
1402 | ||
1403 | Mon Mar 26 15:01:02 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1404 | ||
1405 | * c-decl.c (start_enum): Don't lay out the type. | |
1406 | (finish_enum): Always lay it out, and always set the precision. | |
1407 | Change the type of the enumerators if int is too narrow. | |
1408 | ||
1409 | * tm-m68k.h (NOTICE_UPDATE_CC): addq and subq do update cc's | |
1410 | even if destination is an address register. | |
1411 | ||
1412 | * c-parse.y, objc-parse.y (check_newline): Call HANDLE_PRAGMA if def. | |
1413 | * out-next.c: New file. | |
1414 | (handle_pragma): New function. | |
1415 | * tm-next.h (HANDLE_PRAGMA): Define it. | |
1416 | ||
1417 | * Makefile.in (GNULIB2): New variable. | |
1418 | (gnulib2): Use it. | |
1419 | (gnulib2.portable): New name for old rule. | |
1420 | (install-headers): Split out part of install rule. | |
1421 | (INSTALL_HEADERS): New variable. | |
1422 | ||
1423 | * make-next: New file. | |
1424 | ||
1425 | * function.c (assign_parms): Get type from proper place. | |
1426 | internal_arg_pointer is now an arg. Compute arg_pointer_copied | |
1427 | from that. Fix typos. | |
1428 | (expand_function_start): Compute internal_arg_pointer here. | |
1429 | Fix typos handling incoming struct value address. | |
1430 | ||
1431 | * cccp.c (do_include): Ignore null strings found in stackp. | |
1432 | ||
1433 | * cccp.c (discard_comments): Handle backslash-newline. | |
1434 | ||
1435 | Mon Mar 26 07:18:58 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1436 | ||
1437 | * function.h (temp_slot, temp_slot_level): Now saved by function.c. | |
1438 | * function.c (struct temp_slot): Move from stmt.c. | |
1439 | (push_function_context, pop_function_context): Save/restore temp slots. | |
1440 | (assign_parms): Pass type to locate_and_pad_parms. | |
1441 | (locate_and_pad_parms): Accept TYPE. | |
1442 | Don't need STACK_OFFSET. | |
1443 | (expand_function_start): Pass type to locate_and_pad_parms. | |
1444 | (init_function_start): Initialize temp_slot info. | |
1445 | * stmt.c (temp_slot, init_stmt_for_function, save_stmt_status, | |
1446 | restore_stmt_status): Delete temp_slot stuff from here. | |
1447 | ||
1448 | Sun Mar 25 20:21:58 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1449 | ||
1450 | * expr.c (emit_move_insn): Turn memory address checking back on, | |
1451 | but allow push_operand for x. | |
1452 | ||
1453 | * ns32k.md (movstrsi): If UTEK_ASM, output $0 operand in movsd. | |
1454 | (movsi): Handle UTEK_ASM like GNX_V3. | |
1455 | * out-ns32k.c (print_operand_address): Add UTEK_ASM conditionals. | |
1456 | * tm-merlin.h: New file. | |
1457 | ||
1458 | * tm-ns32k.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): | |
1459 | Use save and restore insns if no frame pointer. | |
1460 | ||
1461 | * cccp.c (handle_directive): Discard backslash-newline within <...>. | |
1462 | ||
1463 | Sat Mar 24 13:23:52 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1464 | ||
1465 | * gcc.c (default_compilers): Add entry for .m files, for Objective C. | |
1466 | Always pass some -lang... option to cpp. | |
1467 | ||
1468 | * cccp.c (do_include): Support #import as well as #include. | |
1469 | (lookup_import, add_import, import_hash): New functions. | |
1470 | (main): Handle options -lang-c++ and -lang-objc and -lang-c. | |
1471 | Set variables cplusplus and objc. | |
1472 | (enum node_type, directive_table): Add #import. | |
1473 | (handle_directive): Treat #import as undefined unless objc is nonzero. | |
1474 | (initialize_builtins): If objc, define __OBJC__. | |
1475 | ||
1476 | * Makefile.in (lang-objc, cc1obj): New targets. | |
1477 | (objc-parse.o, objc-parse.c, objc-actions.o): New targets. | |
1478 | (C_OBJS): Add c-lang.o. | |
1479 | ||
1480 | * objc.gperf: New file. | |
1481 | * objc-parse.y, objc-actions.c, objc-actions.h: New files. | |
1482 | ||
1483 | * c-lang.c: New file. | |
1484 | * c-decl.c (c_decode_option): New name for lang_decode_option. | |
1485 | Used from c-lang.c and objc-actions.c. | |
1486 | ||
1487 | * toplev.c (compile_file): Call lang_init and lang_finish. | |
1488 | * c-lang.c, objc-actions.c, cplus-decl.c: Define those functions. | |
1489 | ||
1490 | * c-typeck.c (comptypes): Call maybe_objc_comptypes for record types. | |
1491 | * c-lang.c, objc-actions.c (maybe_objc_comptypes): New functions. | |
1492 | ||
1493 | * c-decl.c (implicitly_declare, finish_decl, finish_struct): | |
1494 | Call maybe_objc_check_decl before rest_of_decl_compilation. | |
1495 | * c-lang.c, objc-actions.c (maybe_objc_check_decl): New functions. | |
1496 | ||
1497 | * function.c (assign_stack_local): Align each slot only as needed. | |
1498 | Normally don't round size up, just align first. | |
1499 | New argument ALIGN specifies alignment, or 0 for that of MODE. | |
1500 | All callers changed. | |
1501 | (assign_outer_stack_local): Likewise. | |
1502 | * final.c (final_start_function): Round frame size to STACK_BOUNDARY. | |
1503 | ||
1504 | * function.c (assign_stack_temp, preserve_temp_slots): | |
1505 | (free_temp_slots): Moved from stmt.c. | |
1506 | ||
1507 | * stmt.c (expand_decl): Use convert_units to avoid overflow. | |
1508 | ||
1509 | Fri Mar 23 00:52:34 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1510 | ||
1511 | * c-decl.c (grokdeclarator): Warn if array element is incomplete. | |
1512 | ||
1513 | * varasm.c (assemble_variable): Use convert_units to compute | |
1514 | size in bytes. | |
1515 | (output_constructor): Likewise, for non-bit fields. | |
1516 | ||
1517 | * c-typeck.c (check_format, my_strchr): New functions. | |
1518 | (build_function_call): Call check_format. | |
1519 | * c-decl.c (lang_decode_options): Handle -Wformat. | |
1520 | * c-tree.h (warn_format): New flag. | |
1521 | ||
1522 | * xm-hp9k320.h (USE_C_ALLOCA): Define if not compiling with GCC. | |
1523 | ||
1524 | Thu Mar 22 23:35:33 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1525 | ||
1526 | * c-decl.c (get_parm_info): Void parm is special only if no name. | |
1527 | ||
1528 | * loop.c (may_not_optimize): Static var replaces local `may_not_move'. | |
1529 | (strength_reduce): Don't accept those regs as givs. | |
1530 | ||
1531 | Thu Mar 22 06:45:16 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1532 | ||
1533 | * integrate.c (expand_inline_function): Compute delta to frame | |
1534 | from the address at which it was allocated. | |
1535 | ||
1536 | Wed Mar 21 17:36:40 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1537 | ||
1538 | * recog.c: Increase number of changes saved for validate_change. | |
1539 | (validate_change): If INSN == 0 and in group, add to group; if not, | |
1540 | always OK. | |
1541 | (apply_change_group): If INSN == 0, change is always OK. | |
1542 | ||
1543 | * cse.c (cse_basic_block): If extending block, don't call | |
1544 | cse_end_of_basic_block with null insn if we got to end of function. | |
1545 | ||
1546 | Wed Mar 21 14:08:35 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1547 | ||
1548 | * calls.c (expand_call): Don't reuse pending_stack_adjust for argblock | |
1549 | if inhibit_defer_pop. | |
1550 | ||
1551 | * expr.c (push_block): New argument EXTRA. All callers changed. | |
1552 | (emit_push_insn): Use that for the padding when using push_block. | |
1553 | ||
1554 | * tm-sparc.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): | |
1555 | Only word-aligned BLKmodes can go in registers. | |
1556 | (FUNCTION_ARG_PARTIAL_NREGS): Likewise. | |
1557 | * tm-spur.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Likewise. | |
1558 | * expr.c (expand_call): If encounter a stack parm before offset | |
1559 | gets up to zero, make it zero. | |
1560 | * function.c (assign_parms): Likewise. | |
1561 | ||
1562 | * ns32k.md (stack adjust insn): Don't use cmpd or cmpqd on Sequent. | |
1563 | * tm-sequent.h (SEQUENT_ADJUST_STACK): Define this. | |
1564 | ||
1565 | * make-hp9k320g (AR): Define it. | |
1566 | * Makefile.in (gnulib): Use OLDAR. | |
1567 | (OLDAR): New variable. | |
1568 | ||
1569 | * make-iris: New file. | |
1570 | ||
1571 | * xm-iris.h: Undef alloca before defining it. | |
1572 | ||
1573 | * Makefile.in (stage1, ...): Always copy gnulib, never link. | |
1574 | ||
1575 | * cccp.c (main): Use -d...M... as option for macro dump. | |
1576 | * gcc.c (default_compilers): Pass -d* to cpp. | |
1577 | ||
1578 | Tue Mar 20 01:41:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1579 | ||
1580 | * c-parse.y (datadef): Error message fix. | |
1581 | * cplus-parse.y: Likewise. | |
1582 | ||
1583 | Mon Mar 19 15:26:27 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1584 | ||
1585 | * integrate.c (expand_inline_function): Save static chain value. | |
1586 | (copy_rtx_and_substitute): Substitute it where called function | |
1587 | copies its static chain. | |
1588 | * emit-rtl.c (init_emit_once): Make static_chain_incoming_rtx | |
1589 | distinct. | |
1590 | ||
1591 | * function.c (current_function_contains_functions): New variable. | |
1592 | (init_function_start): Initialize it. | |
1593 | (pop_function_context): Set it to 1. | |
1594 | * integrate.c (function_cannot_inline_p): | |
1595 | Don't inline fn with nested fns. | |
1596 | ||
1597 | * integrate.c (copy_rtx_and_substitute): Don't replace fp | |
1598 | as destination of assignment. | |
1599 | ||
1600 | * assert.h (__assert) [not __GNUC__]: Rename arg to avoid stringify. | |
1601 | ||
1602 | * function.c (expand_function_start): If struct_value_incoming_rtx | |
1603 | is 0, get the address from first parm reg or first stack slot. | |
1604 | (assign_parms): In that case, skip the space it occupies. | |
1605 | ||
1606 | * calls.c (expand_call): If STRUCT_VALUE is 0, pass address as parm | |
1607 | even if that means using a register. | |
1608 | ||
1609 | Mon Mar 19 07:43:46 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1610 | ||
1611 | * integrate.c (function_cannot_inline_p): Check for non-ANSI varargs | |
1612 | as well as ANSI varargs. | |
1613 | Allow inlining of functions with large frames now that we can share | |
1614 | them between inlined functions. | |
1615 | (expand_inline_function): Save static vars in case we were called | |
1616 | recursively. | |
1617 | Make sure we don't free temporary stack slot used for argument. | |
1618 | ||
1619 | * tree.def: Add new code types '<', '1', and '2' for comparison, | |
1620 | unary arith, and binary arith, resp. Change some 'e' types to those. | |
1621 | * expr.c (init_comparisons): Delete fn. | |
1622 | (expand_expr): Handle X ? A binop B : A with copy and conditional op. | |
1623 | In X ? A : B, if A and B both simply, do with only one jump. | |
1624 | Remove existing test for things like x = y | (a == b). | |
1625 | (preexpand_calls): Handle new code types for expressions. | |
1626 | * optabs.c (init_optabs): No longer call init_comparisons. | |
1627 | * fold-const.c (operand_equal_p): No longer static. | |
1628 | Ignore NON_LVALUE_EXPR. | |
1629 | Only require constants if new operand ONLY_CONST is non-zero. | |
1630 | (fold): Treat tree code types '<', '1', and '2' as 'e'. | |
1631 | Handle cases where an arithmetic operation is applied to a compound, | |
1632 | conditional, or comparison operation by distributing the arithmetic | |
1633 | operation inside the compound, conditional, or comparison operation. | |
1634 | Update calls to operand_equal_p. | |
1635 | Convert A ? B : B to (A, B). | |
1636 | * expmed.c (make_tree): No longer static. | |
1637 | * tree.h: Define new macro TREE_CODE_CLASS. | |
1638 | Define extern make_tree. | |
1639 | * print-tree.c (prtypeinfo): New new macro TREE_CODE_CLASS. | |
1640 | (dump): Use new macro and treat types '<', '1', and '2' as 'e'. | |
1641 | * cplus-lex.c (init_lex): Likewise. | |
1642 | * tree.c (make_node, copy_node): Ditto. | |
1643 | ||
1644 | Mon Mar 19 00:05:50 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1645 | ||
1646 | * gcc.c (main): Trap SIGPIPE. | |
1647 | ||
1648 | Sat Mar 17 13:09:46 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1649 | ||
1650 | * jump.c (jump_optimize): Also delete no-op insns to store bit fields. | |
1651 | ||
1652 | * sparc.md (patterns for addcc, subcc, andcc, andncc, orcc, orncc): | |
1653 | (and xorcc, xorncc): Use arith32_operand as predicate. | |
1654 | ||
1655 | Fri Mar 16 15:19:21 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1656 | ||
1657 | * tm-vms.h (NO_DOLLAR_IN_LABEL): Define this. | |
1658 | ||
1659 | * function.c (assign_parms): Use INIT_CUMULATIVE_INCOMING_ARGS | |
1660 | if that is defined. | |
1661 | ||
1662 | * c-decl.c (duplicate_decls): `static' always prevails, for functions. | |
1663 | * cplus-decl.c (duplicate_decls): Likewise. | |
1664 | ||
1665 | * sparc.md (patterns for andncc, orncc, xorncc): | |
1666 | Delete `%' from constraint. | |
1667 | (patterns for addcc, andcc, orcc, xorcc): Use symmetrical predicates. | |
1668 | (peephole for returning sum): Likewise. | |
1669 | ||
1670 | Thu Mar 15 22:02:02 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1671 | ||
1672 | * expmed.c (expand_mult_add): Handle either x or mult having VOIDmode. | |
1673 | Always pass both args to type_for_mode. | |
1674 | ||
1675 | * expmed.c (extract_bit_field, store_bit_field): | |
1676 | When changing mode of a reg to SImode, also do big-endian correction. | |
1677 | Consistently use BYTES_BIG_ENDIAN to decide how bits are numbered. | |
1678 | Fix stray ref to CODE_FOR_extzv in case for extv. | |
1679 | ||
1680 | * c-typeck.c (build_unary_op): Allow function type args to `!', | |
1681 | since they convert to pointers. | |
1682 | * cplus-typeck.c (build_unary_op): Likewise. | |
1683 | ||
1684 | Thu Mar 15 06:30:21 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1685 | ||
1686 | * expr.c (convert_to_mode): Don't copy constant to register. | |
1687 | Use GET_MODE_CLASS instead of integer_mode_p. | |
1688 | (integer_mode_p): Delete obsolete fn (only use above). | |
1689 | ||
1690 | * loop.c (product_cheap_p): Don't crash if no insns need to multiply; | |
1691 | that case is cheap. | |
1692 | ||
1693 | Thu Mar 15 02:11:34 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1694 | ||
1695 | * regclass.c (init_reg_sets_1): Set n_non_fixed_regs. | |
1696 | * loop.c (scan_loop, strength_reduce): Set threshold from num of regs. | |
1697 | ||
1698 | Wed Mar 14 19:31:18 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1699 | ||
1700 | * integrate.c (function_cannot_inline_p): Allow BLKmode parms. | |
1701 | Allow address of aggregate parm. | |
1702 | (expand_inline_function): Create and maintain const_equiv_map | |
1703 | and const_age_map. Increment const_age at basic blocks. | |
1704 | Don't substitute constant values for parm regs; | |
1705 | instead, call try_constants for each insn copied. | |
1706 | When structure_value_addr in't 0, check aggregate_value_p too. | |
1707 | Round size of parm_map up. | |
1708 | Don't init inline_fp_rtx unless it is used. | |
1709 | Don't use emit_move_insn when copying a SET insn. | |
1710 | (copy_rtx_and_substitute): Handle inline_target being used when 0. | |
1711 | Don't build a SUBREG of a CONST_INT. | |
1712 | For PLUS of constant, do plus_constant whether mem address or not. | |
1713 | Set up inline_fp_rtx if we need it. | |
1714 | Clear RTX_UNCHANGING_P in all MEMs. | |
1715 | (try_constants, subst_constants): New functions. | |
1716 | (access_parm_map): No big-endian offset for BLKmode parms. | |
1717 | Do change_address if mode doesn't match. | |
1718 | (const_equiv): New function. | |
1719 | (try_fold_cc0): Use that function. | |
1720 | In "small win" case, extract CODE_LABEL out of LABEL_REF for emit_jump. | |
1721 | (output_inline_function): Set return_label to 0. | |
1722 | ||
1723 | * recog.c (cancel_changes, num_validated_changes): New functions. | |
1724 | ||
1725 | Tue Mar 13 17:30:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1726 | ||
1727 | * recog.c (constrain_operands): Define `V' constraint. | |
1728 | ||
1729 | Tue Mar 13 17:10:40 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1730 | ||
1731 | * cplus-lex.c (operator_name_string, init_lex): Cast enums to ints | |
1732 | to avoid errors from some C compilers. | |
1733 | ||
1734 | * cplus-init.c (expand_aggr_vbase_init): Make declarations consistent. | |
1735 | ||
1736 | Sun Mar 11 18:37:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1737 | ||
1738 | * ns32k.md (movsi): Flush spurious arg to abort. | |
1739 | ||
1740 | * Makefile.in (gnulib.portable, stamp-gnulib2): Ignore error in ranlib. | |
1741 | ||
1742 | Sat Mar 10 19:38:36 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1743 | ||
1744 | * function.h: Add new fields temp_slots and temp_slot_level. | |
1745 | * stmt.c (struct temp_slot): New structure. | |
1746 | (init_stmt_for_function): Initialize temp slot info. | |
1747 | (save_stmt_status, restore_stmt_status): Save and restore temp slots. | |
1748 | (expand_asm_operands): Remove redundant assignment to LAST_EXPR_TYPE. | |
1749 | Free any temporaries made. | |
1750 | (assign_stack_temp, preserve_temp_slots, free_temp_slots): New fns. | |
1751 | (expand_expr_stmt): If last expression had a value (i.e., in ({..}) | |
1752 | grouping), maybe preserve temporaries. | |
1753 | (expand_return, tail_recursion_args): Free any temporaries allocated. | |
1754 | (expand_start_bindings): Push temporary stack level. | |
1755 | (expand_end_bindings): Pop temporary stack level. | |
1756 | (expand_decl): Use kept temporary slots for automatic variables. | |
1757 | Free temporary slots after computing size. | |
1758 | (expand_decl_init, expand_cleanups, expand_end_case): Free any | |
1759 | allocated temporaries. | |
1760 | * calls.c (expand_call): Use assign_stack_temp instead of | |
1761 | get_structure_value_addr. | |
1762 | Make a new temporary level while expanding a call and free | |
1763 | temporaries as soon as we know they aren't going to be reused. | |
1764 | (store_one_arg): Free any temporary slots made for arg being stored. | |
1765 | * function.c (get_structure_value_addr): Delete fn. | |
1766 | (init_function_start): No longer initialize structure value addr. | |
1767 | * integrate.c (expand_inline_function): Use temporary slot for | |
1768 | inlined function's frame. | |
1769 | Free temporaries needed while evaluating arguments. | |
1770 | * expr.c (expand_assignment, do_jumps): Free temps no longer needed. | |
1771 | (store_expr): Don't check for structure value addr. | |
1772 | (save_noncopied_parts, expand_expr): Call assign_stack_temp | |
1773 | instead of assign_stack_local. | |
1774 | (preexpand_calls): No longer special-case fns returning structures. | |
1775 | * c-typeck.c (c_expand_asm_operands): Free any temporaries made. | |
1776 | * cplus-typeck.c (c_expand_asm_operands): Ditto. | |
1777 | * cplus-decl2.c (finish_file): Ditto. | |
1778 | * cplus-init.c (expand_aggr_init_1): Ditto. | |
1779 | * cplus-type2.c (make_merged_ref): Preserve result and free | |
1780 | other temporaries. | |
1781 | * cplus-parse.y (stmt): Free any temporaries in EXCEPT clause. | |
1782 | ||
1783 | Sat Mar 10 16:07:27 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1784 | ||
1785 | * loop.c (other_reg_use_p): New name for only_reg_use_p. | |
1786 | Return 0 if IN == EXPR. | |
1787 | (check_eliminate_biv): Re-invert the test using other_reg_use_p. | |
1788 | ||
1789 | Fri Mar 9 18:34:11 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1790 | ||
1791 | * optabs.c (init_optabs): Handle PSImode insns. | |
1792 | ||
1793 | Fri Mar 9 18:24:11 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1794 | ||
1795 | * local-alloc.c (local_alloc): Clear qty_phys_sugg and _has_sugg | |
1796 | when doing loop, not just when doing bzero. | |
1797 | Add new vars qty_phys_copy_sugg and _has_copy_sugg. | |
1798 | (block_alloc): Rework detection of possible tied registers to use | |
1799 | extracted insn operands rather than trying to parse operands from | |
1800 | RTL description. | |
1801 | Don't tie registers if output has earlyclobber. | |
1802 | For REG_NO_CONFLICT, check commutativity of expression in REG_EQUAL, | |
1803 | rather than of operation of attached insn. | |
1804 | If insn is a simple copy, pass that info to combine_regs. | |
1805 | (combine_regs): For multi-word items, mark all registers actually | |
1806 | used as preferred. | |
1807 | If the insn is a simple copy, record hard reg suggestions in | |
1808 | qty_phys_copy_sugg instead of qty_phys_sugg. | |
1809 | (find_free_reg): Correctly check for all registers used. | |
1810 | If qty_phys_has_copy_sugg is non-zero, use that register set. If | |
1811 | none of them couldn't be allocated, try the other suggest set if | |
1812 | it exists. | |
1813 | ||
1814 | Thu Mar 8 02:17:50 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1815 | ||
1816 | * jump.c (jump_optimize): Detect tablejumps that always go to | |
1817 | the same place, and change to unconditional jumps. | |
1818 | ||
1819 | * fold-const.c (fold): Simplify comparison of integer value with self. | |
1820 | ||
1821 | * rtl.h (FUNCTION_FLAGS...): Additional flag bits for saving | |
1822 | current_function_returns_pointer, and several others. | |
1823 | (FUNCTION_PRETEND_ARGS_SIZE): New component in inline header. | |
1824 | * integrate.c (save_for_inline): Record these flags. | |
1825 | (output_inline_function): Get them out again. | |
1826 | Also restore current_function_args_size and ..._pretend_... | |
1827 | ||
1828 | * ns32k.md (movsi, movdi): Handle floating point registers. | |
1829 | ||
1830 | * dbxout.c (dbxout_prepare_symbol): New function, output N_SOL stab. | |
1831 | (dbxout_symbol, dbxout_parms, dbxout_reg_parms): Call it. | |
1832 | * final.c (output_source_file): New function. | |
1833 | ||
1834 | * reload.c (find_reloads_toplev): Do BYTES_BIG_ENDIAN offset | |
1835 | only within a word. | |
1836 | ||
1837 | * stdarg.h: Use _VA_LIST_ as macro to indicate already loaded. | |
1838 | ||
1839 | * fixincludes: Supply missing semicolon in netinet/ip.h. | |
1840 | ||
1841 | * tm-alliant.h (FUNCTION_PROLOGUE): Use `linkl' on 68020. | |
1842 | ||
1843 | * regclass.c (init_reg_sets): For subunion, keep largest candidate. | |
1844 | ||
1845 | Wed Mar 7 00:37:22 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1846 | ||
1847 | * emit-rtl.c (in_sequence_p): New function. | |
1848 | ||
1849 | * expr.c (expand_builtin): For BUILT_IN_SAVEREGS, insert after | |
1850 | the initial NOTE insn. | |
1851 | ||
1852 | * dbxout.c (dbxout_finish_symbol): New argument is a decl or 0. | |
1853 | Output line number in desc field. | |
1854 | All callers changed to pass the argument. | |
1855 | ||
1856 | * tree.h (TREE_PUBLIC): Move back to tree_common. | |
1857 | ||
1858 | * dbxout.c (dbxout_init): Output working dir in a N_SO symbol. | |
1859 | ||
1860 | * expr.c (emit_library_call): Handle PUSH_ROUNDING. | |
1861 | ||
1862 | * explow.c (break_out_memory_refs): Use same mode as the MEM has. | |
1863 | ||
1864 | * out-mips.c (output_load_immediate): Let the assembler do the work. | |
1865 | ||
1866 | Tue Mar 6 22:20:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1867 | ||
1868 | * cccp.c (macroexpand): Fix bug in scanning strings for stringify. | |
1869 | ||
1870 | * stmt.c (expand_goto_internal): Adjust stack after cleanups. | |
1871 | (expand_end_bindings, fixup_cleanups): Likewise. | |
1872 | ||
1873 | * tm-alliant.h (STATIC_CHAIN_REGNUM): Use 10. | |
1874 | ||
1875 | Tue Mar 6 15:23:11 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) | |
1876 | ||
1877 | * config.gcc: Accept srcdir & vint with either '-' or '+'. | |
1878 | ||
1879 | * c-parse.y (hash, is_reserved_word): Use __inline so it can | |
1880 | be compiled with `gcc -traditional'. | |
1881 | ||
1882 | Tue Mar 6 14:52:12 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1883 | ||
1884 | * c-parse.y (compstmt): Don't return null tree for empty group. This | |
1885 | will cause the compiler to dump core on a ({}) construct. | |
1886 | * cplus-parse.y (compstmt): Ditto. | |
1887 | ||
1888 | Tue Mar 6 14:33:42 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1889 | ||
1890 | * tree.h (TREE_STATIC): Move back to common. | |
1891 | ||
1892 | Tue Mar 6 06:04:30 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1893 | ||
1894 | * function.h (expr_stmts_for_value): New field. | |
1895 | * stmt.c (init_stmt_for_function): Initialize vars for expression | |
1896 | statements. | |
1897 | (save_stmt_status, restore_stmt_status): Save and restore value of | |
1898 | expr_stmts_for_value. | |
1899 | ||
1900 | * cse.c (record_jump_equiv): Ensure previous insn is an INSN before | |
1901 | testing it (it might be a NOTE). | |
1902 | ||
1903 | Tue Mar 6 00:26:20 1990 Richard Stallman (rms at geech) | |
1904 | ||
1905 | * tm-ns32k.h (NOTICE_UPDATE_CC): Use abort in case | |
1906 | that shouldn't happen. | |
1907 | ||
1908 | Mon Mar 5 23:11:57 1990 Richard Stallman (rms at geech) | |
1909 | ||
1910 | * Makefile.in (cplus-tab.h): Say expect 12 reduce/reduce conflicts. | |
1911 | ||
1912 | * genoutput.c (output_prologue): Include insn-attr.h. | |
1913 | ||
1914 | * pyr.md (addsi3, mulsi3, umulsi3, andsi3, iorsi3, xorsi3): | |
1915 | Make input arg predicates symmetrical. | |
1916 | (adddi3, anddi3, iordi3, xordi3): Likewise. | |
1917 | (addsi3): Use immediate subtract if suitable. | |
1918 | ||
1919 | Sat Mar 3 21:08:25 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1920 | ||
1921 | * expr.c (move_block_to_reg, emit_push_insn): Don't treat double 0.0 | |
1922 | as two words of zero. | |
1923 | Handle DImode constants as two integers. | |
1924 | Support CONST_INT (currently only called with const0_rtx). | |
1925 | ||
1926 | * expr.c (convert_move): Can only use slt if STORE_FLAG_VALUE == -1. | |
1927 | ||
1928 | Sat Mar 3 15:03:00 1990 Richard Stallman (rms at geech) | |
1929 | ||
1930 | * function.c (setjmp_protect_args, setjmp_args_warning): New functions. | |
1931 | * toplev.c (rest_of_compilation): Call setjmp_args_warning. | |
1932 | * c-decl.c (finish_function): Call setjmp_protect_args. | |
1933 | ||
1934 | * flow.c (regno_clobbered_at_setjmp): Argument registers | |
1935 | are in effect set at start of function. | |
1936 | ||
1937 | * tm-sparc.h (ASM_OUTPUT_DOUBLE): Replace missing line. | |
1938 | ||
1939 | * print-tree.c (prtypeinfo): Don't check DECL-only | |
1940 | flags for other nodes. | |
1941 | ||
1942 | * toplev.c: Eliminate `#ifdef 0'. | |
1943 | ||
1944 | * dbxout.c (print_int_cst_octal): New function. | |
1945 | (dbxout_type): Use that for long long types. | |
1946 | ||
1947 | * Makefile.in (start.encap, rest.encap): Split all.internal. | |
1948 | ||
1949 | * tahoe.md: Adjust formatting. | |
1950 | ||
1951 | * tahoe.md (ashlsi3, lshlsi3): Don't clobber a const_int. | |
1952 | Instead, use %s to convert shift count to multiplier. | |
1953 | * tm-tahoe.h (PRINT_OPERAND): Handle %s. | |
1954 | ||
1955 | * tm-tahoe.h (CONST_COSTS): Specify cost of MULT. | |
1956 | ||
1957 | Fri Mar 2 01:00:11 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1958 | ||
1959 | * cse.c (rtx_cost): By default, multiply and divide are expensive. | |
1960 | ||
1961 | * expmed.c (expand_mult_add): Use type_for_mode. | |
1962 | Allow ADD to have a different mode. | |
1963 | * c-typeck.c (type_for_mode): New function. | |
1964 | (get_floating_type): Function deleted. | |
1965 | * cplus-typeck.c: Likewise. | |
1966 | ||
1967 | * jump.c (jump_optimize): Simplify `if (x) goto foo; else goto foo;'. | |
1968 | ||
1969 | Thu Mar 1 17:41:22 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
1970 | ||
1971 | * out-mips.c (tree_code_name): Declaration deleted. | |
1972 | ||
1973 | * stmt.c (expand_expr_stmt): No "no side effects" warning for (void)0. | |
1974 | ||
1975 | * assert.h (__assert): Don't call abort; use 0 as value. | |
1976 | * gnulib2.c (__eprintf): Call abort here. | |
1977 | ||
1978 | * c-decl.c (pushdecl): Don't warn if shadowing error_mark_node. | |
1979 | ||
1980 | * optabs.c: Use GET_MODE_WIDER_MODE instead of INC_MODE. | |
1981 | ||
1982 | * machmode.def: Set up next-wider-mode for floating modes. | |
1983 | ||
1984 | Wed Feb 28 18:58:22 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
1985 | ||
1986 | * stmt.c (expand_goto_internal): Add missing stack adjust. | |
1987 | (expand_fixup): Don't do stack adjust if fixup isn't for current pos. | |
1988 | ||
1989 | * stmt.c (expand_start_stmt_expr, expand_end_stmt_expr): No need to | |
1990 | save result from start_sequence in RTL_EXPR. | |
1991 | ||
1992 | * stmt.c (expand_end_loop): Correctly see if NOTE_INSN_LOOP_CONT | |
1993 | was written. | |
1994 | ||
1995 | * stmt.c (expand_decl): Omit move to OLDADDR if it would be noop. | |
1996 | ||
1997 | * expr.c (expand_expr): Don't use variable TYPE in subblocks that | |
1998 | hides TYPE at function level. | |
1999 | ||
2000 | * expr.c (force_operand): Always generate PLUS for constant. | |
2001 | Use negate_rtx to negate constant. | |
2002 | ||
2003 | * expr.c (expand_expr): Ensure that type is not wider than | |
2004 | HOST_BITS_PER_INT when assuming that constant is entirely in | |
2005 | TREE_INT_CST_LOW. | |
2006 | Simplify EXPAND_SUM code for PLUS_EXPR and MINUS_EXPR. | |
2007 | Call preexpand_calls at binop instead of all places that branch to it. | |
2008 | ||
2009 | * expmed.c (expand_shift): Skip widening try for rotates; avoid | |
2010 | passing UNSIGNEDP == -1 to expand_binop. | |
2011 | ||
2012 | * expr.c (expand_builtin): Use a sequence instead of reorder_insns. | |
2013 | ||
2014 | * tree.c (save_expr): Ignore NON_LVALUE_EXPRs. | |
2015 | Mark as TREE_VOLATILE so won't be inadvertently deleted. | |
2016 | (build): Special-case LENGTH == 1 also. | |
2017 | ||
2018 | Wed Feb 28 12:57:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2019 | ||
2020 | * expr.c (convert_move): Handle conversions to and from PSImode. | |
2021 | ||
2022 | * stor-layout.c (layout_type): For integer types, don't consider | |
2023 | PSImode, etc. | |
2024 | ||
2025 | * expmed.c (init_expmed): Typo: test was backwards. | |
2026 | ||
2027 | * Makefile (install): When installing $${eachfile}, use basename. | |
2028 | ||
2029 | Tue Feb 27 14:48:46 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2030 | ||
2031 | * tree.h (struct tree_common): Delete certain attributes. | |
2032 | external, public, static, nonlocal, regdecl, inline. | |
2033 | (struct tree_decl): Insert them here. | |
2034 | ||
2035 | * combine.c (try_combine): Avoid generating nested SUBREGs for | |
2036 | operands when handling case where I2 or I1 is a SUBREG assignment. | |
2037 | Never combine with an insn that sets a register to itself if it has | |
2038 | a REG_EQUAL note. | |
2039 | (subst): Correct errors in changing (minus (x) (c)) to (plus (x) (-c)). | |
2040 | Recompute CODE before second switch. | |
2041 | Case NOT: in second switch failed to set undobuf.storage. | |
2042 | (gen_lowpart_for_combine): Don't allow multi-word modes; do allow | |
2043 | null conversions. | |
2044 | ||
2045 | Tue Feb 27 07:13:17 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2046 | ||
2047 | * combine.c (try_combine): Don't combine when doing so would | |
2048 | replace destination that is being modified, as opposed to replaced. | |
2049 | ||
2050 | * function.c (fixup_var_refs_1): Rework to correctly support | |
2051 | bit-field insns that don't allow memory operands. | |
2052 | Correctly detect insns that simply copy a variable to or from a | |
2053 | register. | |
2054 | (optimize_bit_field): Use a sequence rather than reorder_insns. | |
2055 | * Makefile.in (function.o): Update dependancies. | |
2056 | ||
2057 | * recog.h: Delete obsolete insn_machine_info. | |
2058 | ||
2059 | * function.c (assign_parms): Use move_block_from_regs to place | |
2060 | first part of parameter partially in registers into memory. | |
2061 | ||
2062 | Mon Feb 26 19:02:56 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2063 | ||
2064 | * fixincludes: Find only .h files when looking for headers. | |
2065 | ||
2066 | * function.c (expand_function_start): Save arg ptr reg | |
2067 | if there are nonlocally-referenced parms. | |
2068 | ||
2069 | Fri Feb 23 13:21:27 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2070 | ||
2071 | * c-parse.y (readescape): For x, avoid overflow when shifting in if. | |
2072 | ||
2073 | Thu Feb 22 19:14:17 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2074 | ||
2075 | * fixincludes: Delete directories before creating them. | |
2076 | When making internal symbolic directory links, chase | |
2077 | chain of existing links to the end. | |
2078 | ||
2079 | * dbxout.c (dbxout_type): Always use main variant (until | |
2080 | there is code to report the distinctions usefully). | |
2081 | ||
2082 | Wed Feb 21 13:20:33 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2083 | ||
2084 | * math-68881.h (hypot): New function. | |
2085 | ||
2086 | * optabs.c (expand_binop): Swap operands if that makes modes match. | |
2087 | ||
2088 | * expr.c (expand_expr): For ARRAY_EXPR, when converting to | |
2089 | multiplication and addition, use type of index for product. | |
2090 | ||
2091 | * gcc.c (LIB_SPEC): Link with -lg if -g specified. | |
2092 | * tm-isi68.h, tm-next.h, tm-sparc.h, tm-sun3.h, tm-sun386i.h: Likewise. | |
2093 | * tm-mips.h (LIB_SPEC): Override to avoid using -lg. | |
2094 | ||
2095 | * toplev.c (main): Warn for -g if not supported. | |
2096 | ||
2097 | * c-decl.c (grokdeclarator): Do pedantic checks for const functions | |
2098 | where function decls and variant function types are made. | |
2099 | ||
2100 | Mon Feb 19 20:06:48 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2101 | ||
2102 | * optabs.c: Restore Feb 13 change. | |
2103 | ||
2104 | * varasm.c (readonly_data_section): New fn. | |
2105 | (assemble_variable, get_or_assign_label, output_constant_pool): | |
2106 | Use new fn instead of text_section. | |
2107 | * final.c (end_final): Write profiling table to read-only section. | |
2108 | (get_attr_length, shorten_branches): Address vectores take no space | |
2109 | if not in text section. | |
2110 | Vectors are in operand 0 for ADDR_VEC but 1 for ADDR_DIFF_VEC. | |
2111 | (final_scan_insn): Merge cases for ADDR_VEC and ADDR_DIFF_VEC. | |
2112 | Put vector tables in read-only section. | |
2113 | ||
2114 | Sun Feb 18 13:58:04 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2115 | ||
2116 | * gnulib2.c (__shtab): New vector. | |
2117 | * Makefile.in (LIB2FUNCS): Add that member. | |
2118 | ||
2119 | * *tahoe*: New versions of these files. | |
2120 | ||
2121 | * optabs.c: File was deleted. Copied last backup. | |
2122 | Feb 13 change lost. | |
2123 | ||
2124 | * tm-sparc.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Handle nans. | |
2125 | Don't output more digits than the numbers have. | |
2126 | * tm-sun3.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Likewise. | |
2127 | (ASM_OUTPUT_DOUBLE_OPERAND): Don't output excess digits. | |
2128 | ||
2129 | * m68k.md (movqi): Don't use clrb or st if dest is volatile. | |
2130 | ||
2131 | * expmed.c (expand_mult): Don't use sum of shifts if mult is cheaper. | |
2132 | (init_expmed): Set mult_is_cheap based on rtx_cost. | |
2133 | * toplev.c (compile_file): Call init_expmed. | |
2134 | * cse.c (rtx_cost): Not static. | |
2135 | ||
2136 | * tm-mips.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): | |
2137 | Start name with $. | |
2138 | ||
2139 | * tm-alliant.h, tm-convex.h, tm-hp9k3bsd.h, tm-news.h, tm-seq386.h: | |
2140 | * tm-sequent.h, tm-spur.h, tm-sun2.h, tm-tahoe.h, tm-vax.h: | |
2141 | (LIB_SPEC): Put in -lc with appropriate alternatives. | |
2142 | ||
2143 | * toplev.c (rest_of_compilation): | |
2144 | Clear rtx_equal_function_value_matters just before final. | |
2145 | ||
2146 | * cccp.c (rescan): If don't find paren after macro, back up over space. | |
2147 | ||
2148 | Sat Feb 17 20:58:21 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2149 | ||
2150 | * tm-hp9k320.h (CPP_SPEC): Remove _INCLUDE__STDC__. | |
2151 | ||
2152 | Wed Feb 14 09:06:26 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2153 | ||
2154 | * loop.c (struct movable): Add SET_DEST and SET_EQUAL fields. | |
2155 | (single_set): New fn. | |
2156 | (scan_loop, force_movables, move_movables, consec_set_invariant_p): | |
2157 | Use new fn to look for insns that contain a single set. | |
2158 | Use new fields in struct movable. | |
2159 | (scan_loop, strength_reduce): Pass number of registers to | |
2160 | strength_reduce. | |
2161 | (libcall_benefit): New fn. | |
2162 | (scan_loop, strength_reduce, consec_sets_giv): Use it. | |
2163 | (skip_consec_insns): Correctly count insns to be skipped when | |
2164 | NOTEs are present. | |
2165 | (combine_movables): In some cases, combine regs that load CONST_INTs | |
2166 | even if the modes of the destination differ. This requires starting | |
2167 | the inner loop from the start of the movable list. | |
2168 | Use find_reg_note to search for notes. | |
2169 | Don't choose a use of an equivalence instead of the insn that sets | |
2170 | the register directly (hence setting up the equivalence). | |
2171 | Set DONE for the matched movable to ensure it isn't duplicated. | |
2172 | (replace_call_address): No longer used. | |
2173 | (move_movables): When moving a LIBCALL block where the address of | |
2174 | the fn is in a register, emit an insn to move the actual address | |
2175 | in case the original move was CSE'ed out of the block. | |
2176 | Emit AND insn via expand_binop instead of explicit RTL. | |
2177 | Search for matching from start of list, not from movable being matched. | |
2178 | If mode of combined movables differ, use SUBREG to replace narrower. | |
2179 | (replace_regs): Don't replace register if it is the destination. | |
2180 | (count_nonfixed_reads): Mem ref is fixed if addres is loop invariant. | |
2181 | (can_jump_into_range_p): Speed up common cases. | |
2182 | (count_loop_regs_set): Do same thing for parts of PARALLEL as when | |
2183 | they occur standalone. | |
2184 | (struct induction): Delete fields forces, forces2, and consec. | |
2185 | Store dest and src reg rtx instead of register number. | |
2186 | Add new fields always, cant_derive, combined_with, maybe_dead, and | |
2187 | derive_adjustment. | |
2188 | (struct iv_class): Add new fields initial_test, init_set, incremented. | |
2189 | (all strength reduction routines): Use single_set and use new | |
2190 | struct induction fields; forces is no longer used. | |
2191 | (record_biv): New fn. | |
2192 | (strength_reduce): Use it. | |
2193 | (record_initial, valid_initial_value_p): New fns. | |
2194 | (strength_reduce): Scan for bivs in loop order. | |
2195 | Refine handling of maybe_never. | |
2196 | A reg isn't a biv if it is never incremented. | |
2197 | Use note_stores and record_initial to correctly note all changes | |
2198 | to a biv's register prior to the start of the loop. | |
2199 | We may know biv's initial value if it was tested NE before the loop. | |
2200 | Use new valid_initial_value_p. | |
2201 | Ensure giv's insn is the last in a LIBCALL block or if consec. | |
2202 | Don't set maybe_never on jump back to top of loop. | |
2203 | Don't delete any insns setting givs; flow will eliminate them as | |
2204 | dead. Ditto for biv updates when biv can be eliminated. | |
2205 | If giv's last use is in a computation of another giv, mark that it | |
2206 | might be dead. | |
2207 | Make two passes over givs. In first pass, handle non-matched | |
2208 | givs. In second pass, handle the matched givs. | |
2209 | (only_reg_use_p): Now static. | |
2210 | (delete_insn_forces): Fn deleted; no longer used. | |
2211 | (update_giv_derive): New fn. | |
2212 | (strength_reduce): Call it for every insn and label. | |
2213 | (record_giv): If giv never used, ignore it. | |
2214 | (basic_induction_var): Always set *MULT_VAL to something. | |
2215 | A set of a biv from an invariant MEM is allowed. | |
2216 | (simplify_giv_expr, expr_cost): New fns. | |
2217 | (general_induction_var): Rewrite to use them. More types of | |
2218 | expressions are now recognized as givs. | |
2219 | Use results produced by update_giv_derive to ensure that giv derivation | |
2220 | works correctly when spanning biv update. | |
2221 | (consec_sets_giv): Can allocate temporary induction struct on stack. | |
2222 | Skip insns that set irrelevant items between two updates to giv. | |
2223 | (gen_iv_mult, emit_iv_init_code): Replace with emit_iv_add_mult. | |
2224 | (update_reg_last_use): New fn. | |
2225 | (emit_iv_add_mult): Call it for all operands. | |
2226 | (express_from, combine_givs_p, combine_givs): New fns. | |
2227 | (strength_reduce): Call them to combine givs. | |
2228 | (product_cheap_p): Rewrite to handle more cases. | |
2229 | Free any memory allocated. | |
2230 | (get_condition): New fn. | |
2231 | (strength_reduce, check_dbra_loop): Use it. | |
2232 | (check_dbra_loop): Use emit_move_insn instead of writing explicit SET. | |
2233 | Use emit_cmp_insn/emit_jump_insn to write out replacement test. | |
2234 | (check_eliminate_biv): Use single_set. | |
2235 | Refine test for insns that use biv only to calculate giv. | |
2236 | Return non-zero if can eliminate biv; don't set eliminable. | |
2237 | (can_eliminate_biv_p): Remove some duplicate code and allow | |
2238 | all constants in some cases where only CONST_INT was allowed. | |
2239 | Don't replace biv with giv that might be dead. | |
2240 | (eliminate_biv): Compute whether to put an invariant before insn | |
2241 | in which the biv is being eliminated or at the start of loop. | |
2242 | Allow more types of constants. | |
2243 | Don't replace biv with giv that might be dead. | |
2244 | Use validate_change when substituting into insn. | |
2245 | (strength_reduce): Change calls to check_eliminate_biv and | |
2246 | eliminate_biv. Call the former again after maybe_dead has possibly | |
2247 | been set on some givs. | |
2248 | ||
2249 | Tue Feb 13 19:58:46 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2250 | ||
2251 | * tree.c (function_obstack): New variable. | |
2252 | (init_allocation): Init it to temporary_obstack. | |
2253 | (save_tree_status): Save it, make new obstack for it. | |
2254 | (restore_tree_status): Free new obstack, restore old. | |
2255 | (temporary_allocation, resume_temporary_allocation): Use that one. | |
2256 | * function.h (struct function): Slot for saved function_obstack. | |
2257 | * tree.c (push_obstack, pop_obstack): New functions. | |
2258 | These implement a stack for obstack selection. | |
2259 | * function.c (put_var_into_stack): If var is nonlocal, | |
2260 | switch to obstacks of the function it is in. | |
2261 | ||
2262 | Tue Feb 13 17:52:15 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2263 | ||
2264 | * optabs.c (emit_no_conflict_block): During reload, don't do | |
2265 | any encapsulation or add notes. | |
2266 | Allow single insn or no insns in sequence. | |
2267 | ||
2268 | Tue Feb 13 12:51:45 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2269 | ||
2270 | * stor-layout.c (build_int): Increase limits of cache size. | |
2271 | ||
2272 | * sdbout.c (sdbout_symbol): Force output of symbol's type. | |
2273 | ||
2274 | Tue Feb 13 08:28:37 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2275 | ||
2276 | * toplev.c (rest_of_compilation): Don't skip compilation of function | |
2277 | if TREE_INLINE but no saved insns (e.g., if not -O). | |
2278 | ||
2279 | * rtlanal.c (replace_rtx): New function. | |
2280 | * rtl.h: Define it. | |
2281 | ||
2282 | Tue Feb 13 00:02:17 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2283 | ||
2284 | * c-decl.c (finish_struct): Lay out any existing array types | |
2285 | of newly completed struct. | |
2286 | (layout_array_type): New subroutine. | |
2287 | ||
2288 | Mon Feb 12 11:33:31 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2289 | ||
2290 | * function.c (assign_parms): If not -O, keep all parms in memory. | |
2291 | ||
2292 | * expr.c (clear_pending_stack_adjust): Ignore TREE_INLINE if not -O. | |
2293 | ||
2294 | * out-i386.c (output_fix_trunc): New function. | |
2295 | (fp_pop_int): Re-enabled. Handle more modes, individually. | |
2296 | (print_operand): Handle %D. | |
2297 | * i386.md (fix_truncdfdi2, fixuns_truncdfdi2): New patterns. | |
2298 | These changes from James Van Artsdalen. | |
2299 | ||
2300 | * gnulib2.c (__builtin_vec_delete): Use __builtin_delete, not free. | |
2301 | ||
2302 | * sdbout.c (sdbout_field_types): Do look through pointer types. | |
2303 | ||
2304 | Sat Feb 10 19:31:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2305 | ||
2306 | * sdbout.c (plain_type_1): Don't output tag until known. | |
2307 | (sdbout_one_type): Don't record tag in KNOWN_TYPE_TAG until end. | |
2308 | Reenable output of member types before original structure. | |
2309 | ||
2310 | * expr.c (expand_expr): Convert post-inc to pre-inc if result ignored. | |
2311 | ||
2312 | Sat Feb 10 14:35:03 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2313 | ||
2314 | * ns32k.md (movsf): Convert double constant to float. | |
2315 | ||
2316 | Fri Feb 9 00:02:43 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2317 | ||
2318 | * c-decl.c (duplicate_decls): Don't lose alignment of OLDDECL. | |
2319 | ||
2320 | * cccp.c (handle_directive): Keep comments by copying them explicitly. | |
2321 | ||
2322 | * cccp.c (rescan): When scanning for open-paren after macro name, | |
2323 | discard comments if appropriate. | |
2324 | ||
2325 | Fri Feb 9 18:26:34 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2326 | ||
2327 | * cse.c (cse_insn): Suppress infinite loop when associating | |
2328 | operations in cases where a reg, R, is equal to "R OP const1" and | |
2329 | we are looking at "R OP const2" for some associative operator OP. | |
2330 | ||
2331 | Thu Feb 8 14:19:41 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2332 | ||
2333 | * c-decl.c (build_enumerator): Pedantic warning if value not an int. | |
2334 | Access default value after checking for constant specified, | |
2335 | as it should no longer be possible to have NON_LVALUE_EXPR | |
2336 | in the default. | |
2337 | ||
2338 | * c-typeck.c (default_conversion): Don't truncate wide enums. | |
2339 | ||
2340 | * tm-hp9k320.h (CPP_SPEC): Define _INCLUDE__STDC__ if not traditional. | |
2341 | * tm-hp9k310.h (CPP_SPEC): Likewise. | |
2342 | ||
2343 | Wed Feb 7 12:59:07 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2344 | ||
2345 | * emit-rtl.c (emit_insns_before): New fn. | |
2346 | (init_emit_once): Add uses of new macros to support static chain | |
2347 | passed in memory. | |
2348 | * calls.c (prepare_call_address): Rework to set static chain for | |
2349 | languages that have EPmode function addresses and for nested | |
2350 | functions in C. | |
2351 | Emit USE insn for static_chain_rtx into list of USE insns to be | |
2352 | placed later. | |
2353 | (emit_call_1): USE_INSNS is now a list of insns, not a SEQUENCE. | |
2354 | (expand_call): Remove gratuitous forcing of FUNEXP to Pmode (it | |
2355 | might have been EPmode). | |
2356 | Make USE_INSNS a list, rather than a SEQUENCE. | |
2357 | Use prepare_call_address to emit load into static chain. | |
2358 | * expr.c (emit_library_call): Update call to prepare_call_address. | |
2359 | * function.c (expand_function_start): Use incoming static chain rtx | |
2360 | instead of outgoing form (was correct in one place, wrong in one). | |
2361 | * stmt.c (expand_goto): Set static_chain rtx after stack pointer | |
2362 | in case it uses the stack pointer. | |
2363 | Only write one USE for stack_pointer_rtx. | |
2364 | ||
2365 | Tue Feb 6 17:26:14 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2366 | ||
2367 | * jump.c (jump_optimize): Suppress optimization of `if (...) x = 1; | |
2368 | else {...} if (x) ...', when a label is present between the | |
2369 | assignment to X and the unconditional jump. | |
2370 | ||
2371 | Mon Feb 5 23:22:30 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2372 | ||
2373 | * combine.c (try_combine): If I2 or I1 is a PARALLEL, ignore only | |
2374 | CLOBBER parts when combining. Previously used to ignore USE parts | |
2375 | also but the latter can indicate that the insn needs some setup that | |
2376 | isn't shown in its rtl. | |
2377 | ||
2378 | Mon Feb 5 13:32:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2379 | ||
2380 | * vax.md (addhi3, addqi3): Fix typo checking for dec insn. | |
2381 | ||
2382 | * cccp.c (struct file_buf): New field `nominal_fname' is name spec'd | |
2383 | in #line command; `fname' is name of actual input file. | |
2384 | Many functions now use or set this field as well or instead. | |
2385 | ||
2386 | * c-decl.c (grokdeclarator): Fix missing paren. | |
2387 | ||
2388 | Sun Feb 4 12:37:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2389 | ||
2390 | * tm-3b1g.h: New file. | |
2391 | * config.gcc (3b1g, 3b1-gas): New alternative. | |
2392 | ||
2393 | * loop.c (move_movables): Skip USE insns when checking for | |
2394 | the insn that loads the address of a library function. | |
2395 | ||
2396 | * combine.c (combine_instructions): Compute total_distrib_*. | |
2397 | ||
2398 | * final.c (final): Do basic block profiling at end of function. | |
2399 | (final, final_scan_insn): Run CC_STATUS_INIT after block profiling. | |
2400 | (final_scan_insn): Detect cond jumps that use PARALLEL. | |
2401 | ||
2402 | Sun Feb 4 00:04:22 1990 Richard Kenner (rms at sugar-bombs.ai.mit.edu) | |
2403 | ||
2404 | * function.c (assign_stack_local): Use plus_constant to avoid | |
2405 | PLUS when offset is zero. | |
2406 | (assign_outer_stack_local): Ditto. | |
2407 | ||
2408 | Sun Feb 4 00:04:22 1990 Ron Guilmette (rms at sugar-bombs.ai.mit.edu) | |
2409 | ||
2410 | * explow.c (fix_lexical_addr): Fix typo. | |
2411 | ||
2412 | * tree.c (build_type_variant): Special handling for protoize. | |
2413 | ||
2414 | * protoize.c: New file. | |
2415 | ||
2416 | * toplev.c (flag_gen_aux_info): Define it. | |
2417 | (f_options): Recognize the flag. | |
2418 | (compile_file): Open and close the aux_info file. | |
2419 | ||
2420 | * flags.h (flag_gen_aux_info): Declare it. | |
2421 | ||
2422 | * c-typeck.c (comptypes): Handle equivalent variant types for protoize. | |
2423 | ||
2424 | * c-decl.c (implicitly_declare): Call gen_aux_info_record. | |
2425 | (start_decl, store_parm_decls): Likewise. | |
2426 | (pushdecl): For protoize, distinguish different names for same type. | |
2427 | (grokdeclarator): For protoize, don't always get main variant. | |
2428 | (finish_function): Take the main variant here. | |
2429 | ||
2430 | * c-aux-info.c, SYSCALLS.c: New files. | |
2431 | ||
2432 | * Makefile.in (proto, protoize, unprotoize): New targets. | |
2433 | (protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize): More new. | |
2434 | (c-aux-info.o): Also new. | |
2435 | (STAGESTUFF): Add protoize, unprotoize. | |
2436 | (install): Install protoize, unprotoize and SYSCALLS.c.X. | |
2437 | ||
2438 | Sat Feb 3 17:09:58 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2439 | ||
2440 | * c-typeck.c (digest_init): Allow conversion of array exp to pointer. | |
2441 | Constructors with types are simply expressions, so don't treat as | |
2442 | initializers. | |
2443 | ||
2444 | * Makefile.in (uninstall): New target. | |
2445 | ||
2446 | * Makefile.in (include/README): Target deleted. | |
2447 | (include): Deleted. | |
2448 | (INSTALL): Create include dir here. | |
2449 | ||
2450 | * Makefile.in (all.internal): Enable compiling cc1plus. | |
2451 | (lang-cplus): New target. | |
2452 | (*.o): Add some missing dependencies. | |
2453 | (STAGESTUFF): Add cc1plus. | |
2454 | ||
2455 | Fri Feb 2 18:21:22 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2456 | ||
2457 | * tree.c (decl_function_context): Don't abort when passed ERROR_MARK. | |
2458 | ||
2459 | Fri Feb 2 17:04:37 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2460 | ||
2461 | * integrate.c (copy_for_inline): Use real width of rtunion in bcopy. | |
2462 | * emit-rtl.c (copy_rtx_if_shared): Likewise. | |
2463 | ||
2464 | * assert.h (assert) [__STDC__]: Use comma operator to avoid warning. | |
2465 | ||
2466 | * c-decl.c (grokdeclarator): Traditionally change return type float | |
2467 | to double. | |
2468 | ||
2469 | * cse.c (predecide_loop_entry): Give up unless simple jump enters loop. | |
2470 | ||
2471 | Thu Feb 1 19:32:28 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2472 | ||
2473 | * c-parse.y (yylex, skip_white_space): CR is not whitespace. | |
2474 | ||
2475 | Thu Feb 1 17:18:33 1990 Richard Kenner (kenner at sugar-bombs.ai.mit.edu) | |
2476 | ||
2477 | * tm-m68k.h (PREFERRED_RELOAD_CLASS): Never return DATA_REGS for | |
2478 | ADDR_REGS, even for QImode. | |
2479 | ||
2480 | * cse.c (cse_insn): If source equivalent is not in table, but | |
2481 | source is, put equivalent in same class as source. But do not | |
2482 | do this if the destination has a STRICT_LOW_PART. | |
2483 | (cse_main): Call init_recog instead of init_recog_no_volatile. | |
2484 | ||
2485 | Thu Feb 1 17:18:33 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2486 | ||
2487 | * Makefile.in (cplus-tab.c, cplus-tab.h): Renamed from cplus-parse.*. | |
2488 | (TAGS, realclean): Renamed these files. | |
2489 | (cplus-decl2.o, cplus-type2.o, cplus-search.o): New targets. | |
2490 | (cplus-except.o, cplus-expr.o): New targets. | |
2491 | (new-method.o): Target deleted. | |
2492 | (CPLUS_OBJS): Add and delete object files. | |
2493 | (CPLUS_TREE_H): Change header names. | |
2494 | (INTERNAL_CFLAGS): Set the MERGED flag. | |
2495 | ||
2496 | * calls.c (expand_call): Flush junk in assign of CONTEXT. | |
2497 | ||
2498 | * expr.c (expand_expr): LOOP_STMT is just an infinite loop. | |
2499 | Handle EXIT_STMT. | |
2500 | * tree.def (EXIT_STMT): Change meaning: exit if expression is true. | |
2501 | * stmt.c (warn_if_unused_value): Do nothing for EXIT_STMT. | |
2502 | ||
2503 | Thu Feb 1 14:10:57 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2504 | ||
2505 | * optabs.c (emit_no_conflict_block): Accept optional expression | |
2506 | to be placed in REG_EQUAL note on last insn emitted. | |
2507 | Just emit insns if TARGET is not a register. | |
2508 | (expand_binop, expand_unop): Change calls. | |
2509 | ||
2510 | Thu Feb 1 01:03:17 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2511 | ||
2512 | * tree.def (NON_LVALUE_EXPR): New tree code. | |
2513 | * fold-const.c (non_lvalue): No longer static. | |
2514 | Make NON_LVALUE_EXPR. Do nothing if arg certainly not lvalue. | |
2515 | * c-typeck.c (build_c_cast): Call non_lvalue. | |
2516 | (default_conversion, build_function_call, actualparameterlist): | |
2517 | (build_binary_op_nodefault, truthvalue_conversion, build_modify_expr): | |
2518 | (convert_for_assignment, digest_init): Strip NON_LVALUE_EXPR from args. | |
2519 | (build_unary_op, build_modify_expr): No longer need to check for | |
2520 | NOP_EXPR that indicates not an lvalue. | |
2521 | (build_compound_expr, build_c_cast): Don't strip NON_LVALUE_EXPR | |
2522 | * expr.c (expand_expr, do_jump): Handle NON_LVALUE_EXPR. | |
2523 | * c-decl.c (build_enumerator, grokdeclarator): Strip them. | |
2524 | * c-parse.y (case label): Strip them. | |
2525 | ||
2526 | * limits.h (INT_MIN): Define so it has type `int', not unsigned. | |
2527 | (CHAR_MIN, SCHAR_MIN, SHRT_MIN): Put arens around value. | |
2528 | ||
2529 | * reload1.c (inc_for_reload): Forget reg_last_reload_reg | |
2530 | for the reg being inc'd. | |
2531 | ||
2532 | Wed Jan 31 17:37:53 1990 Michael Tiemann (rms at sugar-bombs.ai.mit.edu) | |
2533 | ||
2534 | * cplus-*: New files. | |
2535 | ||
2536 | * tree.def (TARGET_EXPR): New name for NEW_EXPR. | |
2537 | * tree.c (simple_cst_equal): Change NEW_EXPR to TARGET_EXPR. | |
2538 | ||
2539 | * stmt.c (estimate_case_costs): Check all nodes against ASCII range. | |
2540 | ||
2541 | * stmt.c (warn_if_unused_value): Delete obsolete node types. | |
2542 | ||
2543 | * recog.c (validate_change): Fix one-off bug testing recog_memoized. | |
2544 | ||
2545 | * local-alloc.c (local_alloc): Initialize qty_phys_reg. | |
2546 | ||
2547 | * fold-const.c (non_lvalue): Propagate TREE_LITERAL, TREE_VOLATILE. | |
2548 | ||
2549 | * expr.c (expand_expr): Delete DELETE_EXPR. | |
2550 | Call lang_expand_expr for any unknown tree code. | |
2551 | Handle IF_STMT, LOOP_STMT, LET_STMT for real. | |
2552 | ||
2553 | * dbxout.c (dbxout_type): Output args for method type. | |
2554 | Treat OFFSET_TYPE as int if not using GDB extensions. | |
2555 | ||
2556 | Wed Jan 31 17:32:35 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2557 | ||
2558 | * stmt.c (node_has_high_bound, node_has_low_bound): | |
2559 | Use integer_one_node, not new node. | |
2560 | ||
2561 | * expr.c (do_jump): In comparisons against zero, used unsigned, rather | |
2562 | than signed, extensions, as that is more likely to be the faster one. | |
2563 | ||
2564 | Wed Jan 31 14:09:40 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2565 | ||
2566 | * toplev.c (rest_of_compilation): Ignore TREE_INLINE if not -O. | |
2567 | ||
2568 | * out-mips.c (mips_prologue): Handle big stack frames > 2**16. | |
2569 | ||
2570 | * tree.h (struct tree_type): Rename `max' field to `maxval'. | |
2571 | (TYPE_MAX_VALUE, TYPE_OFFSET_BASETYPE, TYPE_METHOD_BASETYPE): | |
2572 | Use new name. | |
2573 | ||
2574 | * reload1.c (reload): Reject fixed regs when spilling large groups. | |
2575 | ||
2576 | * c-decl.c (start_function): | |
2577 | Optionally warn if non-proto defn without previous prototype. | |
2578 | ||
2579 | * Makefile.in: New rule to make .../include subdir. | |
2580 | New rule to run fixincludes into it. | |
2581 | Rule `install' depends on them. | |
2582 | ||
2583 | * assert.h (assert) [no NDEBUG]: Split into versions with/out __STDC__ | |
2584 | (_assert) [__STDC__]: Pass expression and file separately to _eprintf. | |
2585 | (_assert) [not __STDC__]: Likewise, but implemented differently. | |
2586 | * gnulib2.c (__eprintf): Handle 3 args plus format string. | |
2587 | ||
2588 | * tm-i386.h (STACK_BOUNDARY): Define it. | |
2589 | ||
2590 | Tue Jan 30 16:24:14 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2591 | ||
2592 | * Makefile.in (install): Fix typo in name of varargs file. | |
2593 | ||
2594 | * combine.c (try_combine): Don't allow combine to violate machine's | |
2595 | alignment restriction. | |
2596 | ||
2597 | Sun Jan 28 03:53:28 1990 Michael Tiemann (tiemann at rio) | |
2598 | ||
2599 | * stmt.c (warn_if_unused_value): Don't warn for LOOP_STMT, IF_STMT, | |
2600 | or LET_STMT. | |
2601 | ||
2602 | * toplev.c (compile_file): Code to mention symbol that was not | |
2603 | written to asm file is now #if 0'd out. What good is it telling the | |
2604 | debugger about a symbol it cannot see? | |
2605 | ||
2606 | * dbxout.c (dbxout_type): Change METHOD_TYPE print character from | |
2607 | '@' to '#'. Also, don't try to output CONST_DECLs. GDB doesn't | |
2608 | understand them, and they don't have DECL_OFFSETs. | |
2609 | ||
2610 | * sparc.md (floatsidf2): Changed constraint from "rfm" to "rm" for | |
2611 | second operand. | |
2612 | ||
2613 | * toplev.c (lang_expand_expr): New variable is pointer-to-function | |
2614 | which expands language-specific tree codes. Its default is | |
2615 | `fancy_abort'. | |
2616 | ||
2617 | Sat Jan 27 10:18:44 1990 Michael Tiemann (tiemann at rio) | |
2618 | ||
2619 | * gcc.c (main): Initialize COMPILERS before calling | |
2620 | `validate_all_switches'. | |
2621 | ||
2622 | * tree.c (decl_{type,function}_context): Handle LET_STMT. | |
2623 | ||
2624 | * stmt.c (expand_decl_cleanup): New function. | |
2625 | ||
2626 | * stmt.c (expand_decl): No longer takes CLEANUP parameter. | |
2627 | All callers changed. | |
2628 | ||
2629 | * tree.c (build_{loop,if,goto,compound}, etc): Turn these tree | |
2630 | constructors back on. | |
2631 | ||
2632 | * tree.def: Delete DELETE_EXPR, PUSH_EXPR, POP_EXPR. | |
2633 | ||
2634 | * c-typeck.c (max): New macro. | |
2635 | ||
2636 | * c-decl.c (maybe_build_cleanup): New function. | |
2637 | ||
2638 | * tree.c ({value,purpose}_member): New functions. Returns first | |
2639 | element of LIST that matches respective components with ELEM. | |
2640 | ||
2641 | * varasm.c (first_global_object_name): Variable defined. | |
2642 | ||
2643 | Sat Jan 27 23:31:02 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2644 | ||
2645 | * reload1.c (reload): Reject fixed regs when completing group of 2. | |
2646 | ||
2647 | Fri Jan 26 17:28:33 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2648 | ||
2649 | * expr.c (do_jump): Don't use CONST0_RTX when value to be tested is | |
2650 | CONST_INT. | |
2651 | ||
2652 | Fri Jan 26 13:39:01 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2653 | ||
2654 | * gcc.c (main): Warn about bad switches at beginning, not at end. | |
2655 | ||
2656 | Thu Jan 25 22:03:37 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2657 | ||
2658 | * loop.c (general_induction_var): Reject widening multiply. | |
2659 | ||
2660 | * cccp.c (grow_outbuf): Always return 0. | |
2661 | ||
2662 | Thu Jan 25 07:04:31 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2663 | ||
2664 | * combine.c (subst): Correctly reference length in | |
2665 | (zero_extract (zero_extend ... )) combinations. | |
2666 | ||
2667 | * c-decl.c: Define warn_traditional. | |
2668 | (build_enumerator): Remove NOP_EXPRs from default value also. | |
2669 | ||
2670 | * fold-const.c (fold): Strip NOP_EXPRs when looking for constants. | |
2671 | ||
2672 | Thu Jan 25 01:57:34 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2673 | ||
2674 | * Makefile.in (install): Clear execute bit for nonexecutable files. | |
2675 | ||
2676 | * i860.md (andsi3): Truncate xop2 constant to 16 bits. | |
2677 | ||
2678 | Wed Jan 24 22:32:47 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2679 | ||
2680 | * genemit.c (main): Include output.h in insn-emit.c. | |
2681 | * genpeep.c (main): Similar. | |
2682 | * genrecog.c (main): Ditto. | |
2683 | * Makefile.in (insn-emit.h, insn-peep.h, insn-recog.h): Add dependancy. | |
2684 | ||
2685 | Wed Jan 24 20:13:08 1990 Richard Stallman (rms at albert.ai.mit.edu) | |
2686 | ||
2687 | * cccp.c (do_define): Report error for duplicate macro args. | |
2688 | ||
2689 | Mon Jan 22 07:52:28 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2690 | ||
2691 | * reload1.c (alter_reg): Rework change of January 7th to allow | |
2692 | for no previous insn and clear equivalence information of correct | |
2693 | pseudo. | |
2694 | ||
2695 | Mon Jan 22 01:22:00 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2696 | ||
2697 | * fold-const.c (fold): Don't simplify non-lvalue to an lvalue. | |
2698 | (non_lvalue): New fn; makes a NOP_EXPR with readonly flag. | |
2699 | * c-typeck.c (build_unary_op, build_modify_expr): Reject such. | |
2700 | ||
2701 | Sun Jan 21 20:53:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2702 | ||
2703 | * c-typeck.c (lvalue_p): Don't call language_lvalue_valid. | |
2704 | Don't bother with looking for NEW_EXPR or REFERENCE_TYPE. | |
2705 | (language_lvalue_valid): Deleted. | |
2706 | ||
2707 | Sat Jan 20 19:50:15 1990 Michael Tiemann (mtiemann at apple-gunkies.ai.mit.edu) | |
2708 | ||
2709 | * expr.c (expand_expr): Implemented language-independent expansion | |
2710 | for NEW_EXPR. | |
2711 | ||
2712 | Thu Jan 18 14:29:10 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2713 | ||
2714 | * cccp.c (rescan): Set beg_of_line when string ends at newline. | |
2715 | (skip_quoted_string): Don't swallow newline that ends a string. | |
2716 | (handle_directive): No need to back up here. | |
2717 | Pass LIMIT as second arg to skip_quoted_string. | |
2718 | ||
2719 | Thu Jan 18 12:50:09 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2720 | ||
2721 | * emit-rtl.c (gen_lowpart): Verify CONST_DOUBLE is integer mode. | |
2722 | (gen_highpart): Add support for CONST_INT and CONST_DOUBLE. | |
2723 | ||
2724 | * recog.c (general_operand): Don't allow nested SUBREGs. | |
2725 | (nonmemory_operand, memory_operand, register_operand): Ditto. | |
2726 | ||
2727 | * emit-rtl.c (gen_reg_rtx): Don't allow creation of pseudos | |
2728 | during or after reload. | |
2729 | ||
2730 | Thu Jan 18 11:41:14 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2731 | ||
2732 | * c-typeck.c (actualparameterlist): -Wconversion warns if | |
2733 | representation or width is changed. | |
2734 | ||
2735 | Thu Jan 18 01:09:47 1990 Michael Tiemann (mtiemann at apple-gunkies.ai.mit.edu) | |
2736 | ||
2737 | * dbxout.c (various places): Don't assume that DECL_NAME of a | |
2738 | PARM_DECL is non-zero. It might be empty for anonymous parms. | |
2739 | ||
2740 | Thu Jan 18 00:06:58 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2741 | ||
2742 | * local-alloc.c (local_alloc): qty_phys_sugg is now an array of | |
2743 | HARD_REG_SETs. Initialize new variable qty_phys_has_sugg. | |
2744 | (block_alloc): Don't test for nonlocal gotos here. | |
2745 | Test qty_phys_has_sugg instead of qty_phys_sugg to see if | |
2746 | quantity needs early allocation. | |
2747 | (qty_compare, qty_compare_1): No longer consider whether a quantity | |
2748 | has a hard register suggestion as part of its priority. | |
2749 | (combine_regs): We now record multiple hard register suggestions | |
2750 | in qty_phys_sugg. | |
2751 | (find_free_reg): Test here for nonlocal gotos. | |
2752 | Support new meaning of qty_phys_sugg by restricting to those | |
2753 | registers if just_try_suggested. | |
2754 | Check for no registers available prior to looping over registers. | |
2755 | ||
2756 | * global-alloc.c (prune_preferences): New fn. | |
2757 | (global_alloc): No longer keep a single vector of which registers | |
2758 | someone prefers; instead keep this record one per allocation number. | |
2759 | Record registers not saved over calls as already used for register | |
2760 | allocation purposes, so we can feel free to allocate them with no | |
2761 | cost. | |
2762 | Call new fn to prune preferences and build list of registers | |
2763 | preferred by earlier allocnos. | |
2764 | find_reg no longer gets preference information as argument. | |
2765 | (find_reg): Don't take preferred registers as argument; get the | |
2766 | info from global variables. | |
2767 | (set_preference): Remove regs_someone_prefers. | |
2768 | (dump_conflicts): Print register preferences in dump file. | |
2769 | ||
2770 | Wed Jan 17 16:00:59 1990 Michael Tiemann (mtiemann at apple-gunkies.ai.mit.edu) | |
2771 | ||
2772 | * tree.c (decl_function_context): New function, returns the | |
2773 | innermost DECL_CONTEXT of FNDECL when that context is a | |
2774 | FUNCTION_DECL. | |
2775 | * tree.c (decl_type_context): New function, returns the | |
2776 | innermost DECL_CONTEXT of FNDECL when that context is a | |
2777 | TYPE_DECL. | |
2778 | * All callers changed to use `decl_function_context' when handling | |
2779 | nested functions. | |
2780 | * All C++ callers changed to use `decl_type_context' when handling | |
2781 | member functions. | |
2782 | ||
2783 | * expr.c (fixed_type_p): New function says whether the compiler | |
2784 | guarantees that it knows the true type of an object. | |
2785 | * expr.c (expand_expr): Call that function for INIT_EXPR and | |
2786 | MODIFY_EXPR. Also, for MODIFY_EXPR, check both RHS and LHS. | |
2787 | ||
2788 | * tree.h (DECL_ARG_TYPE): Use INITIAL, not ARGUMENTS slot in | |
2789 | `tree_decl. Now reserving ARGUMENTS slot for VAR_DECL and | |
2790 | PARM_DECL for language-specific features. | |
2791 | ||
2792 | * tree.c (build_decl): Don't set DECL_PRINT_NAME by default. | |
2793 | ||
2794 | * assert.h: Assume that undefined __GNUC__ implies `assert' must | |
2795 | rely on printf. | |
2796 | ||
2797 | Wed Jan 17 15:31:40 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2798 | ||
2799 | * cccp.c (rescan): If traditional, end preproc number after expt sign. | |
2800 | ||
2801 | Wed Jan 17 15:18:25 1990 Michael Tiemann (mtiemann at apple-gunkies.ai.mit.edu) | |
2802 | ||
2803 | * stmt.c: Extended struct nesting to hold exception handling | |
2804 | contours. New functions: | |
2805 | ||
2806 | expand_start_try, expand_end_try, in_try_block | |
2807 | expand_start_except, expand_end_except, in_except_block | |
2808 | expand_start_catch, expand_end_catch, expand_catch_default | |
2809 | expand_raise, expand_escape_except, in_exception_handler | |
2810 | ||
2811 | Wed Jan 17 13:48:01 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2812 | ||
2813 | * cccp.c (main): Typo, had `includes' for `include'. | |
2814 | Always increment p. | |
2815 | ||
2816 | * reload1.c (alter_reg): Delete spurious `break'. | |
2817 | ||
2818 | * local-alloc.c (block_alloc): Delete ref to undef var first_time. | |
2819 | ||
2820 | Wed Jan 17 13:35:47 1990 Michael Tiemann (tiemann at apple-gunkies.ai.mit.edu) | |
2821 | ||
2822 | * toplev.c: Unmerge all changes of Bryan Boreham--no papers (yet). | |
2823 | ||
2824 | Wed Jan 17 12:33:52 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2825 | ||
2826 | * stor-layout.c (layout_type): Struct requires BLKmode if any field | |
2827 | crosses a word boundary. | |
2828 | ||
2829 | Wed Jan 17 12:04:18 1990 Michael Tiemann (tiemann at apple-gunkies.ai.mit.edu) | |
2830 | ||
2831 | * stor-layout.c (layout_type): Unterminate comment terminated. | |
2832 | ||
2833 | * tree.c (lvalue_p,lvalue_or_else): Remove these functions from this | |
2834 | file. | |
2835 | * c-typeck.c (lvalue_p,lvalue_or_else): Put them in this file. | |
2836 | ||
2837 | Wed Jan 17 00:46:24 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2838 | ||
2839 | * c-decl.c (pushdecl): Delete garbage accidentally added before. | |
2840 | ||
2841 | * tree.c (set_identifier_size): SIZE is size in bytes. | |
2842 | * tree.c (get_identifier): If `set_identifier_size' has not been | |
2843 | called, abort. | |
2844 | * c-decl.c (init_decl_processing): Don't call `set_identifier_size' | |
2845 | from here. | |
2846 | * c-parse.y (init_lex): Call `set_identifier_size' from here. | |
2847 | ||
2848 | * varasm.c (force_const_mem): Save DESC's label on the | |
2849 | saveable_obstack. (Note, saveable is misspelled.) | |
2850 | ||
2851 | * listing: New file. | |
2852 | ||
2853 | Tue Jan 16 20:43:55 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2854 | ||
2855 | * c-typeck.c (convert_sequence): Put in #if 0. | |
2856 | ||
2857 | Tue Jan 16 17:25:43 1990 Michael Tiemann (tiemann at apple-gunkies.ai.mit.edu) | |
2858 | ||
2859 | * toplev.c: Merged Bryan Boreham's undumping code. | |
2860 | ||
2861 | * print-tree.c (dump): Handle TREE_VEC. | |
2862 | ||
2863 | * varasm.c (output_constant_pool): When done, set FIRST_POOL, | |
2864 | LAST_POOL to zero. | |
2865 | ||
2866 | * varasm.c (first_global_object_name): New variable. Records the | |
2867 | name of the first global declaration (variable or function) whichi | |
2868 | is written to the assembly file. | |
2869 | ||
2870 | * tree.h (tree_code_name): Add declaration. | |
2871 | ||
2872 | Tue Jan 16 17:06:29 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2873 | ||
2874 | * local-alloc.c (block_alloc): Make an initial pass to try to | |
2875 | allocate registers that have suggested hard registers. | |
2876 | (find_free_reg): Add new argument to only try suggested hard register. | |
2877 | ||
2878 | Tue Jan 16 15:54:06 1990 Michael Tiemann (tiemann at apple-gunkies.ai.mit.edu) | |
2879 | ||
2880 | * tree.h (tree_vec): Added. | |
2881 | ||
2882 | * tree.def (IDENTIFIER_NODE): Default length is 2. | |
2883 | * tree.def (TREE_VEC): Define it. | |
2884 | * tree.def ({NEW_,DELETE_,REFERENCE_}EXPR): fixed comments. | |
2885 | ||
2886 | * tree.c (preserve_initializer): New function. Like | |
2887 | `preserve_data', but saves nodes on momentary_obstack as well. | |
2888 | * tree.c (make_tree_vec): New function. Allocates a TREE_VEC node. | |
2889 | * tree.c (copy_node): Support added for TREE_VEC. | |
2890 | * tree.c (build_parse_node): New function. Builds tree node on | |
2891 | TEMP_DECL_OBSTACK. | |
2892 | ||
2893 | Tue Jan 16 15:23:16 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2894 | ||
2895 | * expr.h: Eliminate definitions of andcb_optab and expand_bit_and. | |
2896 | * expmed.c (expand_bit_and): Eliminate function. | |
2897 | (store_fixed_bit_field, extract_fixed_bit_field, expand_divmod): | |
2898 | Replace expand_bit_and with call to expand_binop. | |
2899 | * expr.c (expand_expr): Handle TRUTH_AND_EXPR and BIT_AND_EXPR | |
2900 | as normal binary operations. | |
2901 | (do_store_flag): Replace expand_bit_and with expand_binop. | |
2902 | * optabs.c (expand_binop, init_optabs): Eliminate andcb_optab. | |
2903 | ||
2904 | * expmed.c (expand_shift): Don't use extzv for rotate. | |
2905 | If all three tries at a shift operation failed, delete the | |
2906 | insns made during the last try. | |
2907 | Handle failure of extzv operation. | |
2908 | Call protect_from_queue before convert_to_mode for op1. | |
2909 | ||
2910 | Tue Jan 16 10:38:28 1990 Michael Tiemann (tiemann at apple-gunkies.ai.mit.edu) | |
2911 | ||
2912 | * tree.c: Added temp_decl_obstack for building declarators without | |
2913 | needing to use permanent_obstack at top level. | |
2914 | * tree.c (init_tree): Init temp_decl_obstack. | |
2915 | * tree.c (permanent_allocation): Free nodes allocated on | |
2916 | temp_decl_obstack. | |
2917 | * tree.c (build_decl_list,decl_tree_cons): New functions. Like | |
2918 | `build_tree_list' and `tree_cons', but for building on | |
2919 | temp_decl_obstack. | |
2920 | * tree.c (build1): New function. Builds tree node for unary tree | |
2921 | node kinds; doesn't use varargs. | |
2922 | * tree.c (simple_cst_equal): Interface changed to return 1 if | |
2923 | arguments are equal, 0 if not, and -1 if arguments were not | |
2924 | understood by the function. | |
2925 | * tree.c (build_{method,offset}_type): TYPE_*_BASETYPE is the | |
2926 | TYPE_MAIN_VARIANT of BASETYPE. | |
2927 | ||
2928 | Mon Jan 15 01:50:51 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2929 | ||
2930 | * cexp.y (exp): Accept unary +. | |
2931 | ||
2932 | * Makefile.in (hard-params): Compile with GCC. | |
2933 | (hard-params.o): Likewise, and depend on the GCC executables. | |
2934 | ||
2935 | * tm-sparc.h (CONST_COSTS): Give 1, not 0, for immed consts. | |
2936 | ||
2937 | Sun Jan 14 14:38:10 1990 Michael Tiemann (tiemann at apple-gunkies.ai.mit.edu) | |
2938 | ||
2939 | * stmt.c (estimate_case_costs): New function. Case code no longer | |
2940 | assumes that all case values are equally likely for all types. In | |
2941 | particular, when the type of argument for the switch statement does | |
2942 | not look like it is not ASCII text, we assume that it might be, and | |
2943 | assign a weight to its value based on frequency distribution of | |
2944 | characters in ASCII text. | |
2945 | * stmt.c (balanace_case_nodes): If case values look like ASCII text, | |
2946 | then use the cost table. Otherwise, do not. Using the cost table | |
2947 | means that the otherwise almost-balanced binary tree may be skewed | |
2948 | in hopes of picking up common values more quickly than just | |
2949 | log(n). This is done at the direct expense of the less common | |
2950 | values, which will be reached at more than log(n). | |
2951 | * stmt.c (emit_case_nodes): If using COST_TABLE and the most likely | |
2952 | case value is on one side of the tree or another, hand-pick boundary | |
2953 | tests so that condition codes can be reused (if possible). | |
2954 | * stmt.c (expand_end_cast): If optimizing, and the type of | |
2955 | ORIG_INDEX is not an enumeral type, then call `estimate_case_costs.' | |
2956 | ||
2957 | Sun Jan 14 12:18:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2958 | ||
2959 | * fold-const.c (lshift_double, rshift_double, lrotate_double): | |
2960 | (rrotate_double): Don't shift more than width of operand. | |
2961 | ||
2962 | Fri Jan 12 12:17:06 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2963 | ||
2964 | * recog.c (next_insns_test_no_inequality): Return 1 at end of rtl. | |
2965 | ||
2966 | * expr.c (store_expr): No special handling for constructor | |
2967 | unless value is going in struct value block. | |
2968 | ||
2969 | * stor-layout.c (layout_type): Use common nodes for sizes of ptrs, fns. | |
2970 | (make_signed_type, make_unsigned_type): Create those nodes. | |
2971 | (layout_record): Just ignore VAR_DECL if not static. | |
2972 | ||
2973 | Thu Jan 11 14:09:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
2974 | ||
2975 | * c-decl.c (lang_decode_option): Decode -Wtraditional. | |
2976 | * c-decl.c (implicitly_declare): Warn if extern decl previously seen. | |
2977 | * c-typeck.c (c_expand_start_case): Warn if switch exp is long. | |
2978 | ||
2979 | * c-typeck.c (actualparameterlist): Optionally warn on truncation. | |
2980 | * toplev.c (main): Handle -Wconversion. | |
2981 | ||
2982 | * cccp.c (skip_if_group): Skip strings even if -traditional. | |
2983 | (handle_directive): Likewise, when handling copy_command. | |
2984 | ||
2985 | Thu Jan 11 14:15:50 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
2986 | ||
2987 | * cse.c (cse_insn): Only check for REG_EQUAL notes and make | |
2988 | REG_EQUAL notes instead of REG_EQUIV notes. | |
2989 | * explow.c (force_reg): Make REG_EQUAL note instead of REG_EQUIV | |
2990 | note. Check for and reuse old note if present. | |
2991 | * local-alloc.c (block_alloc): Convert REG_EQUAL to REG_EQUIV for | |
2992 | constant when register is only set once. | |
2993 | * loop.c (combine_movables, move_movables): Check for REG_EQUAL notes | |
2994 | instead of REG_EQUIV notes. | |
2995 | * optabs.c (expand_binop): Correct typo in writing REG_EQUAL note. | |
2996 | (emit_no_conflict_block): Suppress REG_NO_CONFLICT notes for | |
2997 | non-registers. | |
2998 | ||
2999 | Thu Jan 11 14:09:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3000 | ||
3001 | * i860.md (movsf): Ensure F to f is reloaded via r. | |
3002 | ||
3003 | * expr.c (expand_increment): Don't call stabilize. | |
3004 | ||
3005 | Wed Jan 10 15:03:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3006 | ||
3007 | * c-decl.c (duplicate_decls): If old fn decl follows new ellipsis decl, | |
3008 | warn only if pedantic. | |
3009 | ||
3010 | * loop.c (loop_skip_over): Do nothing if don't find expected compare. | |
3011 | ||
3012 | Tue Jan 9 21:31:46 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
3013 | ||
3014 | * jump.c (jump_optimize): Don't delete USE and CLOBBER insns. | |
3015 | The later call to find_equiv_reg can malfunction if CLOBBERs are | |
3016 | deleted. | |
3017 | ||
3018 | Mon Jan 8 17:48:20 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3019 | ||
3020 | * gcc.c (link_command_spec): Always check gnulib both first and last. | |
3021 | ||
3022 | Mon Jan 8 17:07:25 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
3023 | ||
3024 | * optabs.c (expand_unop): Perform multi-word logical negation one | |
3025 | word at a time. | |
3026 | (expand_binop, expand_unop): Insert REG_EQUAL note on last insn of | |
3027 | multi-insn sequence. | |
3028 | Use TARGET_PIECE instead of TARGET in multi-word logical operations. | |
3029 | (emit_no_conflict_block): New fn. | |
3030 | (expand_binop, expand_unop): Call it. | |
3031 | (gen_add2_insn, gen_sub2_insn): Abort if operands do not match those | |
3032 | of the predicates for the appropriate generators. | |
3033 | ||
3034 | * expr.h: Fix typo and define emit_no_conflict_block. | |
3035 | ||
3036 | Mon Jan 8 15:33:19 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3037 | ||
3038 | * rtl.h (REG_UNSET): Fix the code. | |
3039 | * rtl.c (reg_note_name): Add REG_UNSET. | |
3040 | ||
3041 | * c-decl.c (struct binding_level): parm_flag now 2 for def, 1 for decl. | |
3042 | (declare_parm_level): New parm distinguishes them. All calls changed. | |
3043 | (pushdecl): Don't warn about shadowing with parm name in fn decl. | |
3044 | ||
3045 | Mon Jan 8 15:15:07 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
3046 | ||
3047 | * cse.c (cse_basic_block): Allow NOTEs between LOOP_BEG and jump to | |
3048 | end test. | |
3049 | (predecide_loop_entry): Accept JUMP_INSN rather than LOOP_BEG NOTE. | |
3050 | ||
3051 | * reload1.c (gen_input_reload): When adding constant to register, | |
3052 | move the constant into the output, then add the register, rather than | |
3053 | the other way around. | |
3054 | ||
3055 | Mon Jan 8 12:20:26 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3056 | ||
3057 | * c-parse.y (components): Don't allow to be empty. | |
3058 | (component_decl): Special cases if empty, to call shadow_tag. | |
3059 | Recognize the semicolon here. | |
3060 | (component_decl_list): No semicolon here. | |
3061 | ||
3062 | * c-decl.c (shadow_tag): Print warning if nameless structure defined. | |
3063 | ||
3064 | Sun Jan 7 19:09:33 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3065 | ||
3066 | * varasm.c (output_constant): Use size of machine mode | |
3067 | to choose how to output the constant. | |
3068 | ||
3069 | * varasm.c (immed_real_const_1): Detect 1 as well as 0. | |
3070 | ||
3071 | * reload1.c (reload): When deleting reg_equiv_init insn, | |
3072 | also delete the prev insn if it is no longer needed. | |
3073 | ||
3074 | * real.h (REAL_VALUE_FROM_CONST_DOUBLE, CONST_DOUBLE_FROM_REAL_VALUE): | |
3075 | New macros. | |
3076 | ||
3077 | * reload.c (find_reloads_address_1): Preserve original X value | |
3078 | in case we replace it with new memory reference. | |
3079 | ||
3080 | * optabs.c (expand_binop): Handle case of no previous insns. | |
3081 | ||
3082 | * jump.c (jump_back_p): Check for floating point if not IEEE. | |
3083 | ||
3084 | * global-alloc.c (dump_global_regs): Break the line occasionally. | |
3085 | ||
3086 | * flow.c (mark_used_regs): Recognize post-decrement properly. | |
3087 | It looks like (plus REG -CONST), not (minus REG CONST). | |
3088 | Also, patch out old insn as a note in the usual way. | |
3089 | ||
3090 | * calls.c (emit_call_1): Arg to RETURN_POPS_ARGS is FUNTYPE itself. | |
3091 | ||
3092 | * expr.c (STACK_PUSH_CODE): New macro, which config.h can override. | |
3093 | (gen_push_operand): Use it. | |
3094 | (emit_push_insn): Reverse padding if pushing is post-increment. | |
3095 | (expand_expr): For MINUS, sign-extend negated value. | |
3096 | ||
3097 | * emit-rtl.c (init_emit_once): Initialize new variables | |
3098 | fconst1_rtx, dconst1_rtx, dconst0, dconst1, dconstm1. | |
3099 | ||
3100 | * cse.c (fold_rtx): For COMPARE and MINUS, test for floating zero arg. | |
3101 | Also handle equal floating args if FLOAT_NOT_IEEE. | |
3102 | For NEG, eliminate silly temp var. | |
3103 | For MULT and DIV, handle more cases with floating point. | |
3104 | Change division by floating constant into multiplication. | |
3105 | ||
3106 | * config.gcc: Add i386-mach. | |
3107 | * xm-i386.h: Use built-in alloca if compiling with GCC. | |
3108 | ||
3109 | * Makefile.in (c-parse.tab.o): Delete -o switch. | |
3110 | (cexp.o): Put in explicit command. | |
3111 | ||
3112 | * combine.c (record_dead_and_set_regs): Ignore stack pushes. | |
3113 | ||
3114 | Sat Jan 6 15:33:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3115 | ||
3116 | * out-mips.c (function_arg, function_arg_advance): | |
3117 | Define typedef for CUMULATIVE_ARGS, and use it here. | |
3118 | ||
3119 | * c-parse.y (yylex): Put 0 at end of wide string. | |
3120 | ||
3121 | * tm-mips.h (CC1_SPEC): Don't distort meaning of -O. | |
3122 | ||
3123 | Fri Jan 5 12:12:31 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3124 | ||
3125 | * optabs.c, expr.h: All use of umul_optab deleted. | |
3126 | * gnulib.c (__umulsi3): Deleted. | |
3127 | ||
3128 | * gcc.c (link_command_spec): If LIBS_COMPILED_WITH_GCC, gnulib is last. | |
3129 | ||
3130 | * Makefile.in (INTERNAL_CFLAGS): New parameter. | |
3131 | (ALL_CFLAGS): New variable, replaces CFLAGS when compiling. | |
3132 | (HOST_CFLAGS): Define from ALL_CFLAGS. | |
3133 | ||
3134 | * Makefile.in (insn-*.o, cccp.o, others): Use CPPFLAGS. | |
3135 | ||
3136 | * Makefile.in (gnulib): Add null command. | |
3137 | ||
3138 | Fri Jan 5 08:11:20 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
3139 | ||
3140 | * combine.c (subst): When applying De`Morgan's law, compute NOT | |
3141 | of constant. | |
3142 | ||
3143 | * integrate.c (save_constants, restore_constants): Clean up fns | |
3144 | by passing in a pointer to an rtx so that insns can be modified | |
3145 | in place. | |
3146 | (save_for_inline): Change call to save_constants. | |
3147 | Apply save_constants to REG_NOTES. | |
3148 | (expand_inline_function): Use emit_move_insn instead of generating | |
3149 | an explicit SET. | |
3150 | Apply copy_rtx_and_substitute to REG_NOTES. | |
3151 | (output_inline_function): Change call to restore_constants. | |
3152 | Apply restore_constants to REG_NOTES. | |
3153 | ||
3154 | Thu Jan 4 23:58:59 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3155 | ||
3156 | * Makefile (c-parse.tab.o): Add explicit compilation cmd. | |
3157 | ||
3158 | Thu Jan 4 22:48:01 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
3159 | ||
3160 | * cse.c (insert_regs, insert, use_related_value): Don't assume REG is | |
3161 | first in class. | |
3162 | (HASH): Handle register with HASHREG macro for speed. | |
3163 | (insert): No longer need equivalence_only. | |
3164 | Use COST macro. | |
3165 | (use_related_value): No longer need to check for valid address. | |
3166 | (find_best_addr): New function. | |
3167 | (fold_rtx): Remove copyflag argument and replace with insn. | |
3168 | Check for common cases before making recursive call. | |
3169 | Call validate_change to ensure change is valid, but always return | |
3170 | simplified expression. | |
3171 | Replace operand with folded operand, or constant operand, whichever | |
3172 | is cheaper and is valid. | |
3173 | Call find_best_addr for MEMs. | |
3174 | (fold_cc0): Add insn operand to pass to calls to fold_rtx. | |
3175 | (cse_insn): Rework to enumerate all possible equivalences and replace | |
3176 | source with cheapest valid. | |
3177 | Simplify associative operations with constants where an operand is | |
3178 | equivalent to the same operation with another constant. | |
3179 | Use validate_change for all changes. | |
3180 | ||
3181 | Thu Jan 4 17:58:28 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3182 | ||
3183 | * stmt.c (expand_end_loop): Put NOTE_INSN_LOOP_CONT at top by default. | |
3184 | ||
3185 | * c-typeck.c (actualparameterlist): | |
3186 | Convert parmnum to origin-1 to print. | |
3187 | ||
3188 | * Makefile.in (USER_H): Add float.h. | |
3189 | ||
3190 | Wed Jan 3 00:27:53 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3191 | ||
3192 | * gnulib.c (__extendsfdf2): Delete unused var. | |
3193 | ||
3194 | * reload1.c (alter_reg): Undo big-endian conversion from | |
3195 | assign_stack_local. | |
3196 | ||
3197 | * calls.c (store_one_arg): Round size up for move_block_to_reg. | |
3198 | (expand_call): Round up when emitting USE insns. | |
3199 | * function.c (assign_parms): Round size up for move_block_from_reg. | |
3200 | ||
3201 | * Makefile (install): Use nested foreach-loop to expand va*.h. | |
3202 | ||
3203 | Tue Jan 2 16:01:47 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3204 | ||
3205 | * mips.md (call_value): Ignore calls to __builtin_saveregs. | |
3206 | ||
3207 | * tm-mips.h (STARTING_FRAME_OFFSET): Change from -8 to 0. | |
3208 | (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Use new fns in out-mips.c. | |
3209 | * out-mips.c (prologue_looks, mips_prologue, mips_epilogue): New. | |
3210 | ||
3211 | * gnulib2.c: Everything except arithmetic support moved from gnulib.c. | |
3212 | * Makefile.in (LIB2FUNCS, LIBFUNCS): Likewise. | |
3213 | ||
3214 | Sun Dec 31 20:10:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3215 | ||
3216 | * tree.h (struct tree_common): Declare `code' as char, not int. | |
3217 | ||
3218 | Thu Dec 28 13:49:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3219 | ||
3220 | * Makefile.in (includes): Set variable LIB. Run from `./'. | |
3221 | ||
3222 | Wed Dec 27 18:54:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3223 | ||
3224 | * reload1.c (eliminate_frame_pointer): Special case for reg = reg2+fp. | |
3225 | ||
3226 | * loop.c (can_eliminate_biv_p, eliminate_biv): If add_val non zero, | |
3227 | it must be a constant or register. | |
3228 | ||
3229 | Wed Dec 27 18:11:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3230 | ||
3231 | * i860.md (load DF constant to reg): Typo: extra percent sign. | |
3232 | (floatsidf2): Two words of a double were backwards. | |
3233 | ||
3234 | Mon Dec 25 16:32:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3235 | ||
3236 | * emit-rtl.c (emit_note_before): New function. | |
3237 | * stmt.c (expand_end_loop): Output NOTE_INSN_LOOP_CONT if none. | |
3238 | ** Above change turned off. | |
3239 | ||
3240 | Mon Dec 25 00:02:31 1989 Torbj|rn Granlund (tege at zevs.sics.se) | |
3241 | ||
3242 | * tm-pyr.h (CONST_COSTS): Define more optimal costs. | |
3243 | ||
3244 | * tm-pyr.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Should not be defined. | |
3245 | The cvtdw instruction causes a trap for floating point values | |
3246 | that are out-of-range for a signed int. | |
3247 | ||
3248 | * tm-pyr.h (CONST_DOUBLE_OK_FOR_LETTER_P): Don't accept any | |
3249 | special constraint chars, since we don't use any. | |
3250 | ||
3251 | * tm-pyr.h (CONSTANT_ALIGNMENT): Correct comment. | |
3252 | ||
3253 | * out-pyr.c (weird_memory_memory): Flush decl of unused variables. | |
3254 | ||
3255 | * out-pyr.c (has_direct_base): Don't accept 0 as a base, if there | |
3256 | is a register displacement. This is a workaround of a bug in | |
3257 | /bin/as. (/bin/as changes things like "cmpw 8(reg),0(reg)" into | |
3258 | "cmpw 8(reg),(reg)", which is invalid assembler.) | |
3259 | ||
3260 | Sun Dec 24 12:01:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3261 | ||
3262 | * c-decl.c (finish_struct): Ok to define nameless union in parms. | |
3263 | * c-typeck.c (compparms): Allow union vs its member's type, | |
3264 | but only if same size & union is nameless. | |
3265 | (comptypes): In that case, for a parm, prefer the member's type. | |
3266 | (actualparameterlist): Nameless union parm casts all its memb types. | |
3267 | ||
3268 | * integrate.c (copy_decl_tree, copy_parm_decls): Set TREE_INLINE. | |
3269 | * c-decl.c (pushdecl): No shadow-warning if TREE_INLINE is set. | |
3270 | ||
3271 | * dbxout.c (current_sym_code): Declare as enum; avoid warnings. | |
3272 | ||
3273 | Sat Dec 23 10:54:22 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3274 | ||
3275 | * combine.c (subst): Under NOT, move it inside AND and IOR. | |
3276 | Under XOR, move NOT out. | |
3277 | ||
3278 | * toplev.c (set_target_switch): Handle multiple entries for one name. | |
3279 | ||
3280 | * ns32k.md (adjust stack): Distinguish processor subtype at run-time. | |
3281 | (extract byte from register): Likewise. | |
3282 | * tm-ns32k.h (TARGET_32532, TARGET_32332): New target options. | |
3283 | * tm-encore.h, tm-sequent.h (TARGET_DEFAULT): Default them. | |
3284 | ||
3285 | Fri Dec 22 20:33:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3286 | ||
3287 | * Makefile.in (all): Move above where make-MACHINE is inserted. | |
3288 | (all.internal): Definition of `all' indirects through this. | |
3289 | (GNULIB): Variable allows rule for gnulib to be redirected. | |
3290 | (gnulib.portable): Name for the standard rule for gnulib. | |
3291 | ||
3292 | * tm-mips.h (ASM_OUTPUT_SOURCE_FILENAME): New macro. | |
3293 | (REG_CLASS_SUBUNION, REG_CLASS_SUBCLASSES, REG_CLASS_SUPERCLASSES): | |
3294 | Obsolete macros deleted. | |
3295 | ||
3296 | Thu Dec 21 16:20:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3297 | ||
3298 | * fold-const.c (fold): Bug taking assignments out of conversions: | |
3299 | Use language-independent method. | |
3300 | ||
3301 | * reload1.c (alter_reg): | |
3302 | Always do big-endian correction on slot address. | |
3303 | ||
3304 | * i386.md (float push recognizers): Don't pop fpreg if not dead. | |
3305 | ||
3306 | Wed Dec 20 10:54:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3307 | ||
3308 | * assert.h: Cast value to void. | |
3309 | ||
3310 | Tue Dec 19 09:42:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3311 | ||
3312 | * gcc.c (link_command_spec): Put %l first. | |
3313 | ||
3314 | Tue Dec 19 08:59:43 1989 Richard Kenner (rms at sugar-bombs.ai.mit.edu) | |
3315 | ||
3316 | * genattrtab.c (get_attr_value): Initialize has_asm_insn field when | |
3317 | making a new attr_value. | |
3318 | ||
3319 | Sun Dec 17 12:06:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3320 | ||
3321 | * c-typeck.c (digest_init, process_init_constructor, store_init_value): | |
3322 | Give error for each invalid element seen in an initializer. | |
3323 | New arguments say whether context wants error messages. | |
3324 | * c-parse.y (cast_expr): Pass new args. | |
3325 | * Unfortunately, this doesn't do the job, since the whole initializer | |
3326 | is parsed before any is digested. | |
3327 | ||
3328 | * c-decl.c (duplicate_decls): Source loc of definition is | |
3329 | more important than that of declaration. | |
3330 | ||
3331 | * cccp.c (include_defaults): On unos, also search /include. | |
3332 | ||
3333 | * m68k.md (movsi, movhi, store-0 recognizer): Conditional for CRDS. | |
3334 | (mulhi3, mulhisi3, umulhi3, umulhisi3): Add % and CRDS conditional. | |
3335 | (zero-extend recognizers): Put % before period in clr insns. | |
3336 | (divide and modulus recognizers): Likewise for and, ext, swap and div. | |
3337 | (dbra recognizers): Likewise for sub and clr insns. | |
3338 | (tablejump recognizer): Conditional for CRDS. | |
3339 | * tm-crds.h, xm-crds.h: New files. | |
3340 | ||
3341 | * gcc.c (read_specs): Don't include trailing newline in data | |
3342 | read from specs file. | |
3343 | (skip_whitespace): Empty line is a delimiter in specs data. | |
3344 | ||
3345 | * cccp.c (grow_outbuf): Change value back to int. | |
3346 | ||
3347 | * cse.c (cse_end_of_basic_block): Fix unterminated comment. | |
3348 | ||
3349 | * cccp.c (main): Add `.C' as known suffix for deps output. | |
3350 | ||
3351 | * expr.c (do_jump): Cast vector length to int in case will subtract. | |
3352 | ||
3353 | * tm-att386.h (ASM_OUTPUT_LOCAL): Revert last change: put it data seg. | |
3354 | ||
3355 | * reload.c (decompose): Make a separate case for SUBREG. | |
3356 | ||
3357 | * Makefile.in (HOST_RTLANAL): Define like HOST_RTL. | |
3358 | (genattrtab): Use that to get at rtlanal.o. | |
3359 | ($(HOST_PREFIX_1)rtlanal.o): New rule for cross-compilation. | |
3360 | (STAGESTUFF): Typo in stamp-attrtab.c. | |
3361 | ||
3362 | * tm-hp9k320.h (CPP_PREDEFINES): Add __hp9000s300, _HPUX_SOURCE. | |
3363 | ||
3364 | * stupid.c (reg_order): Make it int, in case reg # is large. | |
3365 | (stupid_reg_compare, stupid_life_analysis): Implement this. | |
3366 | ||
3367 | * gnulib2.c (__floatdidf): Define WORD_SIZE. | |
3368 | ||
3369 | * flow.c (find_basic_blocks): Don't clobber stack if no basic | |
3370 | blocks. | |
3371 | ||
3372 | Sat Dec 16 12:38:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3373 | ||
3374 | * loop.c (can_eliminate_biv_p, eliminate_biv): Check in case | |
3375 | neither side of a compare is the biv by itself. | |
3376 | (check_eliminate_biv): Test of only_reg_use_p was backwards. | |
3377 | (general_induction_var): If V is 0 and G is not, | |
3378 | combine additive terms with plus_constant, provided | |
3379 | either one of them is an integer. | |
3380 | Check both operands of a sum for being givs in their own right. | |
3381 | (strength_reduce): When eliminating a biv, don't mung insns that use | |
3382 | it via a giv that will be handled later. | |
3383 | (loop_skip_over): Duplicate an endtest that takes several insns. | |
3384 | ||
3385 | * loop.c (strength_reduce): When writing insn to init a biv, | |
3386 | update life range of reg used to init it. | |
3387 | ||
3388 | * combine.c (try_combine): Do combine (y = x, x = y). | |
3389 | ||
3390 | * loop.c (strength_reduce): When finding initial value of a biv, | |
3391 | notice assignments to subregs of it, etc. | |
3392 | ||
3393 | * m68k.md (all shift patterns): Require register_operand for ops 0, 1. | |
3394 | ||
3395 | * reload1.c (alter_reg): | |
3396 | Don't set spill_stack_slot_width if from_reg is -1. | |
3397 | ||
3398 | * cse.c (cse_main): Delete local redef of flag_cse_follow_jumps. | |
3399 | ||
3400 | * reload1.c (new_spill_reg): Fatal error if fixed reg is spilled. | |
3401 | (order_regs_for_reload): Make sure all the regs are in spill_regs. | |
3402 | ||
3403 | * mips.md (movsf): Fix wrong opcode moving genreg to fpreg. | |
3404 | ||
3405 | * toplev.c: Undef FFS after including param.h. | |
3406 | ||
3407 | * final.c (final_scan_insn): Delete label reinsert_compare. | |
3408 | ||
3409 | * expmed.c (store_bit_field): Move var value1 inside HAVE_insv. | |
3410 | (extract_bit_field): Similar for bitsize_rtx, bitpos_rtx. | |
3411 | ||
3412 | * c-typeck.c (pointer_diff): Delete unused var. | |
3413 | * expr.c (emit_push_insn): Likewise. | |
3414 | * gcc.c (execute): Likewise. | |
3415 | * genrecog.c (try_merge_2): | |
3416 | * loop.c (skip_consec_insns, scan_loop): | |
3417 | * recog.c (asm_noperands, memory_operand): | |
3418 | * function.c (expand_function_end): | |
3419 | * stmt.c (emit_jump_if_reachable): | |
3420 | * toplev.c (error_for_asm): | |
3421 | * varasm.c (assemble_string): | |
3422 | ||
3423 | * integrate.c (fp_addr_p): Var deleted. | |
3424 | ||
3425 | * regclass.c (regclass_init): Now returns void. | |
3426 | * emit-rtl.c (emit_insns): Likewise. | |
3427 | * stmt.c (emit_nop): Likewise. | |
3428 | * out-sparc.c (output_eager_then_insn): Likewise. | |
3429 | ||
3430 | * reload1.c (reload_reg_reaches_end_p, reload_reg_free_before_p): | |
3431 | (reload_reg_free_p): Abort if switch drops through. | |
3432 | ||
3433 | * cccp.c: Supply a return type for every function (usually void). | |
3434 | (grow_outbuf): Now returns void. | |
3435 | (line_for_error): Abort if the loop terminates. | |
3436 | * gcc.c: Supply a return type for every function (usually void). | |
3437 | ||
3438 | * jump.c (jump_optimize): Leave block-beg, block-end notes | |
3439 | in old context when swapping two ranges of insns. | |
3440 | (squeeze_block_notes): New function. | |
3441 | ||
3442 | * calls.c (expand_call): Compute valreg from pointer type | |
3443 | in case of pcc struct return. | |
3444 | ||
3445 | * gnulib2.c (__builtin_saveregs): Use __ names for machine types. | |
3446 | ||
3447 | * fold-const.c (fold): | |
3448 | Move constant out of assignment, within conversion. | |
3449 | ||
3450 | Fri Dec 15 00:42:31 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3451 | ||
3452 | * varasm.c (assemble_variable): Use new macro DATA_ALIGNMENT if def. | |
3453 | (get_or_assign_label): Use this instead of CONSTANT_ALIGNMENT. | |
3454 | ||
3455 | * integrate.c (save_constant, restore_constant): Handle naked | |
3456 | constant-pool SYMBOL_REF. | |
3457 | (copy_for_inline, copy_rtx_and_substitute): Ditto. | |
3458 | ||
3459 | * integrate.c (expand_inline_function): | |
3460 | Put caller's line number after inline stuff. | |
3461 | Put callee's line number before parm manipulation. | |
3462 | ||
3463 | * tree.c (make_node): Have a DECL_SOURCE_FILE in every decl. | |
3464 | ||
3465 | * m68k.md (fpa float and float-trunc): Accept general_operand. | |
3466 | ||
3467 | * calls.c (expand_call): Do INIT_CUMULATIVE_ARGS just once. | |
3468 | ||
3469 | * calls.c (expand_call): If struct ret addr is passed as parm, | |
3470 | count it in structure_value_addr_parm. | |
3471 | ||
3472 | * If local-alloc assumes a reg does not conflict, | |
3473 | don't use it as dummy reload. | |
3474 | * local-alloc.c (wipe_dead_reg): Add REG_UNSET note. | |
3475 | * reload.c (find_dummy_reload): Check for that note. | |
3476 | ||
3477 | * jump.c (jump_optimize): Realize that more things can follow | |
3478 | the NOTE_INSN_FUNCTION_END note. Change in two places, | |
3479 | for optimized and one for unoptimized. | |
3480 | ||
3481 | Thu Dec 14 23:40:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3482 | ||
3483 | * Makefile.in (install, libsubdir): Change $(machine) to $(target). | |
3484 | ||
3485 | Tue Dec 5 07:35:57 1989 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
3486 | ||
3487 | * rtl.h: Declare emit_jump_insn_before and emit_jump_insn_after. | |
3488 | ||
3489 | * reload.c (reg_class_subset_p): Delete duplicate copy. | |
3490 | local-alloc.c (reg_class_subset_p): Move from here. | |
3491 | regclass.c (reg_class_subset_p): Move to here. | |
3492 | ||
3493 | * combine.c (try_combine): Fix placement and content of LAST_CALL_CUID | |
3494 | test to elminate memory faults. | |
3495 | ||
3496 | * final.c (asm_insn_count): New fn. | |
3497 | (get_length_attr, shorten_branches): Rework length | |
3498 | computation of insns with INSN_CODE == -1. Call above fn to more | |
3499 | accurately obtain length of ASM insn. | |
3500 | ||
3501 | * genattrtab.c (check_attr_value): Allow CONST_INT to specify | |
3502 | numeric values for attributes. Also, prevent memory faults | |
3503 | on errors when ATTR is null. | |
3504 | (make_canonical): Convert CONST_INT to appropriate CONST_STRING. | |
3505 | (write_attr_case): Correctly check for ASM insns. | |
3506 | (make_numeric_value): Generalize to all positive integers. | |
3507 | ||
3508 | * jump.c (jump_optimize): Set JUMP_LABEL on jump added | |
3509 | in "{ ... x = 1;} if (x)" optimization and add to jump_chain. | |
3510 | ||
3511 | * local-alloc.c (no_conflict_p): Tighten up code to prevent | |
3512 | memory faults. | |
3513 | ||
3514 | * reload.c (find_reloads): Fix typo in EXTRA_CONSTRAINT call. | |
3515 | ||
3516 | Tue Nov 28 11:20:47 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
3517 | ||
3518 | * expr.c (save_noncopied_parts): Rename stack_loc as target. | |
3519 | Make the stack slot address correct. | |
3520 | ||
3521 | Mon Nov 27 15:39:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3522 | ||
3523 | * math-convex.h: New file. | |
3524 | ||
3525 | * c-decl.c (grokdeclarator): Don't test size of error_mark_node | |
3526 | as type of a field. | |
3527 | ||
3528 | Sun Nov 26 12:36:01 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
3529 | ||
3530 | * tm-mips.h (CONST_OK_FOR_LETTER_P): Delete extra paren. | |
3531 | ||
3532 | Fri Nov 24 12:36:29 1989 Chris Smith (csmith at mozart) | |
3533 | ||
3534 | * tm-convex.h (OVERRIDE_OPTIONS): remove target=host default. | |
3535 | * out-convex.c (override_options): remove. | |
3536 | ||
3537 | * tm-convex.h (*_TYPE_SIZE): define type sizes as the usual values. | |
3538 | * convex.md (movstrictsi): new, for field insertion in DImode regs. | |
3539 | ||
3540 | * tm-convex.h (LEGITIMATE_CONSTANT_P): allow all CONST_DOUBLES. | |
3541 | (PREFERRED_RELOAD_CLASS): reload nonimmediates from memory (NO_REGS). | |
3542 | * convex.md (movdi, movdf): use 'G' to handle nonimmediates. | |
3543 | (anddi3, iordi3, xordi3): allow immediates if high word is identity. | |
3544 | ||
3545 | * convex.md (tstdi): Finally figure out how to allocate a temp reg | |
3546 | in a way that won't get optimized away; remove hardwired use of s1. | |
3547 | ||
3548 | * convex.md (cmpqi): don't sign extend to SImode because operands | |
3549 | might be unsigned. Must compare bytes in registers instead. | |
3550 | ||
3551 | * convex.md (movtf): new. | |
3552 | ||
3553 | * convex.md (ash*, lsh*): rewrite to use shift vs. shiftrt. | |
3554 | Better code because no need to sign or zero extend when going left. | |
3555 | (shift, mask & test peephole): test next_insn_tests_no_inequality. | |
3556 | (similar with lshiftrt): New peephole. | |
3557 | ||
3558 | * tm-convex.h: add g++ defines FASCIST_ASSEMBLER, VTABLE_USES_MASK. | |
3559 | ||
3560 | Sun Nov 26 11:39:13 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
3561 | ||
3562 | * reload.c (decompose): Handle SUBREGs. | |
3563 | ||
3564 | Wed Nov 22 11:26:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3565 | ||
3566 | * pyr.md (mode conversion peepholes): Set CC_NO_OVERFLOW. | |
3567 | * out-pyr.c (consecutive_operands): Don't expect wrap from reg15 to 16. | |
3568 | ||
3569 | * make-pyr: Find the alloca which comes with the system. | |
3570 | ||
3571 | * tm-mips.h (CONST_OK_FOR_LETTER_P): Define `K'. | |
3572 | (SMALL_INT): Range is 16 bits, not 17. | |
3573 | (SMALL_INT_UNSIGNED): New macro. | |
3574 | * mips.md (andsi3, iorsi3, xorsi3): Use `K', not `I'. | |
3575 | ||
3576 | * mips.md (negsi2): Accept general_operand as input. | |
3577 | ||
3578 | * stor-layout.c (build_int): Defend against negative arguments. | |
3579 | ||
3580 | * varasm.c (MAX_HASH_TABLE): Change to a prime. | |
3581 | ||
3582 | Tue Nov 21 10:58:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3583 | ||
3584 | * mips.md (one_cmpl*): Accept general_operand as input. | |
3585 | ||
3586 | Mon Nov 20 11:18:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3587 | ||
3588 | * optabs.c (emit_cmp_insn): New arg, COMPARISON. | |
3589 | (emit_float_lib_cmp): New subroutine, handles soft-float comoare | |
3590 | of floating point values. Chooses ibrary fn from COMPARISON. | |
3591 | * expr.c, expmed.c, stmt.c, optabs.c: All calls changed. | |
3592 | * gnulib.c (__eqdf2, __nedf2, __gtdf2, etc.): New functions. | |
3593 | (__eqsf2, __nesf2, __gtsf2, etc.): New functions. | |
3594 | ||
3595 | * cse.c (fold_rtx): Simulate negative shift counts. | |
3596 | ||
3597 | Sun Nov 19 14:36:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3598 | ||
3599 | * out-pyr.c (notice_update_cc): Set CC_NO_OVERFLOW in many cases. | |
3600 | ||
3601 | * cse.c (fold_rtx, fold_cc0): Handle float trap. | |
3602 | ||
3603 | Sat Nov 18 00:17:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3604 | ||
3605 | * varasm.c (output_constant): Handle float trap in fprintf. | |
3606 | * toplev.c (float_signal): Don't print message. | |
3607 | * fold-const.c (combine): Print it here. | |
3608 | ||
3609 | * sparc.md (extend patterns): Handle CONST_INT as operand. | |
3610 | * out-sparc.c (output_block_move, output_mul_by_constant): | |
3611 | (output_eager_then_insn): Delete unused vars. | |
3612 | ||
3613 | * varasm.c (decode_rtx_const): Add a cast in SYMBOL_REF case. | |
3614 | ||
3615 | * tm-i386.h (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE) | |
3616 | (INITIALIZE_TRAMPOLINE): New macros. | |
3617 | * i386.md (indirect_jump): New pattern. | |
3618 | ||
3619 | * out-i386.c (singlemove_string): Fix paren error. | |
3620 | ||
3621 | Fri Nov 17 12:19:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3622 | ||
3623 | * expr.c (expand_increment): For pre-increment, copy the rtx to return. | |
3624 | ||
3625 | * c-parse.y (compstmt): There may be implicit decls, so check | |
3626 | and maybe keep the level. | |
3627 | ||
3628 | * tm-mips.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): | |
3629 | Use call_used_regs, not a private copy. | |
3630 | ||
3631 | Thu Nov 16 00:28:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3632 | ||
3633 | * reload1.c: Keep track of paradoxical subregs of each pseudo, | |
3634 | and make extra stack space for their sake. | |
3635 | (reload): Record max size paradoxical subreg for each pseudo. | |
3636 | (scan_paradoxical_subreg): New subroutine for that. | |
3637 | (reload): Make stack slots big enough for that size. | |
3638 | ||
3639 | * tm-i860.h (ASM_DECLARE_FUNCTION_NAME): Define it, | |
3640 | so we can output a no-op before each function. | |
3641 | ||
3642 | * tm-pyr.h (INIT_CUMULATIVE_ARGS): Simplify. | |
3643 | Pass function type to aggregate_value_p. | |
3644 | ||
3645 | * fold-const.c (fold): | |
3646 | For foo++ > const, don't change if foo++ could overflow. | |
3647 | ||
3648 | * loop.c (eliminate_biv): | |
3649 | Fix typo; check both coeffs when comparing givs. | |
3650 | ||
3651 | Wed Nov 15 00:12:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3652 | ||
3653 | * sdbout.c (sdbout_end_function, sdbout_end_block, sdbout_begin_block): | |
3654 | Don't allow line numbers < 1. | |
3655 | ||
3656 | * integrate.c (copy_for_inline): `break' was missing for case 'u':. | |
3657 | ||
3658 | * sdbout.c (plain_type_1): Output .dim X,Y...; for multi-dim array. | |
3659 | (sdbout_array_dim): New recursive subroutine. | |
3660 | (PUT_SDB_DIM): Macro eliminated. | |
3661 | (PUT_SDB_START_DIM, PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM): New macros. | |
3662 | * tm-3b1.h: Override PUT_SDB_START_DIM. | |
3663 | ||
3664 | * jump.c (delete_insn): Extra test for PREV != 0. | |
3665 | ||
3666 | Tue Nov 14 17:31:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3667 | ||
3668 | * tm-m68k.h (WORDS_BIG_ENDIAN): Define it. | |
3669 | * out-m68k.c (output_move_double): Adapt CONST_DOUBLE case to that. | |
3670 | ||
3671 | * varasm.c (decode_rtx_const): For SYMBOL_REF, use addr of string. | |
3672 | ||
3673 | * tm-pyr.h (INIT_CUMULATIVE_ARGS): | |
3674 | If -fpcc-struct-return, always do the scalar thing. | |
3675 | ||
3676 | * tm-sun3.h (LINK_SPEC): Specify -L to control choice of -lm. | |
3677 | ||
3678 | * function.c (expand_function_end): Use FUNCTION_OUTGOING_VALUE. | |
3679 | ||
3680 | Sat Nov 11 00:18:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3681 | ||
3682 | * calls.c (prepare_call_address): If NO_RECURSIVE_FUNCTION_CSE, | |
3683 | don't do function cse on calls to same function. | |
3684 | (emit_call_1): Don't call memory_address for SYMBOL_REF. | |
3685 | ||
3686 | * tm-att386.h (ASM_OUTPUT_COMMON): Use ROUNDED, not SIZE. | |
3687 | (ASM_OUTPUT_LOCAL): Likewise. Also, generate .lcomm | |
3688 | rather than a .data area symbol. | |
3689 | * tm-sun386.h: Likewise. | |
3690 | ||
3691 | * tm-bsd386.h (ASM_OUTPUT_COMMON): Use ROUNDED, not SIZE. | |
3692 | (ASM_OUTPUT_LOCAL): Likewise. | |
3693 | ||
3694 | * cexp.y (parse_escape): Delete unused var `count' from case 'x'. | |
3695 | ||
3696 | Fri Nov 10 15:04:15 1989 Richard Stallman (rms at rice-chex) | |
3697 | ||
3698 | * caller-save.c (emit_mult_restore, emit_mult_save): | |
3699 | Improve arithmetic for address to save at. | |
3700 | ||
3701 | Thu Nov 9 00:14:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3702 | ||
3703 | * tm-pyr.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): | |
3704 | Don't use obsolete pushw and popw insns. | |
3705 | (ASM_OUTPUT_ALIGN): Ensure arg in range 2 to 5. | |
3706 | * pyr.md (tstdi): Pattern deleted. | |
3707 | (SImode test recognizer): Output ucmpw if jump is unsigned. | |
3708 | ||
3709 | * out-sparc.c (operands_satisfy_eager_branch_peephole): | |
3710 | Check for moves between FP and non-FP regs; they take two insns. | |
3711 | * sparc.md (eager branch peepholes): Likewise. | |
3712 | (Ordinary delayed branch peepholes): Similar check. | |
3713 | * out-sparc.c (single_insn_extra_test): New subroutine. | |
3714 | ||
3715 | * final.c (final_scan_insn): | |
3716 | Rearrange to avoid calling BLOCK_PROFILER for a jump table. | |
3717 | ||
3718 | * reload1.c (choose_reload_regs): Split up a hairy if. | |
3719 | ||
3720 | Wed Nov 8 00:48:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3721 | ||
3722 | * calls.c (expand_call): Handle UNNAMED_ARGS_IN_REGISTERS. | |
3723 | ||
3724 | * toplev.c (main): Handle -gsdb to make sdb output when that and dbx | |
3725 | are both supported. | |
3726 | ||
3727 | * combine.c (subst): In (sign_extend:M (subreg:N (and:M .. <const>) 0)) | |
3728 | insist that constant be positive in mode N. | |
3729 | Also test mode N in similar zero_extend case. | |
3730 | ||
3731 | * c-typeck.c (build_modify_expr): When assigning to COND_EXPR | |
3732 | put cast to void around precomputed rhs. | |
3733 | ||
3734 | * calls.c (emit_call_1): Make funexp a valid address. | |
3735 | ||
3736 | Tue Nov 7 18:57:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3737 | ||
3738 | * expr.c (emit_move_insn): If args in memory, make addresses valid. | |
3739 | ||
3740 | * rtl.h: Undefine FFS in case it was defined by the system. | |
3741 | ||
3742 | * c-parse.y (combine_strings): Ignore warn_write_strings | |
3743 | if -traditional or -fwritable-strings. | |
3744 | ||
3745 | * Makefile.in (gnulib2): Fix syntax in shell conditionals. | |
3746 | ||
3747 | * stmt.c (expand_return): Handle COND_EXPR specially. | |
3748 | ||
3749 | Mon Nov 6 14:43:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3750 | ||
3751 | * optabs.c (expand_float): Check sign of FROM; may be faster than TO. | |
3752 | ||
3753 | * fold-const.c (fold): If REAL_INFINITY, allow division by zero. | |
3754 | * tm-sun3.h (REAL_INFINITY): Define it. | |
3755 | ||
3756 | * tm-i860.h, tm-m88k.h, tm-pyr.h, tm-spur.h (INIT_CUMULATIVE_ARGS): | |
3757 | Test aggregate_value_p, not just BLKmode. | |
3758 | ||
3759 | * gnulib2.c (__builtin_saveregs): Moved from gnulib.c. | |
3760 | Code added for mips. | |
3761 | ||
3762 | * pyr.md (conditional branch recognizers): Don't simplify if not -O. | |
3763 | ||
3764 | * out-pyr.c (extend_and_branch): Handle two constant operands. | |
3765 | ||
3766 | * integrate.c (function_cannot_inline_p): Don't inline if alloca used. | |
3767 | ||
3768 | Sun Nov 5 02:59:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3769 | ||
3770 | * Always make a LET_STMT and notes for the top level of a function | |
3771 | if it has any subblocks. | |
3772 | * c-decl.c (struct binding_level): New field keep_if_subblocks. | |
3773 | (poplevel): Obey the new field. | |
3774 | (keep_next_if_subblocks): New variable. | |
3775 | (pushlevel): Use that variable. | |
3776 | (store_parm_decls): Set that variable. | |
3777 | (compstmt): Pass nonzero to expand_end_bindings | |
3778 | for the new kept binding levels. | |
3779 | (kept_level_p): New function. | |
3780 | ||
3781 | * xm-mips.h: Define USE_C_ALLOCA if compiling with CC. | |
3782 | ||
3783 | * tm-alliant.h (CHECK_FLOAT_VALUE): Define this. | |
3784 | ||
3785 | * calls.c (expand_call): Make valreg 0 if passing structure address. | |
3786 | ||
3787 | Sat Nov 4 23:27:02 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3788 | ||
3789 | * caller-save.c (emit_mult_save, emit_mult_restore): | |
3790 | Test regs for suitability as address before using as temps. | |
3791 | ||
3792 | * cccp.c (make_definition, do_define): Better error checks for name. | |
3793 | ||
3794 | Fri Nov 3 01:05:04 1989 Torbj|rn Granlund (tege at echnaton) | |
3795 | ||
3796 | * pyr.md (tstdi): New pattern. Use 64-bit shift with count zero. | |
3797 | ||
3798 | * tm-pyr.h: -mretd pops args with the retd insn. | |
3799 | ||
3800 | * pyr.md (peep-holes for loop optimizations): Use the R output | |
3801 | format in PRINT_OPERAND, don't use output_branch. | |
3802 | * out-pyr.c: No need for functions output_branch, output_inv_branch. | |
3803 | ||
3804 | * tm-pyr.h (ASM_OUTPUT_ALIGN): Don't truncate alignment to two. | |
3805 | ||
3806 | Wed Nov 1 00:38:27 1989 Torbj|rn Granlund (tege at echnaton.sics.se) | |
3807 | ||
3808 | * out-pyr.c (output_inv_branch): When reversing test operands, ne | |
3809 | remains ne, and eq eq eq. | |
3810 | ||
3811 | * pyr.md: Cleanup output code for compare patterns. | |
3812 | ||
3813 | * pyr.md (return): Adjust frame pointer if | |
3814 | current_function_pretend_args_size != 0. | |
3815 | ||
3816 | * pyr.md (extendsidi2): Use general_operand for the input operand. | |
3817 | ||
3818 | * pyr.md, out-pyr.c: Output shift insns with output_shift. | |
3819 | ||
3820 | * tm-pyr.h, out-pyr.c: Make NOTICE_UPDATE_CC understand how | |
3821 | condition codes are really set. Define flag CC_VALID_FOR_UNSIGNED | |
3822 | with to make it possible not to reset cc after each compare or | |
3823 | test. | |
3824 | * pyr.md: Don't use CC_STATUS_INIT for most patterns. | |
3825 | ||
3826 | * out-pyr.c (already_sign_extended): Cleanup, correct, optimize. | |
3827 | ||
3828 | * out-pyr.c: rename radr_diff to constant_diff. | |
3829 | ||
3830 | * out-pyr.c (movdi_possible): Don't combine moves from memory to | |
3831 | memory, because of possible address aliasing. Don't combine moves | |
3832 | with register destination if the source operands are depending on | |
3833 | the destination of the first move, as in | |
3834 | ||
3835 | movw (pr3),pr3 | |
3836 | movw 4(pr3),pr4. | |
3837 | ||
3838 | * out-pyr.c (consecutive_operands): Handle SUBREG in addition to REG. | |
3839 | ||
3840 | * out-pyr.c (output_move_double): movl of immediate *sign* extends. | |
3841 | ||
3842 | Tue Oct 31 22:51:39 1989 Torbj|rn Granlund (tege at echnaton.sics.se) | |
3843 | ||
3844 | * pyr.md (cmpsi): Don't expand this. It's just slower. | |
3845 | ||
3846 | * out-pyr.c (extend_and_branch): Handle only QImode and HImode. | |
3847 | Flush code specific for SImode. | |
3848 | ||
3849 | * out-pyr.c (extend_and_branch): To make zero extensions to HImode | |
3850 | of constants not crash: | |
3851 | * out-pyr.c (ensure_extended): Call extend_const if it's a | |
3852 | CONST_INT. Don't call extend_const from extend_and_branch. | |
3853 | * pyr.md, out-pyr.md: Use global variable test_mode to determine the | |
3854 | mode of tests and compares. Set in define_expands for tests and | |
3855 | compares. Used in extend_and_branch. | |
3856 | * out-pyr.c: Pass mode between extend_and_branch and ensure_extended. | |
3857 | ||
3858 | * out-pyr.c (extend_and_branch): Accept SUBREG whereever REG is | |
3859 | accepted. | |
3860 | * out-pyr.c (weird_memory_memory): Accept SUBREG whereever REG is | |
3861 | accepted. | |
3862 | ||
3863 | Thu Nov 2 16:23:57 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3864 | ||
3865 | * gnulib2.c (lshrdi2, and other shifts): Take second arg as long long. | |
3866 | ||
3867 | * combine.c (subst): | |
3868 | Simplify (zero_extract (subreg:SI (lshift:QI (mem:QI ...)) 0) ...) | |
3869 | ||
3870 | * expr.c (do_jump): Don't discard NOP_EXPR from around COMPONENT_REF. | |
3871 | Put one on, if that allows extracting the component in natural mode. | |
3872 | ||
3873 | * final.c (get_attr_length): Omit the body if no length attribute. | |
3874 | ||
3875 | * Makefile.in (genattrtab): Use host-rtlanal.c as dep and to link. | |
3876 | (insn-attrtab.o): Use $(INCLUDES). | |
3877 | ||
3878 | * cse.c: Include stdio.h. | |
3879 | ||
3880 | * c-decl.c (finish_enum): Local `value' was declared and set wrong. | |
3881 | ||
3882 | * Makefile.in (gen*.o): Find source files in $(srcdir). | |
3883 | (LIBDEPS, HOST_LIBDEPS): Don't use USE_ALLOCA. | |
3884 | ||
3885 | Wed Nov 1 00:05:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3886 | ||
3887 | * stmt.c (init_function_start): Init max_parm_reg. | |
3888 | ||
3889 | * varasm.c (compare_constant_1): For ADDR_EXPR, compare symbol name. | |
3890 | For PLUS_EXPR, etc., don't record code twice. | |
3891 | (record_constant_1): Likewise. | |
3892 | ||
3893 | * expr.c (expand_assignment): Allow for overlap when storing into a | |
3894 | structure value area supplied by the caller. | |
3895 | ||
3896 | * cse.c (remove): Handle an elt in the wrong bucket. | |
3897 | ||
3898 | * function.c (fixup_stack_1): Avoid using move insn for address arith. | |
3899 | ||
3900 | * out-sparc.c (output_mul_by_constant): Constant zero is legitimate. | |
3901 | ||
3902 | * caller-save.c (emit_mult_restore, emit_mult_save): | |
3903 | Handle stack addresses which are invalid. | |
3904 | ||
3905 | * cse.c (use_related_value): Don't abort if offset is 0. | |
3906 | ||
3907 | Tue Oct 31 15:12:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3908 | ||
3909 | * config.gcc (pyramid): Set $machine to pyr. | |
3910 | ||
3911 | * calls.c (expand_call): Don't OK_DEFER_POP in is_const case. | |
3912 | ||
3913 | Mon Oct 30 17:00:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3914 | ||
3915 | * final.c (shorten_branches, init_insn_lengths): | |
3916 | Define unconditionally; conditionalize the contents, perhaps. | |
3917 | ||
3918 | Mon Oct 30 03:23:52 1989 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
3919 | ||
3920 | * final.c (shorten_branches): New function. | |
3921 | (init_insn_lengths, get_attr_length): New functions. | |
3922 | * function.c (init_function_start): Call init_insn_lengths. | |
3923 | * recog.c (constrain_operands): Call alter_subreg if nec. | |
3924 | * toplev.c (rest_of_compilation): Call shorten_branches. | |
3925 | (compile_file): Init and print shorten_branch_time. | |
3926 | ||
3927 | Mon Oct 30 03:23:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3928 | ||
3929 | * reload1.c (spill_regs): Make it short, not char. | |
3930 | ||
3931 | Sun Oct 29 00:53:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
3932 | ||
3933 | * final.c (final_scan_insn): Delete no-op moves, even without -O. | |
3934 | ||
3935 | * c-parse.y (yylex): Prevent warning for numbers that underflow. | |
3936 | ||
3937 | * stmt.c (assign_parms): Convert stack addresses to valid addresses. | |
3938 | (validize_mem): New subroutine. | |
3939 | ||
3940 | * c-decl.c (finish_enum): If -fshort-enums, round size up to match | |
3941 | some ordinary C integer type. | |
3942 | Compute precision properly when some values are negative. | |
3943 | Make type double precision when necessary. | |
3944 | ||
3945 | * c-decl.c (lang_decode_option): Accept and ignore -fnotraditional. | |
3946 | ||
3947 | * gcc.c (default_compilers): Pass -ftraditional to cpp as -traditional. | |
3948 | ||
3949 | * DOLLARS_IN_IDENTIFIERS now has three values. 1 is now the default. | |
3950 | It means enable $ only with -traditional. 2 means enable unless -ansi. | |
3951 | * c-decl.c (lang_decode_option): Implement that. | |
3952 | * cccp.c (main): Likewise. | |
3953 | * tm-vms.h, tm-apollo68.h, tm-convex.h, tm-next.h: | |
3954 | Define DOLLARS_IN_IDENTIFIERS as 2. | |
3955 | * tm-pyr.h: Define it as 0. | |
3956 | * cexp.y (initialize_random_junk): Test DOLLARS_IN_IDENTIFIERS | |
3957 | for nonzeroness. | |
3958 | ||
3959 | * stmt.c (check_for_full_enumeration_handling): Accept enum type | |
3960 | as argument (since was finding it incorrectly). | |
3961 | Delete special case for constant index. | |
3962 | (expand_end_case): Pass enum type; check for constant index. | |
3963 | ||
3964 | Sun Oct 29 00:53:46 1989 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
3965 | ||
3966 | * varasm.c (force_const_double_mem): Remove redundant code. | |
3967 | (record_constant_rtx): Use normal obstack since temporary data. | |
3968 | (force_const_mem): Don't output constant immediately. Instead, | |
3969 | save it for new fn to write. Also, make hash table mapping | |
3970 | internal label to desired constant. | |
3971 | (output_constant_pool): New fn to write constant pool. | |
3972 | (assemble_function): Call it. | |
3973 | (init_const_rtx_hash_table): Initialize new hash table and pool | |
3974 | chain and offset. | |
3975 | (find_pool_constant): New fn to map internal label SYMBOL_REF to | |
3976 | data about constant. | |
3977 | (get_pool_constant, get_pool_mode, get_pool_offset): New fns | |
3978 | using above fn to return data about constant pool labels. | |
3979 | * rtl.h: Define last three new fns. | |
3980 | ||
3981 | * integrate.c (save_constants): New fn to convert constant pool | |
3982 | references to recognizable representation of constant that was | |
3983 | being used. | |
3984 | (save_for_inline): Call it. | |
3985 | (copy_for_inline, output_inline_function): Undo this for copy to | |
3986 | be compiled. | |
3987 | (restore_constants): New fn used in output_inline_function. | |
3988 | (copy_rtx_and_substitute): Make new constant pool entries for | |
3989 | constants in pool when fn was inlined. | |
3990 | ||
3991 | * cse.c (cse_end_of_basic_block): Optionally make a "basic block" | |
3992 | that follows branches. Now takes previous block as argument and | |
3993 | computes which branch to follow/fall through next. | |
3994 | (cse_main, cse_basic_block): Make compatible with above. | |
3995 | ||
3996 | * toplev.c: Add new flag, -fcse-follow-jumps. | |
3997 | (rest_of_compilation): Pass dump file to cse_main. | |
3998 | ||
3999 | * flags.h: Add flag_cse_follow_jumps. | |
4000 | ||
4001 | Sat Oct 28 01:24:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4002 | ||
4003 | * optabs.c (emit_cmp_insn): Default MODE before computing CLASS. | |
4004 | ||
4005 | Fri Oct 27 16:25:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4006 | ||
4007 | * tm-next.h (__inline): define as macro for old 1.34 Next uses. | |
4008 | ||
4009 | Thu Oct 26 01:05:09 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4010 | ||
4011 | * mips.md (compare/branch peepholes): Combine using match_operator. | |
4012 | * out-mips.c (relop, frelop, frelop_reversed): New functions. | |
4013 | * tm-mips.h (PRINT_OPERAND): New codes `C' and `N' for comparisons. | |
4014 | (ASM_OUTPUT_SOURCE_LINE): Output .loc--MIPS likes that. | |
4015 | (EXTENDED_COFF, NO_UNDERSCORES, USE_COLLECT): Define, for collect.c. | |
4016 | (COFF): Undefine, for collect.c. | |
4017 | ||
4018 | * getattrtab.c: Rename define_asm_insn to define_asm_attributes. | |
4019 | * rtl.def: Likewise. | |
4020 | ||
4021 | Wed Oct 25 00:52:12 1989 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
4022 | ||
4023 | * rtl.def: Add new RTL codes for insn attributes. | |
4024 | Change last operand of DEFINE_INSN and DEFINE_PEEPHOLE. | |
4025 | ||
4026 | * rtlanal.c (rtx_equal_p): Add support for "V", "n", and "s" types. | |
4027 | ||
4028 | * genoutput.c (output_epilogue): No longer output machine_info | |
4029 | stuff. | |
4030 | (process_template): New function. | |
4031 | (gen_insn, gen_peephole): Call process_template. | |
4032 | (fatal): Add more args. | |
4033 | ||
4034 | * final.c: Allow called configuration macros to use attribute data. | |
4035 | ||
4036 | Wed Oct 25 00:52:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4037 | ||
4038 | * rtlanal.c (rtx_equal_p): Handle operand types n, V, S. | |
4039 | ||
4040 | * optabs.c (floattab): Record unsigned-float insns. | |
4041 | (can_float_p): New arg UNSIGNEDP. | |
4042 | (expand_float): Use those insns if available. | |
4043 | ||
4044 | Tue Oct 24 19:23:11 1989 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
4045 | ||
4046 | * genattr.c, genattrtab.c: New files. | |
4047 | * Makefile.in (insn-attr.h, insn-attrtab.c): | |
4048 | New files made by those two. | |
4049 | ||
4050 | * Makefile.in (insn-*.[ch]): Name the temp file `tmp-foo.c', etc., | |
4051 | not `tmp-insn-foo.c'. | |
4052 | ||
4053 | * combine.c (subst): Generalize simplification of | |
4054 | (zero_extend:M (subreg:N (zero_extract:M ...) 0)) and similar. | |
4055 | ||
4056 | Tue Oct 24 19:23:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4057 | ||
4058 | * combine.c (try_combine): Don't move a volatile asm. | |
4059 | ||
4060 | Mon Oct 23 01:45:34 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4061 | ||
4062 | * combine.c (try_combine): Don't install a subreg relating two modes | |
4063 | that aren't tieable. | |
4064 | ||
4065 | * gnulib2.c (__fixdfdi): Declare __fixunsdfdi. | |
4066 | ||
4067 | * combine.c: Make uid_cuid an int *. | |
4068 | (combine_instructions): Allocate as such. | |
4069 | * loop.c: Make uid_luid an int *. | |
4070 | (loop_optimize): Allocate as such. | |
4071 | ||
4072 | Sun Oct 22 20:35:55 1989 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
4073 | ||
4074 | * combine.c (try_combine): Call simplify_set_cc0_and for SIGN_EXTEND. | |
4075 | (subst): Start by putting constant last in commutative operations | |
4076 | and convert MINUS of a constant to PLUS. | |
4077 | Put CONST around any PLUS with 2 constants. | |
4078 | Simplify (minus <foo> (and <foo> (const_int -pow2))). | |
4079 | Handle (zero_extend (and ...)) when the and is nontrivial. | |
4080 | Convert (XOR (NOT x) (NOT y)) to (XOR x y). | |
4081 | Simplify (abs (neg <foo>)). | |
4082 | Simplify abs of something known positive. | |
4083 | Handle (zero_extend (truncate...)) using gen_lowpart. | |
4084 | Do it for sign_extend too. | |
4085 | Simplify (ZERO_EXTRACT (AND x) ...). | |
4086 | Simplify (ZERO_EXTRACT (ZERO_EXTEND z) ...), etc. | |
4087 | Extend "Extracting a single bit from result of shift" to SIGN_EXTRACT. | |
4088 | (ashiftrt (*shift <X> <c1>) <c1>) can be (sign_extend <X>) | |
4089 | (lshiftrt (*shift <X> <c1>) <c1>) can be (zero_extend (subreg <X>)) | |
4090 | Do (lshift <X> (sign_extend <Y>)) on non-regs using gen_lowpart. | |
4091 | Eliminate AND in (lshift (and <X> <C1>) <C2>). | |
4092 | Use gen_lowpart in (lshift:m1 (zero_extend:m2 <X>) <C>). | |
4093 | Use gen_lowpart in (and x const) => (zero_extend (subreg x 0)). | |
4094 | (simplify_set_cc0_and): Ignore outermost SIGN_ or ZERO_EXTEND. | |
4095 | Handle constant bit number. | |
4096 | Try to get into SImode for bitfield jumps. | |
4097 | ||
4098 | * recog.c (apply_change_group, validate_change): New functions. | |
4099 | ||
4100 | Sat Oct 21 00:51:49 1989 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
4101 | ||
4102 | * cse.c (cse_end_of_basic_block): Optionally make a "basic block" | |
4103 | that follows branches. Now takes previous block as argument and | |
4104 | computes which branch to follow/fall through next. | |
4105 | (cse_main, cse_basic_block): Make compatible with above. | |
4106 | ||
4107 | * cse.c (new_basic_block): Don't assume sizeof (rtx) == sizeof (int). | |
4108 | ||
4109 | * cse.c (make_new_qty, canon_hash): Add sanity checks. | |
4110 | ||
4111 | * cse.c (lookup_as_function): Don't assume VOIDmode == 0. | |
4112 | ||
4113 | * cse.c (exp_equiv_p): For commutative operations, check both orders. | |
4114 | Detect unexpected operand-type letters. | |
4115 | Mode is significant for all codes. | |
4116 | ||
4117 | * cse.c (fold_rtx): CONST_DOUBLE can also appear in DImode. Verify | |
4118 | that floating-point is used before folding it. | |
4119 | Verify that the host's INT width is wide enough to do folding. | |
4120 | ||
4121 | * cse.c (cse_insn): Treat each component of PARALLEL exactly the same | |
4122 | way as if it were standing alone. | |
4123 | ||
4124 | * combine.c (combine_instructions): If an insn explicitly references | |
4125 | CC0, try to combine it with the previous insn. Also, enable | |
4126 | combining an insn with two different insns whose results it uses. | |
4127 | ||
4128 | * combine.c (try_combine): Ignore USE or CLOBBER parallel parts in | |
4129 | I2 and I1 as they are not functional. | |
4130 | ||
4131 | Sat Oct 21 00:51:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4132 | ||
4133 | * out-pyr.c (extend_and_branch): Allow SUBREG like REG. | |
4134 | * pyr.md (mem-reg and reg-mem HI, QI patterns): | |
4135 | Don't match unless one arg is MEM. | |
4136 | ||
4137 | Sat Oct 21 00:28:48 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4138 | ||
4139 | * stor-layout.c (layout_decl): No more need to avoid >1 wd in one reg. | |
4140 | ||
4141 | * tree.c (build_index_type): Copy precision from sizetype. | |
4142 | ||
4143 | * reload.c (find_reloads_toplev): Don't truncate constant if bigger | |
4144 | than host word size. | |
4145 | ||
4146 | * gnulib2 (__floatdidf, __fixunsdfdi): Use WORD_SIZE, not BITS_PER... | |
4147 | (WORD_SIZE): # of bits in a `long' on the target. | |
4148 | ||
4149 | * genextract.c (gen_peephole): Use sizeof (rtx) copying operands. | |
4150 | ||
4151 | * fold-const.c (force_fit_type): Use POINTER_SIZE for pointers. | |
4152 | ||
4153 | * final.c (end_final, final_scan_insn): In sizes and aligns of | |
4154 | profiling vars and tbls, use INT_TYPE_SIZE for size of an int, | |
4155 | or give max alignment. | |
4156 | ||
4157 | * expr.c (do_jump): Comparing constant arg vs 0, take # sig bits | |
4158 | from mode of data type. | |
4159 | ||
4160 | * gcc.c: Add CC1PLUS_SPEC like CC1_SPEC. | |
4161 | (validate_all_switches, do_spec_1, process_command, read_specs): | |
4162 | Handle it. Use %2 to use it. | |
4163 | (default_compilers): Pass %2 to cc1plus. | |
4164 | ||
4165 | * out-sparc.c (output_fp_move_double): Use ldd only when safe, | |
4166 | on same conditions used for std. | |
4167 | ||
4168 | * Makefile.in (USE_ALLOCA): New var is $(ALLOCA) if compiling with | |
4169 | cc, null otherwise. Use this to refer to alloca. | |
4170 | ||
4171 | * Makefile.in (gnulib): Test vrbl HPUX_GAS to decide whether to run | |
4172 | hpxt instead of ranlib. | |
4173 | (stamp-gnulib2): Don't ranlib if HPUX_GAS. | |
4174 | * make-hp9kgas: New file, sets HPUX_GAS. | |
4175 | ||
4176 | Fri Oct 20 13:33:34 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4177 | ||
4178 | * expmed.c (store_bit_field, extract_bit_field): | |
4179 | Use mode whose size is UNITS_PER_WORD for struct in reg. | |
4180 | (store_fixed_bit_field, extract_fixed_bit_field): | |
4181 | Handle bigger constant masks. | |
4182 | (mask_rtx, lshift_value): New subroutines. | |
4183 | ||
4184 | * c-parse.y (combine_strings): Use correct width of `int'. | |
4185 | ||
4186 | * varasm.c (make_decl_rtl): Warn for volatile explicit register vars. | |
4187 | ||
4188 | Fri Oct 20 00:27:00 1989 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
4189 | ||
4190 | * reload1.c (reload_as_needed): Set new variable reload_in_progress | |
4191 | and clear it after reload complete. | |
4192 | ||
4193 | * reload1.c (choose_reload_regs): | |
4194 | Don't count deleted reloads vs number of spill regs. | |
4195 | ||
4196 | * reload1.c (choose_reload_regs): Arg of HARD_REGNO_MODE_OK | |
4197 | was the pseudo; should be the reload reg. | |
4198 | ||
4199 | * reload1.c (gen_input_reload): Don't generate a move with a PLUS | |
4200 | as an operand. | |
4201 | ||
4202 | * reload.c (find_reloads): Ignore unconstrained operands | |
4203 | when looking for conflict with an earlyclobber. | |
4204 | ||
4205 | * reload.c (subst_indexed_address): | |
4206 | Replace and canonicalize more thoroughly. | |
4207 | (form_sum): New subroutine. | |
4208 | ||
4209 | * out-i386.c (singlemove_string): Handle ordinary constants as input. | |
4210 | ||
4211 | * tm-decstatn.h (CPP_PREDEFINES): Add bsd4_2, ultrix, MIPSEL, | |
4212 | host_mips, R3000, LANGUAGE_C, SYSTYPE_BSD. | |
4213 | * tm-mips.h (CPP_PREDEFINES): Add host_mips, R3000, MIPSEB, LANGUAGE_C. | |
4214 | (CPP_SPEC): Remove those from here. | |
4215 | Define __SYSTYPE_*__ always. Define SYSTYPE_* only if not -ansi. | |
4216 | No CPP_SPEC needed for decstation. | |
4217 | Correct typos in option tests. | |
4218 | ||
4219 | * c-parse.y (unary_expr): Handle EXTENSION here, not in primary. | |
4220 | ||
4221 | Thu Oct 19 18:16:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4222 | ||
4223 | * tm-m68k.h, tm-alliant.h (PRINT_OPERAND): | |
4224 | Don't print :l for address if :w was already printed. | |
4225 | ||
4226 | * Allow elided braces with unions. | |
4227 | * c-typeck.c (digest_init): Treat unions more like records. | |
4228 | (process_init_constructor): Handle union types. | |
4229 | ||
4230 | * c-parse.y (program): Pedantic warning for empty file. | |
4231 | ||
4232 | Wed Oct 18 22:28:21 1989 Torbj|rn Granlund (tege at echnaton.sics.se) | |
4233 | ||
4234 | * out-pyr.c (extend_const, extend_and_branch): Make sure all const | |
4235 | are CONST_INT. | |
4236 | ||
4237 | * out-pyr.c (movdi_possible): Handle combination of two immediate | |
4238 | moves correctly. (Pyramid immediate move to a DImode operand | |
4239 | (movl) work by SIGN extension of the 32 bit immediate source.) | |
4240 | * Handle CONST tagged addresses. | |
4241 | ||
4242 | * out-pyr.c (already_sign_extended): Skip harmless JUMP_INSN when | |
4243 | scanning after extension insn. | |
4244 | * Check for right mode of extension. | |
4245 | * Delete redundant register number test. | |
4246 | ||
4247 | * pyr.md (anonymous SImode test pattern): Predicate need to accept | |
4248 | any operand that can be generated for corresponding compare. Used | |
4249 | to reject "foo(p) int *p {int a=0; return *p==a;}". | |
4250 | ||
4251 | * pyr.md (shift patterns): Condition bogus if no insn really output. | |
4252 | ||
4253 | * pyr.md: Flush obsolete comment about conversion. | |
4254 | ||
4255 | * tm-pyr.h (FUNCTION_PROLOGUE): Don't really set up a frame pointer | |
4256 | if it's never referenced. Also, don't round up frame size to a | |
4257 | multiple of 32, since input args and alloca nevertheless breaks | |
4258 | such alignment attempts. | |
4259 | * tm-pyr.h (FUNCTION_EPILOGUE): Goodbye. Use (define_insn "return" | |
4260 | ..) in md instead. | |
4261 | * pyr.md (return): Use "ret" or "retd" depending on the existense | |
4262 | of a freme pointer. | |
4263 | * tm-pyr.h (EXIT_IGNORE_STACK): Ensure the stack pointer is | |
4264 | preserved even when the frame pointer is not really set up. | |
4265 | ||
4266 | * pyr.md: Reinsert move-and-test peep-hole optimization. | |
4267 | ||
4268 | * pyr.md: Flush silly peep-hole optimizations for loops. They were | |
4269 | inverted optimizations. | |
4270 | ||
4271 | * tm-pyr.h (NOTICE_UPDATE_CC): Make it identify the most important | |
4272 | cases when set conditions codes can be used, without an explicit | |
4273 | test. | |
4274 | ||
4275 | Wed Oct 18 13:01:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4276 | ||
4277 | * gcc.c (default_compilers): Support -E on .h file. | |
4278 | ||
4279 | * tm-mips.h (FUNCTION_PROLOGUE): Get rid of __0__gcc macro. | |
4280 | Store that value in frame_stack_difference. | |
4281 | (FUNCTION_EPILOGUE): Get rid of __0__gcc macro. | |
4282 | (FIX_FRAME_POINTER_ADDRESS): Use frame_stack_difference. | |
4283 | * out-mips.c (frame_stack_difference): Define here. | |
4284 | ||
4285 | * gcc.c (default_compilers): Define __GNUG__ for g++. | |
4286 | ||
4287 | Tue Oct 17 01:17:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4288 | ||
4289 | * tm-i860.h (HAVE_PRE_INCREMENT): Undefine this. | |
4290 | ||
4291 | * mips.md (movsf): New alternatives for r registers. | |
4292 | * tm-mips.h (FUNCTION_PROLOGUE): Handle big stack frames. | |
4293 | * out-mips.c (function_arg): Handle mode distinction for floating args. | |
4294 | ||
4295 | * pyr.md (mtstsw pattern): Accept general_operand. | |
4296 | ||
4297 | * Makefile.in (gcc): Force-move when installing new gcc. | |
4298 | (realclean): Delete Makefile. | |
4299 | ||
4300 | * i860.md (movsf): New alternatives: allow loading r from F. | |
4301 | Prefer f-reg as reload when moving m from F. | |
4302 | * tm-i860.h (PRINT_OPERAND): Handle CONST_DOUBLE if SFmode. | |
4303 | ||
4304 | Sun Oct 15 14:27:48 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4305 | ||
4306 | * i860.md (movhi, movqi): Support moves to/from fp regs. | |
4307 | ||
4308 | * stmt.c (expand_goto): USE both stack ptr and static_chain_rtx | |
4309 | just before jumping. | |
4310 | ||
4311 | * sparc.md (tablejump peepholes): Fix paren error that no-op'd them. | |
4312 | ||
4313 | * tm-sparc.h (*TRAMPOLINE*): Defined macros, but defns are wrong. | |
4314 | * sparc.md (indirect_jump): New pattern; plus peepholes. | |
4315 | ||
4316 | * sparc.md (cse'd multiply): New pattern for mult. by -1. | |
4317 | ||
4318 | * out-i860.c (load_opcode, store_opcode): Handle DImode and fp reg. | |
4319 | ||
4320 | * toplev.c (compile_file): Always test TREE_USED and TREE_ADDRESSABLE | |
4321 | in identifier as well as in decl. | |
4322 | * c-decl.c (poplevel): Preserve TREE_ADDRESSABLE from local externs. | |
4323 | * c-typeck.c (mark_addressable): Don't set bit in identifier here. | |
4324 | ||
4325 | Fri Oct 13 00:12:46 1989 Richard Kenner (rms at sugar-bombs.ai.mit.edu) | |
4326 | ||
4327 | * flow.c (life_analysis): No need to think abt CONSIDER on first pass. | |
4328 | ||
4329 | * flow.c (propagate_block): Remove duplicated code to update OLD. | |
4330 | ||
4331 | * flow.c (mark_set_1): Handle nested SUBREG, SIGN_EXTRACT, | |
4332 | STRICT_LOW_PART, etc. Also, always set subreg_p when setting | |
4333 | a bit field, even if modes are same. | |
4334 | ||
4335 | * expr.c (expand_expr): Check for |= or &= of two bitfields of size 1. | |
4336 | Convert to test followed by assignment. | |
4337 | ||
4338 | * rtl.def (INLINE_HEADER): Correct erroneous field types. | |
4339 | ||
4340 | * rtl.h: Add definitions for saving flags in INLINE_HEADER. | |
4341 | ||
4342 | * emit-rtl.c (gen_inline_header): Correct out-of-date arguments. | |
4343 | Add support for saving flags. | |
4344 | ||
4345 | * integrate.c (save_for_inline): Save function flags. | |
4346 | Update comments. | |
4347 | (expand_inline_function, output_inline_function): Let machine-dependant | |
4348 | code view (or possibly modify) inlined insn, if desired. | |
4349 | ||
4350 | * function.c (assign_stack_local): Don't set frame_pointer_needed or | |
4351 | invalid_stack_slot if assigning zero-sized area. | |
4352 | ||
4353 | * stmt.c (fixup_var_refs_1): If the machine's SIGN_EXTRACT or | |
4354 | ZERO_EXTRACT insns can't accept a memory operand, fix them up. | |
4355 | ||
4356 | * expr.c (do_jump): Look inside EQ_EXPR or NE_EXPR if one arg is 0. | |
4357 | Be smart about PLUS_EXPR, MINUS_EXPR, ABS_EXPR, REFERENCE_EXPR, | |
4358 | NEGATE_EXPR, rotation, CONVERT_EXPR. | |
4359 | ||
4360 | * jump.c (reverse_condition): Make non-static. | |
4361 | (swap_condition): New routine. | |
4362 | ||
4363 | * final.c (alter_cond): Use new swap_condition. | |
4364 | ||
4365 | * expr.c (expand_expr): In cases where a jump will be generated, use | |
4366 | original_target because the registers won't be able to be merged due | |
4367 | to the jump. | |
4368 | ||
4369 | * expr.c (expand_expr): Put constant last for PLUS. | |
4370 | ||
4371 | Fri Oct 13 00:12:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4372 | ||
4373 | * recog.c (constrain_operands): Add case for `&'. | |
4374 | ||
4375 | * tm-vax.h (TRAMPOLINE_TEMPLATE): Add a .word 0 at beginning. | |
4376 | (TRAMPOLINE_SIZE): Increase by 2. | |
4377 | (INITIALIZE_TRAMPOLINE): Copy reg mask from pure code to trampoline. | |
4378 | Jump into the pure code after the reg mask. | |
4379 | ||
4380 | * expmed.c (expand_divmod): Use divmod insn for quotient if no div. | |
4381 | ||
4382 | * expmed.c (extract_bit_field): With structure reg fetched from mem, | |
4383 | don't put in subreg if mode already correct. | |
4384 | (store_bit_field): Typo: had extzv, wanted insv. | |
4385 | ||
4386 | * recog.c (init_recog): Set volatile_ok to 1. | |
4387 | (init_recog_no_volatile): Similar, but set volatile_ok to 0. | |
4388 | (recog_memoized): Don't set volatile_ok. | |
4389 | * reload1.c (reload): Call init_recog. | |
4390 | * combine.c (combine_instructions): Call init_recog_no_volatile. | |
4391 | * loop.c (loop_optimize): Likewise. | |
4392 | * cse.c (cse_main): Likewise. | |
4393 | * function.c (expand_function_start): Call init_recog_no_volatile | |
4394 | for the sake of predicates called from optabs.c. | |
4395 | ||
4396 | * toplev.c (compile_file): Warn if fun declared static and used | |
4397 | but never defined. | |
4398 | ||
4399 | Thu Oct 12 01:48:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4400 | ||
4401 | * cccp.c (macarg1): Count newlines even after backslash. | |
4402 | ||
4403 | * c-decl.c (pushdecl): Don't warn for explicit extern | |
4404 | followed by static. That case is useful for incomplete arrays. | |
4405 | ||
4406 | * c-decl.c (grokdeclarator): Delete some junk about Pmode vs EPmode. | |
4407 | ||
4408 | * tm-sparc.h (SELECT_RTX_SECTION): Test was backwards. | |
4409 | ||
4410 | * reload.c (reg_class_subset_p): New function. | |
4411 | ||
4412 | Wed Oct 11 00:35:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4413 | ||
4414 | * vax.md (indirect_jump): New pattern. | |
4415 | ||
4416 | * c-parse.y (primary): Turn off pedantic after `__extension__'. | |
4417 | (hash, is_reserved_word, etc.): Recognize `__extension__'. | |
4418 | ||
4419 | * expr.c (emit_library_call, expand_call): Make a SEQUENCE for | |
4420 | any needed USE insns and pass them to emit_call_1. | |
4421 | (emit_call_1): Place the passed SEQUENCE immediately before the | |
4422 | generated CALL_INSN even if gen_call made more than one insn. | |
4423 | ||
4424 | * tm-seq386.h (DBX_DEBUGGING_INFO): Override this. | |
4425 | (HARD_REGNO_MODE_OK): Override this. | |
4426 | ||
4427 | * c-typeck.c (build_conditional_expr): Supply missing layout_decl arg. | |
4428 | ||
4429 | * dbxout.c (dbxout_symbol): Handle nested functions. | |
4430 | ||
4431 | Wed Oct 11 00:35:25 1989 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
4432 | ||
4433 | * jump.c: Update jump_chain when insns change. | |
4434 | (jump_optimize): Leave room in jump_chain for some extra labels. | |
4435 | Record length in max_jump_chain. Check this when updating. | |
4436 | When optimizing jump-to-return, delete from one chain and add to other. | |
4437 | When cross-jumping turns cond jump to simple one, add to new chain. | |
4438 | Zero jump_chain at end, so redirect_jump won't change it further. | |
4439 | (redirect_jump): Delete from one chain, add to another. | |
4440 | (do_cross_jump): Likewise. | |
4441 | (delete_from_jump_chain): New subroutine. | |
4442 | ||
4443 | * cse.c: If `if (x != y) goto l;' fails to jump, assume x==y. | |
4444 | (reg_invaliate): Add new argument for when value isn't | |
4445 | changing, just its class. | |
4446 | (invalidate): Update reg_invalidate call. | |
4447 | (record_jump_equiv): New function. | |
4448 | (cse_insn): Call it. | |
4449 | ||
4450 | * cse.c (cse_insn): Delete previous test based on | |
4451 | prev_insn_explicit_cc0 just as based on prev_insn_cc0. | |
4452 | ||
4453 | Tue Oct 10 00:14:35 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4454 | ||
4455 | * reload.c (push_reload, combine_reloads): Let two reloads share | |
4456 | if one's regclass is a subset of the other. | |
4457 | ||
4458 | * Makefile.in: What depends in expr.h, depends on insn-codes.h also. | |
4459 | ||
4460 | Mon Oct 9 19:11:38 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4461 | ||
4462 | * cccp.c (finclude): Close descriptor as soon as text is read. | |
4463 | Eliminate `success'; return directly after successful processing. | |
4464 | (do_include): Don't close descriptor here. | |
4465 | ||
4466 | * tm-i386.h (REG_CLASS_FROM_LETTER): Don't define `S' letter. | |
4467 | It wasn't used; and now it means something else. | |
4468 | ||
4469 | * tm-ns32k.h (REG_CLASS_FROM_LETTER): Don't define `r' here. | |
4470 | `r' is standard. | |
4471 | ||
4472 | Mon Oct 9 01:09:25 1989 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) | |
4473 | ||
4474 | * flow.c (life_analysis): Ignore USEs and CLOBBERs when finding | |
4475 | redundant register copies. | |
4476 | * jump.c (jump_optimize): Do the same thing here. | |
4477 | ||
4478 | * jump.c (mark_jump_label): Loop NOTEs aren't relevant after loop | |
4479 | optimization. | |
4480 | ||
4481 | * integrate.c (copy_for_inline): Correctly handle RTL type "u". | |
4482 | * final.c (output_operand_lossage): Make non-static. | |
4483 | ||
4484 | * recog.c (constrain_operands): Treat N, O, P like I, J, K, L, M. | |
4485 | For Q...U, use EXTRA_CONSTRAINTS if defined. | |
4486 | * reload.c (find_reloads): Likewise. | |
4487 | ||
4488 | * rtl.c (copy_rtx, read_rtx, print_rtx): Handle operand type `V'. | |
4489 | ||
4490 | * rtlanal.c (note_stores): Use variable Y instead of equivalent | |
4491 | slower expression. | |
4492 | ||
4493 | * rtlanal.c (dead_or_set_p): Hard regs don't always have same RTX. | |
4494 | ||
4495 | * rtlanal.c (may_trap_p): Don't use const0_rtx here. | |
4496 | So we can use this file in programs that don't have const0. | |
4497 | ||
4498 | Mon Oct 9 01:09:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4499 | ||
4500 | * Support language-specific tree codes. | |
4501 | * tree.c (standard_tree_code_type, standard_tree_code_length): | |
4502 | Renamed tables. tree_code_type and tree_code_length are now pointers. | |
4503 | * tree.c (init_tree): Copy the tables to allocated memory. | |
4504 | * tree.c (tree_code_name): Move here from print-tree.c | |
4505 | and define like tree_code_type. | |
4506 | ||
4507 | * rtl.c (print_rtl): Handle 0 as operand. | |
4508 | ||
4509 | * emit-rtl.c (save_emit_status): Don't call init_emit here. | |
4510 | * function.c (push_function_context): Do it here. | |
4511 | ||
4512 | * emit-rtl.c (reinstate_emit_status): New function. | |
4513 | * function.c (trampoline_address): Use this around | |
4514 | INITIALIZE_TRAMPOLINE. | |
4515 | ||
4516 | * function.c (trampoline_address): Use fp->tail_recursion_reentry | |
4517 | when trampoline is in outer function. | |
4518 | ||
4519 | * Save and restore stack levels in nonlocal gotos. | |
4520 | * function.c: New variable nonlocal_goto_stack_level. | |
4521 | (init_function_start, push_function_context, pop_...): Init, push, pop. | |
4522 | (delete_handlers): Delete insns to set or use this slot. | |
4523 | * stmt.c (declare_nonlocal_label): Create this stack slot. | |
4524 | (expand_goto): Restore stack ptr from it. | |
4525 | (expand_end_bindings, expand_decl): When setting stack ptr, | |
4526 | store new value here. | |
4527 | * expr.c (expand_builtin): Likewise, for alloca. | |
4528 | * calls.c (expand_call): Likewise. | |
4529 | ||
4530 | * varasm.c (make_function_rtl): Rename nested functions for assembler. | |
4531 | * c-decl.c (start_function): Clear TREE_PUBLIC for nested function. | |
4532 | ||
4533 | * tm-i860.h (*TRAMPOLINE*): Define macros. | |
4534 | ||
4535 | * i860.md (movdi): accept F source in 2nd alternative. | |
4536 | Accept G source in 3rd. | |
4537 | (adddi3, subdi3): Typo in opcode of output. | |
4538 | ||
4539 | * i860.md (indirect_jump): Added pattern. | |
4540 | ||
4541 | * c-decl.c (lookup_label): Shadow label if it's wrongly inherited. | |
4542 | Set DECL_CONTEXT here, since nondeclared labels must be local. | |
4543 | ||
4544 | Sun Oct 8 01:38:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4545 | ||
4546 | * function.c (expand_function_start): Copy static chain to pseudo | |
4547 | reg if chain is used. | |
4548 | ||
4549 | * tm-mips.h (ASM_SPEC): Pass -nocpp to as. | |
4550 | ||
4551 | * c-decl.c (grokdeclarator): Ignore variant differences | |
4552 | when preserving typedef types from being altered. | |
4553 | ||
4554 | * Allow inner label scopes for ({...}). | |
4555 | * c-decl.c (push_label_level, pop_label_level): New functions. | |
4556 | * c-parse.y (stmt exprs): Call them. | |
4557 | ||
4558 | * c-decl.c (lookup_label): Set DECL-SOURCE-LINE to locus of reference. | |
4559 | (poplevel): Use locus of reference in err msg for undef label. | |
4560 | (define_label): Use DECL_INITIAL as flag that label has been defined. | |
4561 | ||
4562 | * function.c (expand_end_function): Delete nonlocal goto handlers | |
4563 | if no nonlocal gotos are actually received. | |
4564 | (delete_handlers): New function. | |
4565 | ||
4566 | * flow.c (find_basic_blocks): Treat blocks as reachable | |
4567 | if headed by labels with LABEL_PRESERVE_P. | |
4568 | (insn_dead_p): Don't delete insns to set the frame pointer or arg ptr. | |
4569 | ||
4570 | * m68k.md (indirect_jump): New pattern. | |
4571 | ||
4572 | Sat Oct 7 00:46:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4573 | ||
4574 | * c-decl.c (lookup_label): If label is nonlocal and wasn't declared so, | |
4575 | report error and return 0. | |
4576 | (shadow_label): New function. | |
4577 | * c-parse.y (goto stmt): Handle 0 returned by lookup_label. | |
4578 | (label_decl, label_decls): Parse forward-declarations of labels. | |
4579 | (pushlevel): Allow label declarations at start of compound stmt. | |
4580 | ||
4581 | * rtl.h (LABEL_PRESERVE_P): New flag in CODE_LABEL. | |
4582 | * jump.c (jump_optimize): Increment LABEL_NUSES if that flag is set. | |
4583 | ||
4584 | * stmt.c (any_pending_stack_level): New function. | |
4585 | (expand_end_bindings): If block has stack level or cleanups, | |
4586 | and this function has any nonlocal labels, make a nonlocal goto handler | |
4587 | for the block, and put it in effect during the block. | |
4588 | Set LABEL_PRESERVE_P on the handler's label. | |
4589 | (expand_goto): For a nonlocal label, restore its stack frame | |
4590 | and jump to current handler. | |
4591 | ||
4592 | * function.c: New var nonlocal_labels lists labels ok for nonlocal. | |
4593 | Initted in init_function_start, pushed and popped with fcn context. | |
4594 | * stmt.c (declare_nonlocal_label): Put a LABEL_DECL on this list. | |
4595 | ||
4596 | * output.h: Declare current_function_has_nonlocal_label | |
4597 | and sdb_begin_function_line. | |
4598 | * final.c: Don't declare them. | |
4599 | ||
4600 | * function.c (current_function_has_nonlocal_label): New var. | |
4601 | (init_function_start): Init it. | |
4602 | (push_function_context, pop...): Save and restore it. | |
4603 | * flags.h: Declare current_function_has_nonlocal_label. | |
4604 | * stmt.c (expand_goto): Set it if nonlocal label. | |
4605 | * local-alloc.c (combine_regs): Don't tie call-crossing reg | |
4606 | to a non-call-crossing reg, if receive nonlocal gotos. | |
4607 | (block_alloc): Don't allocate pseudos that cross calls, | |
4608 | if receive nonlocal gotos. | |
4609 | * global-alloc.c (global_alloc): Don't even make an allocno for | |
4610 | a reg that crosses calls, if receive nonlocal gotos. | |
4611 | ||
4612 | * function.c (init_function_start): Init function_call_count. | |
4613 | (push_function_context, pop_...): Save and restore it. | |
4614 | * calls.c (expand_call): Increment function_call_count. | |
4615 | * stmt.c (expand_{start,end}_bindings): Use this var | |
4616 | to determine whether there are any function calls in a block. | |
4617 | No need for a nonlocal goto handler if block has no calls. | |
4618 | ||
4619 | * c-decl.c (define_label): Set DECL_CONTEXT. | |
4620 | Maybe push label on shadowed_labels. | |
4621 | (pop_c_function_context): Clear out labels in named_labels | |
4622 | and reinstall those in shadowed_labels. | |
4623 | Restore shadowed_labels. | |
4624 | (push_c_function_context): Push shadowed_labels. | |
4625 | (start_function): Clear shadowed_labels. | |
4626 | ||
4627 | * function.c: New file, split from stmt.c. | |
4628 | ||
4629 | * xm-mips.h: Use __builtin_alloca. | |
4630 | ||
4631 | Fri Oct 6 00:30:42 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4632 | ||
4633 | * jump.c (jump_optimize): Optimization of | |
4634 | `if (...) x = 1; else {...} if (x) ...' got sense wrong sometimes. | |
4635 | ||
4636 | * Makefile.in (stamp-gnulib2): depend on gcc, cc1, cpp via | |
4637 | gnulib2-indirect. | |
4638 | ||
4639 | * tm-vax.h (TRAMPOLINE_SIZE,INITIALIZE_TRAMPOLINE,TRAMPOLINE_TEMPLATE): | |
4640 | Define macros. | |
4641 | ||
4642 | * m68k.md (addsi3): Change ! to ? in lea alternatives. | |
4643 | Put them before the add-to-register alternative. | |
4644 | ||
4645 | * reload.c (find_dummy_reload): Use PREFERRED_RELOAD_CLASS here | |
4646 | as in push_reload, so we make accurate predictions. | |
4647 | ||
4648 | * c-decl.c (pushdecl): Don't set DECL_CONTEXT for function declaration | |
4649 | that isn't a definition. | |
4650 | ||
4651 | * explow.c (fix_lexical_addr): Handle address that's just a base reg. | |
4652 | ||
4653 | * expr.c (expand_expr, case VAR_DECL): No need for static chain | |
4654 | if var is static. | |
4655 | ||
4656 | * reload.c (find_equiv_reg): Do let xregno be a pseudo reg, | |
4657 | but don't call HARD_REGNO_NREGS in that case. | |
4658 | ||
4659 | * local-alloc.c (combine_regs): Set reg_qty[sreg] even if it was <0. | |
4660 | ||
4661 | * c-decl.c (start_function): Clear named_labels. | |
4662 | ||
4663 | Thu Oct 5 00:30:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4664 | ||
4665 | * reload.c (find_equiv_reg): Don't let xregno be a non-hard reg. | |
4666 | Don't do OVERLAPPING_REGNO_P on a pseudo reg number. | |
4667 | ||
4668 | * Handle addresses of nested functions. | |
4669 | * New tm macros TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, | |
4670 | ALLOCATE_TRAMPOLINE, TRAMPOLINE_TEMPLATE. | |
4671 | * expr.c (expand_expr, case ADDR_EXPR): Handle addresses of nested fns. | |
4672 | * stmt.c (trampoline_address): New function. | |
4673 | * varasm.c (assemble_trampoline_template): New function. | |
4674 | ||
4675 | * i386.md (trunchiqi2, etc.): Output %1 with size of destination. | |
4676 | * out-i386.c (PRINT_REG): Support 'b' as CODE. | |
4677 | ||
4678 | * combine.c (try_distrib): Make sure we don't move a reg use | |
4679 | across a store into that reg. | |
4680 | ||
4681 | * reload1.c (order_regs_for_reload): Rate fixed regs at LARGE+2, | |
4682 | and explicitly used regs at LARGE+1. | |
4683 | ||
4684 | * stor-layout.c (layout_record): Support BIGGEST_FIELD_ALIGNMENT. | |
4685 | * tm-vax.h (BIGGEST_FIELD_ALIGNMENT): Define it. | |
4686 | (BIGGEST_ALIGNMENT): Now always 32. | |
4687 | ||
4688 | * stor-layout.c (build_int): When memoizing, make permanent nodes. | |
4689 | ||
4690 | Wed Oct 4 19:40:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4691 | ||
4692 | * xm-i860.h: Missing file added. | |
4693 | ||
4694 | * integrate.c (function_cannot_inline_p): Don't inline if > 100 bytes | |
4695 | of stack space, unless declared inline. | |
4696 | ||
4697 | Tue Oct 3 00:16:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4698 | ||
4699 | * stmt.c (assign_outer_stack_local): New function. | |
4700 | (put_var_into_stack): Allocate stack slot in fn the variable is in. | |
4701 | ||
4702 | * stmt.c (put_var_into_stack): If variable-size object is nonlocal, | |
4703 | put the pseudo with its address into the stack. | |
4704 | ||
4705 | * calls.c: New file, split out from expr.c. | |
4706 | (expand_call): Pass static chain if fn wants it. | |
4707 | ||
4708 | * Make put_var_into_stack handle vars of containing function. | |
4709 | * stmt.c (put_var_into_stack): Find the rtl chains for the | |
4710 | function that the variable belongs to. | |
4711 | (fixup_var_refs): New args FIRST_INSN, STACK and RTL_EXPS. | |
4712 | ||
4713 | * Make DECL_CONTEXT the function a var is in, and set it right away. | |
4714 | * c-decl.c (store_parm_decls): Use DECL_RESULT, not DECL_CONTEXT, | |
4715 | as the flag for duplicate names or missing names. | |
4716 | * c-decl.c (start_function): Don't set current_function_decl | |
4717 | till after calling pushdecl. | |
4718 | * c-decl.c (pushdecl): Set DECL_CONTEXT to current_function_decl. | |
4719 | (poplevel): Used to set it here, to the LET_STMT. Don't. | |
4720 | * stmt.c (init_function_start): Test for a FUNCTION_DECL in | |
4721 | DECL_CONTEXT, not for a LET_STMT. | |
4722 | ||
4723 | * c-parse.y (primary <- identifier): Set TREE_NONLOCAL if appro. | |
4724 | Also call mark_addressable. | |
4725 | ||
4726 | * stmt.c (expand_function_start): Store static chain into stack frame. | |
4727 | Fetch static chains of containing functions into pseudos. | |
4728 | (lookup_static_chain): Moved here; and really does something. | |
4729 | * expr.c (expand_expr): Handle nonlocal variable. | |
4730 | * explow.c (fix_lexical_addr): New function. | |
4731 | ||
4732 | * out-i386.c (fp_pop_int): Use %L0 in fistp insn. | |
4733 | ||
4734 | * global-alloc (find_reg): Fix typo marking new hard reg conflicts. | |
4735 | ||
4736 | * stmt.c (pushcase, pushcase_range, expand_end_case): | |
4737 | When warning about insns at start of case, don't mind NOTEs. | |
4738 | ||
4739 | * local-alloc.c (combine_regs): | |
4740 | Transfer all pseudos from SREG's old qty to its new qty. | |
4741 | ||
4742 | * Support nested functions: | |
4743 | * stmt.c (push_function_context, pop_function_context): New functions. | |
4744 | * tree.c (save_tree_status, restore_tree_status): New functions. | |
4745 | * stor-layout.c (save_storage_status, restore_storage_status): Ditto. | |
4746 | * expr.c (save_expr_status, restore_expr_status): Ditto. | |
4747 | * emit-rtl.c (save_emit_status, restore_emit_status): Ditto. | |
4748 | * c-decl.c (push_c_function_context, pop_c_function_context): Ditto. | |
4749 | (start_function, finish_function): New arg NESTED. | |
4750 | * c-parse.y (nested_function, notype_nested_function): New nonterms. | |
4751 | (decl): New alternative to use them. | |
4752 | ||
4753 | * tree.h: Declare lineno. | |
4754 | * c-decl.c (finish_function): Don't expect lineno as arg. | |
4755 | * c-parse.y (fndecl, *nested_function): Don't pass it. | |
4756 | ||
4757 | * expr.c (init_expr, expand_call): Delete may_call_alloca. | |
4758 | * tm-m88k.h, tm-sparc.h, tm-spur.h: Use current_function_calls_alloca. | |
4759 | * tm-mips.h: It wasn't really used; delete its declaration. | |
4760 | ||
4761 | Mon Oct 2 16:26:33 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4762 | ||
4763 | * reload1.c (emit_reload_insns): Reject any OLDEQUIV that is | |
4764 | in use in any other reload of this insn. | |
4765 | ||
4766 | * expr.c (expand_call): Don't put on notes for const functions | |
4767 | if there aren't real insns to hold them. | |
4768 | ||
4769 | Sun Oct 1 19:50:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4770 | ||
4771 | * integrate.c (expand_inline_function): Handle PARALLEL in CALL_INSNs | |
4772 | when setting follows_call. | |
4773 | ||
4774 | * mips.md (call_value): Change to a straightforward define_insn | |
4775 | with just one action--no PARALLEL. | |
4776 | ||
4777 | * i860.md (pfeq, pfgt and pfle patterns): Add f0 as 3rd arg. | |
4778 | ||
4779 | * integrate.c (save_for_inline): Don't delete NOTE_INSN_FUNCTION_END. | |
4780 | ||
4781 | * c-parse.y (simple_if): Return $$ as value of stmt_count. | |
4782 | (stmt (if statement)): Warn if $$ was not incremented in the body. | |
4783 | (stmt (else statement)): Likewise. | |
4784 | (stmt): All alternatives except null statement increment stmt_count. | |
4785 | ||
4786 | Fri Sep 29 08:56:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4787 | ||
4788 | * regclass.c (reg_class_record): If move between CLASS and GENERAL_REGS | |
4789 | is costly, charge that cost to GENERAL_REGS and its subclasses. | |
4790 | * tm-alliant.h, tm-m68k.h (REGISTER_MOVE_COST): New macro. | |
4791 | ||
4792 | * regclass.c (regclass): When a reg is a parm equiv to a stack slot, | |
4793 | decrease its memcost, since the insn to load it would go away. | |
4794 | ||
4795 | * global-alloc.c (find_reg): Rewrite two-pass hard reg preference code. | |
4796 | Uses regs_used_so_far to avoid allocating a reg not used elsewhere | |
4797 | in the first pass. Also updates regs_used_so_far. | |
4798 | (global_alloc): Initialize regs_used_so_far. | |
4799 | ||
4800 | * tm-next.h (LINK_SPEC): Typo for -Z option. Don't pass -M option | |
4801 | to ld, since that is for cpp. | |
4802 | ||
4803 | * Support -MD and -MMD options. | |
4804 | * gcc.c (default_compilers): Pass them to cpp in special way. | |
4805 | Don't inhibit compilation for them, only for -M and -MM. | |
4806 | * cccp.c (main): Handle them like -M and -MM except take arg | |
4807 | which is file name to write deps in. | |
4808 | ||
4809 | * toplev.c: #if 0 around everything for GDB_DEBUG. | |
4810 | * symout.c: File removed from distribution. | |
4811 | * Makefile.in: Don't try to compile or link it. | |
4812 | ||
4813 | * tm-hp9k320.h (ASM_FILE_START): Output a `version' pseudo-op. | |
4814 | [! HPUX_ASM] (ASM_SPEC): Don't use the -V option. Recognize -mc68000. | |
4815 | (CALL_USED_REGISTERS): Redefinition deleted. HPUX 6.5 doesn't need it. | |
4816 | * tm-hp9k310.h, tm-hp9k310g.h: New files. | |
4817 | ||
4818 | Thu Sep 28 12:57:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4819 | ||
4820 | * stmt.c (pushcase, pushcase_range): Warn if code was emitted inside | |
4821 | case stmt before 1st label is seen. | |
4822 | (expand_start_case): New arg is string to use in that warning. | |
4823 | (struct nesting): New fields printname and seenlabel. | |
4824 | * c-typeck.c (c_expand_start_case): Pass new arg to expand_start_case. | |
4825 | ||
4826 | * gcc.c: Can now read compilation specs, and asm_spec (etc), from file. | |
4827 | (cpp_spec, asm_spec, etc.): New variables, initted to corresp. macros. | |
4828 | (do_spec_1, validate_all_switches): Use the variables, not the macros. | |
4829 | (link_command_spec): New name for old link_spec. | |
4830 | (compilers, n_compilers): Now a pointer, with size of vector ptd to. | |
4831 | (default_compilers): New name for old `compilers' vector. | |
4832 | (read_specs): Given file name, read specs and add to `compilers'. | |
4833 | Also set cpp_spec, asm_spec, etc. | |
4834 | (skip_whitespace): New subroutine. | |
4835 | (main): Initialize `compilers' from `default_compilers'. | |
4836 | Find a specs file and call read_specs. | |
4837 | Search thru `compilers' from back to front. | |
4838 | * Makefile.in (install): Use gcc -dumpspecs to write a specs file. | |
4839 | ||
4840 | * Support multiple installed compilers; find them by | |
4841 | target machine and version. | |
4842 | (STANDARD_EXEC_PREFIX): Change to `.../gcc/'. | |
4843 | (standard_exec_prefix_1): Change to `.../gcc/'. | |
4844 | (process_command): Options -b and -V set spec_machine, spec_version. | |
4845 | Option -dumpspecs writes specs file to define cpp_spec, asm_spec, etc. | |
4846 | Option -dumpversion writes version number. | |
4847 | (main): Set machine_suffix from spec_machine and spec_version. | |
4848 | * Makefile.in (libsubdir): New variable, made from libdir. | |
4849 | (gcc.o): Define DEFAULT_TARGET_MACHINE macro in compilation. | |
4850 | Change value of STANDARD_EXEC_PREFIX as above. | |
4851 | (cccp.o): Use libsubdir. | |
4852 | (install): Install files under $(libsubdir), after making that dir. | |
4853 | ||
4854 | * reload.c (decompose): Handle case of pseudo with no hard reg. | |
4855 | ||
4856 | Wed Sep 27 01:20:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4857 | ||
4858 | * global-alloc.c: #if 0 handling of REG_NO_CONFLICT notes. | |
4859 | ||
4860 | * c-typeck.c (build_c_cast): Implement cast to union type. | |
4861 | ||
4862 | * Edit the makefile automatically when necessary. | |
4863 | * config.gcc: Produce Makefile by editing Makefile.in with sed. | |
4864 | * Makefile.in: New name for file `Makefile'. | |
4865 | Comments on editing the file deleted. | |
4866 | * config/make-*: Various files are inserted by sed into Makefile. | |
4867 | ||
4868 | * Provide a way for languages to control printing of function names. | |
4869 | * toplev.c (error, fatal, announce_function, etc.): | |
4870 | Use value of decl_printable_name to compute what name to print. | |
4871 | * stmt.c (init_function_start): Likewise. | |
4872 | * toplev.c (main): Init that variable. | |
4873 | (decl_name): New function, used by default. | |
4874 | ||
4875 | * explow.c (round_push): Fix typo: return fast if ALIGN is 1. | |
4876 | ||
4877 | * flow.c (dump_flow_info): Delete excess arg to fprintf. | |
4878 | * gcc.c (fatal): Delete excess arg to delete_temp_files. | |
4879 | ||
4880 | * expr.c (convert_move): Handle absence of integer truncate insns | |
4881 | by copying value to a reg (and then using subreg). | |
4882 | ||
4883 | * final.c (final_start_function): Do leaf-function register renumbering | |
4884 | if that is defined for this machine. | |
4885 | (leaf_renumber_regs, only_leaf_regs_used, leaf_function_p): New fns. | |
4886 | ||
4887 | * varasm.c (in_text_section): New function. | |
4888 | * tm-3b1.h (ASM_OUTPUT_SKIP): Use that. | |
4889 | ||
4890 | * stmt.c (case_index_expr_type): New function. | |
4891 | ||
4892 | * c-parse.y (maybe_attribute): Don't fail to return a value. | |
4893 | ||
4894 | Tue Sep 26 02:40:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4895 | ||
4896 | * Do auto-increments for hard regs. | |
4897 | * flow.c (mark_used_regs): Do set reg_next_use for hard regs. | |
4898 | When making an auto-increment for a hard reg, don't mess with | |
4899 | reg_n_refs or reg_n_sets. | |
4900 | (try_pre_increment_1): Likewise. | |
4901 | ||
4902 | * gcc.c (compilers): -undef inhibits predefined symbols. | |
4903 | ||
4904 | * combine.c (subst): In case EQ, prefer ZERO_EXTRACT, not SIGN_EXTRACT. | |
4905 | * vax.md (jbs, jbc patterns): Write with ZERO_EXTRACT. | |
4906 | * m88k.md: Likewise. | |
4907 | ||
4908 | * Merge C++ changes in stmt.c: | |
4909 | * Set up an obstack, stmt_obstack. | |
4910 | (ALLOC_NESTING): Allocate a `struct nesting' on that. Callers changed. | |
4911 | (POPSTACK): Use the obstack. | |
4912 | (init_stmt): New fn: init the obstack. | |
4913 | (any_pending_cleanup): New fn. | |
4914 | (expand_start_bindings): Leave outer_cleanups 0 if nothing in it. | |
4915 | (expand_end_bindings): Preserve some global vars around cleanups. | |
4916 | After cleanups, if no stack level to restore, do pending pops. | |
4917 | (fixup_cleanups): Do pending pops after the cleanups. | |
4918 | (expand_start_case): Don't output a NOTE if already have one. | |
4919 | (assign_parms): Speed up sizetree computations in common case. | |
4920 | (init_function_start): Use lang_printable_name for current_function_name. | |
4921 | (expand_function_end): Don't set REG_FUNCTION_VALUE_P | |
4922 | for a pseudo reg used to copy into the real return. | |
4923 | * toplev.c (compile_file): Call init_stmt. | |
4924 | ||
4925 | * c-typeck.c (commontype): If one arg is error_mark_node, return other. | |
4926 | ||
4927 | Mon Sep 25 12:13:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4928 | ||
4929 | * optabs.c (expand_binop): Handle boolean ops on >SImode with | |
4930 | several one-word insns. Put out REG_EQUAL and REG_NO_CONFLICT notes. | |
4931 | * global-alloc.c (global_conflicts): For each insn, record | |
4932 | in no_conflict_pairs all the REG_NO_CONFLICT notes of the insn. | |
4933 | (record_one_conflict): Don't mark a conflict between such a pair. | |
4934 | * local-alloc.c (block_alloc): Do combine_regs on the sequences | |
4935 | made by expand_binop for multi-word boolean ops. | |
4936 | (combine_regs): New arg ALREADY_DEAD is 1 if UREG died prior to INSN. | |
4937 | (no_conflict_p): New subroutine. | |
4938 | * combine.c (try_combine): Move REG_NO_CONFLICT notes like REG_INC. | |
4939 | * flow.c (life_analysis): Don't delete no-op moves | |
4940 | if they carry REG_EQUAL notes. These insns are needed later. | |
4941 | * reload.c (find_dummy_reload): Use actual operands (which may be | |
4942 | subregs) for most purposes, including checking for overlap. | |
4943 | (hard_reg_set_here_p): Handle a range of regnos, not just one. | |
4944 | ||
4945 | * loop.c (move_movables): Use special techniques to move regs | |
4946 | used for zero-extension. Don't combine matching regs; instead, | |
4947 | just record them in pairs in regs_may_share. | |
4948 | * global-alloc.c (global_alloc): Digest regs_may_share into a | |
4949 | vector, reg_may_share. Then assign matching regs the same allocno. | |
4950 | (global_alloc): Initialize allocno_n_refs, allocno_live_length, | |
4951 | allocno_calls_crossed. | |
4952 | (allocno_compare): Use those new vectors; don't use allocno_reg. | |
4953 | (find_reg): Use those new vectors. | |
4954 | Assign hard reg to all the pseudos that share the allocno. | |
4955 | ||
4956 | * jump.c (jump_optimize): Two new cases simplify jumping to or | |
4957 | falling into a test-and-branch after setting the register being tested. | |
4958 | * jump.c (get_label_before, get_label_after): New functions. | |
4959 | (do_cross_jump): Use get_label_before. | |
4960 | ||
4961 | Sun Sep 24 00:21:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
4962 | ||
4963 | * gnulib2.c (__fixunsdfsi): Defined here, not in gnulib.c. | |
4964 | * Makefile (LIBFUNCS, LIB2FUNCS): Corresponding change. | |
4965 | ||
4966 | * tm-i860.h (SDB_DEBUGGING_INFO): Define this, not SDB_... | |
4967 | ||
4968 | * gcc.c (link_spec): Don't specify -lg. | |
4969 | * tm-alliant.h, tm-convex.h, tm-hp9k3bsd.h, tm-isi68.h, tm-news.h | |
4970 | * tm-pyr.h, tm-seq386.h, tm-sequent.h, tm-sparc.h, tm-spur.h | |
4971 | * tm-sun2.h, tm-sun3.h, tm-sun386i.h, tm-tahoe.h, tm-vax.h: | |
4972 | Make LIB_SPEC link with -lg. | |
4973 | * tm-harris.h, tm-vaxv.h, tm-vms.h: Turn off inherited LIB_SPEC. | |
4974 | ||
4975 | * recog.h (insn_*): Declare these tables `const'. | |
4976 | (const): Define this as nothing, if not __STDC__. | |
4977 | * expr.h (insn_gen_function): Declare `const'. | |
4978 | (const): Define this as nothing, if not __STDC__. | |
4979 | * genoutput.c (main): In insn-output.c, don't define `const' if | |
4980 | already defined. | |
4981 | ||
4982 | * recog.c (offsettable_nonstrict_memref_p): New function. | |
4983 | * stmt.c (fixup_var_refs_1): Use that, not offsettable_memref_p. | |
4984 | * reload.c (find_reloads): Likewise. | |
4985 | ||
4986 | * integrate.c (save_for_inline): Set in_nonparm_insns when arrive | |
4987 | at the first nonparm insn. | |
4988 | (copy_for_inline): Set TREE_READONLY only if in_nonparm_insns. | |
4989 | ||
4990 | * Makefile (float.h): Make hard-params an ordinary dependency. | |
4991 | ||
4992 | * c-decl.c (poplevel): When popping a local extern decl, | |
4993 | save the TREE_USED bit in the identifier. | |
4994 | * toplev.c (compile_file): Check that, printing "not used" warnings. | |
4995 | ||
4996 | * c-parse.y (init_lex): Discard undesired reserved words from table. | |
4997 | (yylex): No need to check for them at lookup time. | |
4998 | ||
4999 | * tree.c (make_node): Always put PARM_DECL in saveable_obstack. | |
5000 | ||
5001 | * toplev.c (floor_log2, exact_log2): Rewritten for speed. | |
5002 | ||
5003 | * tree.c (listify): New function. | |
5004 | ||
5005 | * c-typeck.c (convert_for_assignment): New args for function being | |
5006 | called and argument number. Used in error messages. | |
5007 | (actualparameterlist): Pass those args usefully. | |
5008 | (wrn_for_assignment): New function. | |
5009 | ||
5010 | * loop.c (general_induction_var): Handle give copied from a biv. | |
5011 | ||
5012 | * i386.md (div*i3, udiv*i3): New patterns. | |
5013 | (divmodhi4, udivmodhi4): New patterns. | |
5014 | ||
5015 | * combine.c (subst): | |
5016 | Simplify (sign_extend:M (subreg:N (lshiftrt:M REG CONST) 0)) | |
5017 | when REG was assigned from (zero_extend:M (any:N ...)). | |
5018 | Make the similar (zero_extend:M ...) case share code. | |
5019 | ||
5020 | * expr.c (store_field): A frame-pointer-relative address is stable. | |
5021 | ||
5022 | * expr.c (expand_expr): Effectively pass on IGNORE for 2nd op of comma. | |
5023 | ||
5024 | Sun Sep 24 00:21:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5025 | ||
5026 | * Version 1.36 released. | |
5027 | ||
5028 | * genextract.c (main): Pass `insn' as arg to `fatal_insn_not_found'. | |
5029 | ||
5030 | * tahoe.md (casel patterns): Use %@ for operand of .align. | |
5031 | * tm-tahoe.h (PRINT_OPERAND): %@ prints `1'. | |
5032 | * tm-harris.h (PRINT_OPERAND): Redefine it; %@ prints `2'. | |
5033 | ||
5034 | * config.gcc (decstation): New entry. | |
5035 | ||
5036 | * tm-harris.h: New file, using tm-tahoe.h. | |
5037 | ||
5038 | * tm-decstatn.h, tm-mips-bsd.h, tm-mips-sysv.h: New files. | |
5039 | ||
5040 | Sat Sep 23 00:28:14 1989 Alain Lichnewsky (lich at glenlivet) | |
5041 | ||
5042 | * added -Zxxx flag in tm-mips.h. (-Z stands for systype) | |
5043 | ||
5044 | used as -ZSYSV or -ZBSD43 on RISC_OS. I suppose | |
5045 | that at somepoint -ZPOSIX might be required for Ultrix. | |
5046 | ||
5047 | * changed command issued to loader to set -systype and to get | |
5048 | crt1 crtn instead of crt0. | |
5049 | ||
5050 | * changed predefines for cpp to agree with RISC-OS | |
5051 | ||
5052 | * tm-mips.h checks for machine type ( defined(ultrix) == DECSTATION) | |
5053 | so that user does not have to go in and change tm-mips.h anymore | |
5054 | ||
5055 | * cpp defines mips host_mips unix and SYSTYPE_SYSV | |
5056 | or SYSTYPE_BSD43. | |
5057 | ||
5058 | Fri Sep 22 00:31:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5059 | ||
5060 | * pyr.md (andsi3): Flush spurious paren. | |
5061 | ||
5062 | * Makefile (hard-params): Don't use LIBS or LIBDEPS. | |
5063 | ||
5064 | * rtl.c (init_rtl): | |
5065 | Use malloc to allocate the string for format of CONST_DOUBLE. | |
5066 | Don't fail to store in rtx_format. | |
5067 | ||
5068 | Thu Sep 21 00:33:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5069 | ||
5070 | * print-tree.c (dump): Move decl of P in REAL_CST case. | |
5071 | ||
5072 | * fold-const.c (fold): For ABS_EXPR, handle REAL_IS_NOT_DOUBLE. | |
5073 | ||
5074 | * c-convert.c (convert_to_real): Use REAL_VALUE_ATOF to make 0. | |
5075 | ||
5076 | * mips.md (movdi): Handle constant with or without WORDS_BIG_ENDIAN. | |
5077 | For alternative 2, output just 2 store insns, not 3. | |
5078 | ||
5079 | * dbxout.c (dbxout_symbol): Optionally go to .data for | |
5080 | a static file-scope variable. | |
5081 | * tm-vax.h: Define DBX_STATIC_STAB_DATA_SECTION to request this. | |
5082 | ||
5083 | * varasm.c (output_constant, force_const_mem): | |
5084 | ASM_OUTPUT_DOUBLE_INT now takes rtx as argument. | |
5085 | ||
5086 | * gvarargs.h [__NeXT__]: Undefine macros defined by stdardg.h. | |
5087 | Define _VARARGS_H. | |
5088 | ||
5089 | * stddef.h (size_t): Don't define it if _SIZE_T macro is defined. | |
5090 | (NULL): Undef any previous defn. | |
5091 | ||
5092 | * cexp.y (NULL): Don't define if already defined. | |
5093 | ||
5094 | * emit-rtl.c (force_next_line_note): New function. | |
5095 | * stmt.c (expand_function_start): Call that just before returning. | |
5096 | ||
5097 | Wed Sep 20 01:22:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5098 | ||
5099 | * c-parse.y (asm_clobbers): | |
5100 | Allow string concatenation: call combine_strings. | |
5101 | ||
5102 | Mon Sep 18 00:04:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5103 | ||
5104 | * expr.c (expand_call): If calling const function, don't defer | |
5105 | pops for this call. | |
5106 | ||
5107 | * c-parse.y (yylex): When float constant ends in `f', | |
5108 | actually truncate to a single-float. | |
5109 | ||
5110 | Sun Sep 17 01:36:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5111 | ||
5112 | * gcc.c (SWITCH_TAKES_ARG): -A takes an arg. | |
5113 | (link_spec): Inhibit start files when -A. | |
5114 | ||
5115 | * convex.md (call, call_value): Supply dummy arg to RETURN_POPS_ARGS. | |
5116 | ||
5117 | * gnulib2.c (__fixunsdfdi): After removing top half, A can be neg. | |
5118 | (__cmpdi2, __ucmpdi2): Was misusing macros HIGH and LOW-- | |
5119 | use .s.high and .s.low to extract words from long_long. | |
5120 | ||
5121 | * Makefile (gnulib2): Run `./gcc'. | |
5122 | ||
5123 | * Makefile (float.h): Use `make', not `$(MAKE)'. | |
5124 | (hard-params.o): Use `$(srcdir)' in deps as in commands. | |
5125 | ||
5126 | * out-tahoe.c (output_move_double): Handle constant operand 1. | |
5127 | ||
5128 | Sat Sep 16 01:15:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5129 | ||
5130 | * reload1.c (emit_reload_insns): Put death note for input reload reg | |
5131 | even if reload was inherited. | |
5132 | ||
5133 | * out-i860.c (output_block_move): Typo loading size of block. | |
5134 | ||
5135 | * m68k.md (dbra patterns): Do CC_STATUS_INIT. | |
5136 | ||
5137 | * cse.c (fold_rtx): Check GET_MODE_CLASS before floating negate. | |
5138 | ||
5139 | Fri Sep 15 00:39:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5140 | ||
5141 | * combine.c (subst): Don't combine (subreg (mem)) | |
5142 | if subreg's mode is wider than mem's mode. | |
5143 | ||
5144 | Thu Sep 14 04:33:51 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5145 | ||
5146 | * Makefile (clean): Delete temp files used in making gnulib. | |
5147 | ||
5148 | * tm-next.h (LINK_SPEC): Pass -Z and -seglinkedit options. | |
5149 | ||
5150 | Tue Sep 12 01:06:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5151 | ||
5152 | * stor-layout.c (layout_type): Ignore MAX_FIXED_MODE_SIZE for ints. | |
5153 | ||
5154 | * mips.md (cmpsi + bleu peephole): Should output unsigned insn. | |
5155 | ||
5156 | * expmed.c (store_bit_field, extract_bit_field): If loading mem | |
5157 | into reg for bit field insn, don't use a larger mode than insn wants. | |
5158 | ||
5159 | * Makefile (stamp-gnulib2): Depend on gcc, cc1, cpp to avoid | |
5160 | wrong order of making when parallel. | |
5161 | ||
5162 | * Makefile (float.h): Do use $(MAKE) to run recursive make. | |
5163 | ||
5164 | Mon Sep 11 00:49:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5165 | ||
5166 | * cccp.c (main): Test for missing arg after -o, etc. | |
5167 | ||
5168 | * tm-next.h: Nearly completely new. | |
5169 | ||
5170 | * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move after config.h. | |
5171 | ||
5172 | * cccp.c: Cast some args to strcpy and strcat. | |
5173 | ||
5174 | * genoutput.c (error): Declare arg S. | |
5175 | ||
5176 | * tm-pyr.h, pyr.md, out-pyr.c, xm-pyr.h: New files. | |
5177 | * config.gcc: New item for pyr. | |
5178 | ||
5179 | * gvarargs.h: If __pyr__, use va-pyr.h. | |
5180 | ||
5181 | Sun Sep 10 00:48:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5182 | ||
5183 | * reload1.c (inc_for_reload): Really return the first of the insns. | |
5184 | ||
5185 | * stor-layout.c (build_int): Memoize size nodes for sizes <= 32. | |
5186 | ||
5187 | * loop.c (check_dbra_loop): Don't reverse a biv that is used | |
5188 | in between its update and the loop endtest insn. | |
5189 | ||
5190 | Sat Sep 9 02:10:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5191 | ||
5192 | * stor-layout.c (genop): Don't use `combine' for nonexplicit constants. | |
5193 | Handle some identity elements, etc., directly. | |
5194 | (layout_basetypes): Function deleted. | |
5195 | (layout_record): Ignore any TYPE_DECLs in the fieldlist. | |
5196 | Don't do PCC_BUTFIELD_TYPE_MATTERS hack on field with ERROR_MARK type. | |
5197 | (layout_union): Delete error check for base types. | |
5198 | Ignore any TYPE_DECLs in the fieldlist. | |
5199 | (layout_type): Copy layout info directly into all variants of type. | |
5200 | Delete unused local `x'. | |
5201 | ||
5202 | * mips.md (movdi): Handle constant source operand. | |
5203 | (movsi): Some output code moved to output_load_immediate. | |
5204 | * out-mips.c (output_load_immediate): New function. | |
5205 | ||
5206 | * config.gcc (iris): Use tm-iris.h and xm-iris.h. | |
5207 | ||
5208 | * integrate.c (copy_for_inline): Copy all nonconstant MEM addresses. | |
5209 | ||
5210 | * tm-3b1.h (ASM_OUTPUT_SPACE): New override defn, to output explicit | |
5211 | bytes of 0 if in text segment. | |
5212 | ||
5213 | Fri Sep 8 19:15:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5214 | ||
5215 | * combine.c (try_combine): Don't do i3dest stuff if i3 isn't a SET. | |
5216 | ||
5217 | Thu Sep 7 00:16:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5218 | ||
5219 | * integrate.c (function_cannot_inline_p): Fn is "not even close" | |
5220 | only if > 3 * max_insns. | |
5221 | ||
5222 | * toplev.c (fatal_insn_not_found): New fn. | |
5223 | * genextract.c (main): Make insn_extract call that fn. | |
5224 | ||
5225 | * integrate.c (expand_inline_function): Don't abort about bad offset | |
5226 | in a parm whose type is error_mark_node. | |
5227 | Make another syntax level to hold parm destructors. | |
5228 | ||
5229 | * tm-mips.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): | |
5230 | Increment push_loc after, not before, each reg save or restore. | |
5231 | When storing reg 9 or 29, use offset tsize-4. | |
5232 | Make tsize larger by 4 initially. | |
5233 | (STARTING_FRAME_OFFSET): -8, not -4. | |
5234 | ||
5235 | * gcc.c (choose_temp_base): Make use of TMPDIR and P_tmpdir | |
5236 | if they exist. | |
5237 | ||
5238 | * toplev.c, gcc.c, cccp.c, gen*.c (fancy_abort): | |
5239 | New function which can be used to replace `abort'. | |
5240 | ||
5241 | * toplev.c (main): Save argv, argc in save_argv, save_argc. | |
5242 | ||
5243 | * jump.c (delete_insn): Always advance NEXT across deleted insns, | |
5244 | in case not optimizing. Fixes setting current_function_returns_null. | |
5245 | ||
5246 | * symout.c: Include stddef.h with <...>. | |
5247 | ||
5248 | Wed Sep 6 00:39:35 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5249 | ||
5250 | * gcc.c (find_exec_file): Was using `argbuf[0]' where wanted `prog'. | |
5251 | ||
5252 | * combine.c (combine_instructions): Dont call record_dead_and_set_regs | |
5253 | if insn has become a NOTE. | |
5254 | ||
5255 | * reload.c (combine_reloads): Update reload_when_needed. | |
5256 | ||
5257 | * jump.c (delete_insn): If delete label on ADDR_VEC, delete table too. | |
5258 | (jump_optimize): If ADDR_DIFF_VEC label has 1 ref, delete it and table. | |
5259 | ||
5260 | * gunlib2.c (__fixunsdfdi, __floatdfdi): Make the long long, | |
5261 | and/or its two halves, unsigned. | |
5262 | ||
5263 | * reload1.c (reload): When setting double_reg_address_ok, | |
5264 | require it to be offsettable. | |
5265 | * out-sparc.c (output_fp_move_double): Now safe to use std | |
5266 | for all reg+reg addresses. | |
5267 | ||
5268 | * vax.md: Add another simplified-casesi pattern for operand 0 constant. | |
5269 | ||
5270 | * cse.c (fold_rtx): Don't truncate VAL at end if WIDTH is 0. | |
5271 | Don't alter WIDTH for that purpose based on the operands. | |
5272 | ||
5273 | * stmt.c (warn_if_unused_value): && or || is ok if 2nd op has effect. | |
5274 | ||
5275 | * c-parse.y (ALIGNOF unary_expr): Find a larger value if possible. | |
5276 | ||
5277 | * reload.c (combine_reloads): Don't combine an output address reload. | |
5278 | (find_reloads): Call combine_reloads after setting reload_when_needed. | |
5279 | (find_reloads_address): Update OPERAND if copy the operand. | |
5280 | ||
5281 | * cccp.c (macroexpand): Missing arg no error in 1-arg macro if -trad. | |
5282 | ||
5283 | Tue Sep 5 14:12:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5284 | ||
5285 | * reload.c (find_dummy_reload): Don't use the output reg if it is | |
5286 | a fixed reg which can overlap with other regs. | |
5287 | ||
5288 | * cse.c (exp_equiv_p): Two vectors must have same length. | |
5289 | ||
5290 | * tree.def (WITH_CLEANUP_EXPR): Print-name string was wrong. | |
5291 | ||
5292 | * optabs.c (expand_fix): Undo previous change (unsigned conversion). | |
5293 | It doesn't work. | |
5294 | ||
5295 | * gcc.c: Pass -i option to cpp. It takes an arg. | |
5296 | ||
5297 | * cccp.c (cplusplus_include_defaults) [VMS]: Typo in array indices. | |
5298 | ||
5299 | * Makefile (gnulib): Create it in tmpgnulib, then rename at the end. | |
5300 | ||
5301 | * i860.md (movdi from constant pattern): Fix `st' opcode typos. | |
5302 | ||
5303 | * Makefile (hard-params*): Use CCLIBFLAGS, not CFLAGS. | |
5304 | ||
5305 | Fri Sep 1 03:43:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5306 | ||
5307 | * tm-i386gas.h (ASM_OUTPUT_ALIGN): .align arg isn't a log, in gas. | |
5308 | (ASM_OUTPUT_ALIGN_CODE): Align labels, etc. to 4-byte boundary. | |
5309 | ||
5310 | * integrate.c (save_for_inline): Delete NOTE_INSN_DELETED notes. | |
5311 | ||
5312 | * Makefile (clean): Delete dbr and jump2 dumps. | |
5313 | ||
5314 | * Makefile (gnulib, gnulib2): Compile in main dir, not libtemp subdir. | |
5315 | This avoids trouble with -I options, etc. | |
5316 | ||
5317 | Thu Aug 31 15:07:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5318 | ||
5319 | * reload1.c (emit_reload_insns): | |
5320 | Be specific moving REG_DEAD notes to an output reload. | |
5321 | Sometimes move them to output-operand-address reloads. | |
5322 | ||
5323 | * out-sparc.c (output_fp_move_double): Very cautious about std. | |
5324 | Use it only for something visibly aligned, or for an array element. | |
5325 | ||
5326 | * cccp.c (main) [VMS]: Remove dirs and extension from PROGNAME. | |
5327 | (pfatal_with_name) [VMS]: Return VMS system call error code as status. | |
5328 | (cplusplus_include_defaults) [VMS]: Add GNU_GXX_INCLUDE. | |
5329 | ||
5330 | * xm-vms.h (FATAL_EXIT_CODE): Now (44 | 0x10000000). | |
5331 | ||
5332 | * expr.c (do_store_flag): Allow more values of STORE_FLAG_VALUE. | |
5333 | ||
5334 | * gnulib2.c (__fixunsdfdi): Explicitly cast doubles to `long int' | |
5335 | to avoid infinite recursion. | |
5336 | ||
5337 | Wed Aug 30 13:28:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5338 | ||
5339 | * loop.c (skip_consec_insns): Skip NOTEs. | |
5340 | ||
5341 | * loop.c (general_induction_var): If G or V is a nonreplaceable giv, | |
5342 | give up. If G is allocated here, consider it replaceable. | |
5343 | ||
5344 | * stupid.c: Make uid_suid, reg_where_born and reg_where_dead | |
5345 | vectors of ints, not short. | |
5346 | ||
5347 | Tue Aug 29 00:21:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5348 | ||
5349 | * tm-iris.h: Fix typo in formfeed char. | |
5350 | ||
5351 | * out-i860.c (singlemove_string): Add missing `.l' to `st', `ld'. | |
5352 | ||
5353 | * loop.c (general_induction_var): Don't set G from 2nd op. of MINUS, | |
5354 | since that would negate the result. | |
5355 | ||
5356 | Mon Aug 28 00:16:36 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
5357 | ||
5358 | * dbxout.c (dbxout_symbol): When we need a pointer type, don't | |
5359 | record it in TYPE_POINTER_TO, lest it not live as long as its target. | |
5360 | ||
5361 | * tm-hp9k320.h (CPP_PREDEFINES): Delete __hp9000s300 and _HPUX_SOURCE. | |
5362 | ||
5363 | * Makefile (gnulib): Deleted stamp-gnulib2 in wrong dir. | |
5364 | (hard-params.o): Copy it into current dir before compiling. | |
5365 | (STAGESTUFF): Include the stamp-*.[ch] files. | |
5366 | ||
5367 | Sun Aug 27 13:59:39 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
5368 | ||
5369 | * out-i860.c (output_size_for_block_move): Typo in CC_KNOW_HI_R31. | |
5370 | ||
5371 | * integrate.c (expand_inline_function): Ignore insns to set value reg | |
5372 | if we don't want the value. | |
5373 | ||
5374 | * varasm.c (make_function_rtl, make_decl_rtl): Use DECL_ASSEMBLER_NAME. | |
5375 | ||
5376 | * Makefile (stamp-gnulib2): Don't explicitly delete old members, | |
5377 | just replace them. | |
5378 | ||
5379 | * m68k.md, alliant.md (trunchiqi): Use movew if moving from memory | |
5380 | or from a const_int. | |
5381 | ||
5382 | * integrate.c (expand_inline_function): Set first_parm_offset | |
5383 | later on, after computing the args, in case those args | |
5384 | contain inline function calls. | |
5385 | ||
5386 | * alliant.md (movqi): Like recent change in m68k.md. | |
5387 | ||
5388 | Sat Aug 26 00:26:03 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
5389 | ||
5390 | * tm-hp9k320.h (CPP_PREDEFINES): Take out m68k and mc68000. | |
5391 | * tm-news.h (CPP_PREDEFINES): Add mc68000. | |
5392 | ||
5393 | Fri Aug 25 15:37:35 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
5394 | ||
5395 | * optabs.c (expand_fix): Can convert to unsigned int | |
5396 | by subtracting 2**(N-1), converting to signed, and adding 2**(N-1). | |
5397 | ||
5398 | * reload.c (find_reloads_address): For out-of-range stack slot, | |
5399 | reload the displacement into a reg. | |
5400 | (find_reloads_toplev): For subreg of a reg with a reg_equiv_address, | |
5401 | turn the whole thing into a memref. | |
5402 | ||
5403 | Thu Aug 24 14:07:03 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
5404 | ||
5405 | * c-decl.c (grokdeclarator): If function is declared `extern inline', | |
5406 | set current_extern_inline. | |
5407 | (start_function): In that case, set TREE_EXTERN in function decl. | |
5408 | * toplev.c (rest_of_compilation): In that case, don't really compile. | |
5409 | (compile_file): Don't output such functions at the end either. | |
5410 | ||
5411 | * c-typeck.c (build_function_call): Do set NAME if we have one. | |
5412 | ||
5413 | * Prevent any variability in results of qsort. | |
5414 | * stupid.c (stupid_reg_compare): Compare by regno as last resort. | |
5415 | * global-alloc.c (allocno_compare): Same idea. | |
5416 | * local-alloc.c (qty_compare_1): Same idea. | |
5417 | * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Same idea. | |
5418 | ||
5419 | * cccp.c (macroexpand): If read one arg, but it's whitespace, | |
5420 | consider that 0 args for checking number of args. | |
5421 | Improve plurals in error messages. | |
5422 | ||
5423 | * expr.h (inhibit_defer_pop): New name for current_args_size, | |
5424 | now declared here. | |
5425 | (NO_DEFER_POP, OK_DEFER_POP): Moved here. | |
5426 | * expr.c: Names related to current_args_size renamed. | |
5427 | (clear_current_args_size): Deleted. | |
5428 | * stmt.c (expand_function_start): Init inhibit_defer_pop here. | |
5429 | ||
5430 | * stmt.c (expand_start_stmt_expr): Do NO_DEFER_POP. | |
5431 | (expand_end_stmt_expr): Do OK_DEFER_POP, and don't do deferred pops. | |
5432 | ||
5433 | * Makefile (c-parse.tab.c): Pass -o option to Bison. | |
5434 | ||
5435 | Wed Aug 23 23:14:06 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
5436 | ||
5437 | * expmed.c (store_bit_field, extract_bit_field): | |
5438 | Use GET_MODE_WIDER_MODE to scan possible modes for bestmode. | |
5439 | ||
5440 | * Makefile (stamp-gnulib2): Discard error messages from `ar d'. | |
5441 | ||
5442 | Tue Aug 22 00:31:51 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
5443 | ||
5444 | * final.c (output_source_line): In COFF, don't output `.ln 0'. | |
5445 | ||
5446 | * Makefile (stamp-gnulib2): Depend on gnulib. For parallel make. | |
5447 | ||
5448 | * stmt.c (uninitialized_vars_warning): Don't crash if DECL_RTL is 0. | |
5449 | ||
5450 | * i386.md (truncdfsf2): Pay attention whether stack top is dead. | |
5451 | ||
5452 | Mon Aug 21 22:02:40 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
5453 | ||
5454 | * reload1.c (choose_reload_regs): Don't use regno uninitialized, | |
5455 | in the code that does find_equiv_reg. | |
5456 | ||
5457 | Sun Aug 20 00:06:47 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
5458 | ||
5459 | * m68k.md (movqi): Was outputting bad code for areg->mem and mem->areg. | |
5460 | ||
5461 | * explow.c (memory_address): Handle a hard reg in wrong reg class. | |
5462 | ||
5463 | * stmt.c (expand_function_end): Set REG_FUNCTION_VALUE_P in return | |
5464 | reg when returning address of structure value block. | |
5465 | ||
5466 | * integrate.c (save_for_inline): Preserve integrated bit on insns. | |
5467 | ||
5468 | Sat Aug 19 14:20:07 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) | |
5469 | ||
5470 | * combine.c (subst): Don't change (subreg:M (mem:N ...)) to | |
5471 | (mem:M ...) if address is mode-dependent. | |
5472 | ||
5473 | * config.gcc: Copy and alter Makefile for any srcdir except `.'. | |
5474 | In that case, make a .gdbinit as well. | |
5475 | ||
5476 | * sparc.md (andcbsi3, iorcbsi3, xorcbsi3): These are not commutative. | |
5477 | ||
5478 | * vax.md (cmpv and cmpzv patterns): Use COMPARE, not MINUS. | |
5479 | ||
5480 | Fri Aug 18 12:24:52 1989 Richard Stallman (rms at hobbes.ai.mit.edu) | |
5481 | ||
5482 | * alliant.md (movqi): Change move to mov in assembler code. | |
5483 | ||
5484 | * integrate.c (expand_inline_function): | |
5485 | Handle args passed in regs and copied to slots reached via arg ptr. | |
5486 | ||
5487 | * out-sparc.c (output_delayed_branch): | |
5488 | Do alter_subreg on operands of delay insn. | |
5489 | ||
5490 | * reload1.c (choose_reload_regs): Look for a reg to share | |
5491 | before one that we won't share. | |
5492 | ||
5493 | * expr.h: Define OPTAB_MUST_WIDEN. | |
5494 | * optabs.c (expand_binop): Handle that case. | |
5495 | * expmed.c (expand_shift): Use that when widening lshift to ashift. | |
5496 | ||
5497 | * optabs.c (emit_cmp_insn): Use CONST0_RTX, not individual vars. | |
5498 | ||
5499 | * gnulib2.c (lsh*di3, ash*di3): Return right away if count is zero. | |
5500 | Otherwise tried to shift by 32. | |
5501 | Also replace constant 32 by something symbolic. | |
5502 | ||
5503 | * final.c (output_source_line): Output line number in COFF | |
5504 | even if wrong file. | |
5505 | ||
5506 | Thu Aug 17 15:16:34 1989 Richard Stallman (rms at hobbes.ai.mit.edu) | |
5507 | ||
5508 | * Makefile (version.o): Make this a target; specify source file. | |
5509 | (obstack.o): Likewise. | |
5510 | ||
5511 | * config.gcc (i860): New alternative. | |
5512 | ||
5513 | * i860.md (movstrsi): Record the alignment as operand 3. | |
5514 | Renumber following (internal) operands. | |
5515 | * out-i860.c (output_block_move): Rewrite as in out-sparc.c. | |
5516 | (output_size_for_block_move): Likewise. And don't | |
5517 | subtract alignment from the size. | |
5518 | ||
5519 | Wed Aug 16 13:27:12 1989 Richard Stallman (rms at hobbes.ai.mit.edu) | |
5520 | ||
5521 | * loop.c (combine_movables): Don't combine zero-extend | |
5522 | registers that live outside the loop. | |
5523 | ||
5524 | * integrate.c (expand_inline_function): Use copy_to_mode_reg | |
5525 | to set up this_struct_value_rtx, to handle sums right. | |
5526 | ||
5527 | * Makefile: Use $(srcdir) in bison output files used as deps. | |
5528 | Supply some missing deps. | |
5529 | (*.info, doc): *.info files go in srcdir. | |
5530 | ||
5531 | Tue Aug 15 00:11:12 1989 Richard Stallman (rms at hobbes.ai.mit.edu) | |
5532 | ||
5533 | * i860.md, tm-i860.h, out-i860.c: New files. | |
5534 | ||
5535 | * c-decl.c (duplicate_decls): Fix bug determining whether NEWDECL | |
5536 | is a definition or just a decl. | |
5537 | Combine code to preserve various things from old definition | |
5538 | through a declaration. | |
5539 | ||
5540 | * config.gcc: Scan all args at beginning, setting variables. | |
5541 | Arg of form -srcdir=... sets srcdir explicitly. | |
5542 | srcdir now doesn't contain a slash, and is used with a slash. | |
5543 | ||
5544 | * Makefile (install): Copy header files and gcc.1 from srcdir. | |
5545 | But copy float.h from current dir. (Remove that from USER_H.) | |
5546 | (various): Use new variable INCLUDES to get the -I options. | |
5547 | Add -I. at the beginning of these. | |
5548 | (gnulib, gnulib2): Likewise, use SUBDIR_INCLUDES. | |
5549 | Also, get source file from srcdir. | |
5550 | Also, depend on $(CONFIG_H). | |
5551 | (alloca.o): Get alloca.c from srcdir. | |
5552 | ||
5553 | * reload1.c (emit_reload_insns): Bug in last change: | |
5554 | don't fail to set this_reload_insn. | |
5555 | ||
5556 | * Makefile (Bison rules): Specify $(srcdir) for target and source. | |
5557 | (Explicit C rules): Specify $(srcdir)/ for source in commands. | |
5558 | Use sed to eliminate `./' in normal case. | |
5559 | (insn-*.c): Use $(srcdir) to run move-if-change. | |
5560 | ||
5561 | * config.gcc: Check . and .. for the sources. | |
5562 | If in .., use that when making links. | |
5563 | Also, copy Makefile, alter srcdir in it, and add a VPATH. | |
5564 | ||
5565 | * stmt.c (expand_end_case): When converting CONST_INT index | |
5566 | to an INTEGER_CST, sign-extend if signed type. | |
5567 | ||
5568 | Mon Aug 14 13:51:08 1989 Richard Stallman (rms at hobbes.ai.mit.edu) | |
5569 | ||
5570 | * c-decl.c (duplicate_decls): Warn for qualifier mismatch | |
5571 | only if pedantic; don't consider it a type mismatch. | |
5572 | Merge the qualifiers of the two decls if the types match. | |
5573 | ||
5574 | * expmed.c (store_bit_field): For insv, memref displacement | |
5575 | always counts in bytes, regardless of unit fetched. | |
5576 | When checking predicate of op0, accept any mode. | |
5577 | ||
5578 | * optabs.c (expand_float): One call to can_float_p had args backwards. | |
5579 | ||
5580 | * loop.c (check_dbra_loop): Set the JUMP_LABEL of the new jump insn. | |
5581 | Increment label's use count rather than storing 2. | |
5582 | ||
5583 | * Makefile: Instead of $<, which fails in certain makes, | |
5584 | use $@ and then substitute in the name with sed. | |
5585 | ||
5586 | * out-sparc.c (output_scc_insn): Handle CC_REVERSED for ordered tests. | |
5587 | Use orcc insns to store the result and set cc's for it. | |
5588 | ||
5589 | * sparc.md (scc combination patterns): | |
5590 | Use operands[0] as basis for recorded cc value. | |
5591 | ||
5592 | * gnulib2.c (floatdidf, fixdfdi, fixunsdfdi): New functions. | |
5593 | ||
5594 | * gnulib.c (floatdidf, fixdfdi, fixunsdfdi): Deleted. | |
5595 | (union longlong, union double_di): Deleted. | |
5596 | (HIGH, LOW): Deleted. | |
5597 | These were deleted because most did not handle full range of DI | |
5598 | and they didn't use the right calling convention for DI. | |
5599 | ||
5600 | Sun Aug 13 13:06:45 1989 Richard Stallman (rms at hobbes.ai.mit.edu) | |
5601 | ||
5602 | * c-typeck.c (comptypes): Qualifiers must match. | |
5603 | (Was already true for scalars.) | |
5604 | Also, array elt qualifiers must match. | |
5605 | ||
5606 | * tm-apollo68.h (STRUCT_VALUE): Make it 0. | |
5607 | (This was done before and lost.) | |
5608 | * out-i386.c (function_epilogue): Use ret $4 to pop structure address. | |
5609 | (This was done before and lost.) | |
5610 | ||
5611 | * out-i386.c (call_top_dead_p): Don't fail to check | |
5612 | the rtx code of the insns themselves. | |
5613 | (This was done before and lost.) | |
5614 | ||
5615 | * out-sparc.c (output_block_move): If align is 8, make it 4. | |
5616 | ||
5617 | * typeclass.h: New file. | |
5618 | * expr.c: Include it. | |
5619 | (expand_builtin): Use those codes in __builtin_classify_type. | |
5620 | ||
5621 | * Makefile (all, lang-c): Reinstall gnulib2. | |
5622 | ||
5623 | * Makefile (gnulib2): Don't give up if `ar d' fails. | |
5624 | ||
5625 | * expr.c (emit_library_call): New 2nd arg NO_QUEUE. | |
5626 | All callers changed to pass it. | |
5627 | * optabs.c (expand_binop, expand_unop): Don't call emit_queue. | |
5628 | Instead, pass 1 for NO_QUEUE to emit_library_call. | |
5629 | ||
5630 | Sat Aug 12 12:05:22 1989 Richard Stallman (rms at hobbes.ai.mit.edu) | |
5631 | ||
5632 | * reload1.c (emit_reload_insns): Decision for where to put input | |
5633 | reload insn is now common to ordinary case and auto-increment. | |
5634 | Likewise, updating these positions afterward. | |
5635 | ||
5636 | * stmt.c (assign_parms): Treat last named arg as nameless. | |
5637 | * expr.c (expand_call): Likewise. | |
5638 | ||
5639 | * explow.c (copy_to_mode_reg): Use force_operand for PLUS or MULT. | |
5640 | (copy_addr_to_reg): Use copy_to_mode_reg. | |
5641 | ||
5642 | * expmed.c (store_bit_field): Handle case where insv rejects memrefs. | |
5643 | ||
5644 | * tm-convex.h (ASM_OUTPUT_ALIGN): Magic to handle the fact | |
5645 | that this is not called when LOG is 0. | |
5646 | ||
5647 | Fri Aug 11 16:39:51 1989 Richard Stallman (rms at hobbes.ai.mit.edu) | |
5648 | ||
5649 | * emit-rtl.c (get_lowpart): For multi-word, in error check, | |
5650 | test the unit size of the containing mode. | |
5651 | ||
5652 | * cccp.c (macroexpand, dump_all_macros): Return void. | |
5653 | (macroexpand): Cast sprintf arg to char*. | |
5654 | (error, warning, error_with_line): Declare first arg char*. | |
5655 | ||
5656 | Thu Aug 10 21:42:13 1989 Richard Stallman (rms at hobbes.ai.mit.edu) | |
5657 | ||
5658 | * expr.c (expand_call): | |
5659 | Use force_operand to copy arithmetic to register. | |
5660 | ||
5661 | * dbxout.c (dbxout_symbol): Go back to N_FUN for const variable. | |
5662 | ||
5663 | * integrate.c (expand_inline_function): Use proper machine mode | |
5664 | for a structure value in memory at address passed by caller. | |
5665 | ||
5666 | Wed Aug 9 15:21:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5667 | ||
5668 | * config.gcc: Delete unnecessary variable assignments in case stmt. | |
5669 | (isi68-nfp): New alternative. | |
5670 | ||
5671 | * combine.c (try_combine): Don't substitute for a register | |
5672 | which is being explicitly clobbered. | |
5673 | ||
5674 | * This change was requested for C++. | |
5675 | * varasm.c (decode_reg_name, make_decl_rtl): Arg ASMSPEC now char *. | |
5676 | * toplev.c (rest_of_decl_compilation): Likewise. | |
5677 | * c-decl.c (finish_decl): Change call to rest_of_decl_compilation. | |
5678 | ||
5679 | * tree.h (struct tree_decl): Pack machine_mode into 8 bits. | |
5680 | ||
5681 | * explow.c (memory_address, copy_to_reg): | |
5682 | Use force_operand to copy arithmetic to register. | |
5683 | ||
5684 | * tm-isi68-nfp.h: New file. | |
5685 | * tm-isi68.h: Allow overriding TARGET_DEFAULT, and let that | |
5686 | change CPP_SPEC and LINK_SPEC. | |
5687 | (ASM_FILE_START): No `.globl fltused' if soft-float. | |
5688 | ||
5689 | Tue Aug 8 21:50:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5690 | ||
5691 | * varasm.c (const_hash): For constructor, mask TREE_TYPE to HASHBITS | |
5692 | bits and take modulo, so we don't get negative numbers. | |
5693 | ||
5694 | * varasm.c (record_constant_1, compare_constant_1): | |
5695 | Record and compare the width of an integer. | |
5696 | ||
5697 | * varasm.c (assemble_function, assemble_variable, get_or_assign_label): | |
5698 | (force_const_mem): Don't call ASM_OUTPUT_ALIGN if boundary is 1. | |
5699 | ||
5700 | * c-decl.c (duplicate_decls): Consider const and volatile as part of | |
5701 | type when checking for match and when installing new type into OLDDECL. | |
5702 | ||
5703 | * expr.c (do_store_flag): Make sure target fits operand predicate. | |
5704 | Also, omit the AND insn when true-value is 1 | |
5705 | and the mode we get is wider than the one we want. | |
5706 | ||
5707 | * genrecog.c (main): Make insn-recog.c include real.h. | |
5708 | ||
5709 | Mon Aug 7 16:58:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5710 | ||
5711 | * genemit.c (main): Define `operands' as `emit_operands', | |
5712 | not `recog_operands'. | |
5713 | ||
5714 | * reload1.c (emit_reload_insns): Don't copy back a dead output reg. | |
5715 | ||
5716 | Sun Aug 6 13:56:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5717 | ||
5718 | * sdbout.c (plain_type_1, sdbout_one_type): Use the main variant. | |
5719 | (sdbout_type_fields): No need to check TREE_ASM_WRITTEN here, | |
5720 | since sdbout_one_type does that. | |
5721 | ||
5722 | * expr.c (do_store_flag): Ensure the CLOBBER doesn't clobber an input. | |
5723 | ||
5724 | * fold-const.c (fold_convert): Attempt to avoid overflow | |
5725 | when converting real to integer. Use unsigned conversion for | |
5726 | low part; always convert as positive and then change sign; | |
5727 | subtract high part before converting low part. | |
5728 | Also, check for real values out of range for chosen int type; | |
5729 | warn and do not convert. | |
5730 | ||
5731 | * tm-hp9k320.h (CPP_SPEC) [not HPUX_ASM]: Don't define mc68000 here. | |
5732 | (CPP_PREDEFINES): Remove mc68k, add m68k and mc68000. | |
5733 | [HPUX_ASM]: Define CPP_SPEC here as in the other case, | |
5734 | but add __HPUX_ASM__ to each alternative. | |
5735 | ||
5736 | * tm-m68k.h (FUNCTION_EPILOGUE): Call new hook FUNCTION_EXTRA_EPILOGUE. | |
5737 | * tm-altos3068.h (FUNCTION_EXTRA_EPILOGUE): Define it. | |
5738 | ||
5739 | * Makefile: Use $< wherever appropriate. | |
5740 | Also put definitions of customization vars before the comments | |
5741 | saying how to override them. | |
5742 | ||
5743 | Sat Aug 5 14:15:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5744 | ||
5745 | * i386.md (sne): Typo in opcode name. | |
5746 | ||
5747 | * tree.h (struct tree_identifier): Delete redundant/unused error_locus. | |
5748 | ||
5749 | Fri Aug 4 00:04:10 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5750 | ||
5751 | * varasm.c (const_hash, compare_constant_1, record_constant_1): | |
5752 | Compare types only for record constructors, not for array constructors. | |
5753 | ||
5754 | * dbxout.c (dbxout_parms): When outputing parm from home in local slot, | |
5755 | with address from the RTL, don't do big-endian correction on it. | |
5756 | ||
5757 | * c-typeck.c (build_unary_op): Do default conversion for unary +. | |
5758 | ||
5759 | * cccp.c (rescan): Accept comments between macro and its args. | |
5760 | ||
5761 | * c-decl.c (lang_decode_option): -traditional implies writable strings. | |
5762 | ||
5763 | * cccp.c (trigraph_pcp): Make warning msg more accurate. | |
5764 | ||
5765 | * c-typeck.c (c_expand_asm_operands): Delete the default promotion | |
5766 | which was inserted mysteriously since 1.35. | |
5767 | ||
5768 | * global-alloc.c (global_conflicts): Allocate regs_set only once. | |
5769 | Make it twice as big since clobbers are stored twice. | |
5770 | ||
5771 | * sparc.md (block move patterns): Record and use alignment operand. | |
5772 | * out-sparc.c (output_block_move): Get alignment from there. | |
5773 | (output_size_for_block_move): Greatly simplified. | |
5774 | ||
5775 | * tm-i386v.h (PCC_BITFIELD_TYPE_MATTERS): Define it. | |
5776 | ||
5777 | * stor-layout.c (layout_record): Anonymous bitfields don't affect | |
5778 | overall structure alignment, in PCC_BITFIELD_TYPE_MATTERS case. | |
5779 | ||
5780 | * loop.c (strength_reduce): Prevent hard reg from becoming biv or giv. | |
5781 | ||
5782 | * combine.c (subst): Simplify (eq (neg ...) (const_int 0)). | |
5783 | ||
5784 | Thu Aug 3 13:08:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5785 | ||
5786 | * cse.c (fold_rtx): For (op var const) special cases, also check | |
5787 | for constant as first argument. | |
5788 | ||
5789 | * c-decl.c (pushtag): For global_binding_level, make permanent nodes. | |
5790 | ||
5791 | * expr.c (do_store_flag): Put the CLOBBER before the comparison. | |
5792 | ||
5793 | * expr.c (emit_push_insn): Conditionalize recent changes | |
5794 | on no FIRST_PARM_CALLER_OFFSET, so they don't happen on sparc. | |
5795 | ||
5796 | * out-sparc.c (gen_scc_insn): | |
5797 | Don't be confused by CLOBBER emitted by do_store_flag. | |
5798 | Skip past such insns looking for last_insn. | |
5799 | Don't alter last_insn; instead, patch it to a NOTE and emit new insn. | |
5800 | ||
5801 | * varasm.c (const_hash, compare_constant_1, record_constant_1): | |
5802 | For a CONSTRUCTOR, hash/compare/record type as well as elts. | |
5803 | ||
5804 | * cse.c (cse_insn): July 18 change was wrong. | |
5805 | Now, invalidate at the beginning any regs explicitly clobbered | |
5806 | so they will not be substituted for if they appear as inputs. | |
5807 | * sparc.md (movstrsi): Copy addresses to temp regs, then use them. | |
5808 | ||
5809 | * loop.c (record_giv): When comparing life spans for setting | |
5810 | ->forces, use luids consistently, not uids. | |
5811 | ||
5812 | * sparc.md (ashlsi3, ashrsi3, lshrsi3): Truncate constants mod 32. | |
5813 | ||
5814 | Wed Aug 2 17:50:30 1989 Richard Stallman (rms at sugar-bombs) | |
5815 | ||
5816 | * mips.md (patterns to move a subreg): Deleted. | |
5817 | ||
5818 | Sun Jul 30 19:23:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5819 | ||
5820 | * gcc.c (process_command): Skip `-b' like `-B', in 2nd scan. | |
5821 | ||
5822 | * xm-sunos4.h: Deleted. | |
5823 | * tm-sparc.h, tm-sun3.h: Define LINK_SPEC here instead. | |
5824 | * tm-sun4os3.h: Undef it here. | |
5825 | * tm-sun3os3.h, tm-sun3os3nf.h: New files to undef LINK_SPEC. | |
5826 | * config.gcc: Use those new files where needed. | |
5827 | ||
5828 | * config.gcc: Delete sun3-fpa and sun3-os4-fpa. | |
5829 | * tm-sun3-fpa.h: Deleted. | |
5830 | ||
5831 | * cccp.c (do_include): Mention even non-ex files for -M. | |
5832 | ||
5833 | * out-mips.c (addr_compensate): Handle HImode. | |
5834 | * mips.md (Set HI from subreg of SI rule): | |
5835 | Allow operand in memory. | |
5836 | ||
5837 | * mips.md (cmpqi, cmphi): Patterns deleted. | |
5838 | (cmpsi, cmpsf, cmpdf): Change predicates to register_operand. | |
5839 | ||
5840 | * cexp.y (rule for ?:): Result is unsigned if either operand is. | |
5841 | ||
5842 | * expr.c (emit_push_insn): If PARTIAL > 0, load the partial regs | |
5843 | at the end, in case the rest of the push does a function call. | |
5844 | ||
5845 | * reload1.c (alter_frame_pointer_addresses): | |
5846 | After altering a PLUS, re-fetch CODE before scanning subexps. | |
5847 | ||
5848 | * stmt.c (assign_parms): Don't copy the arg pointer value | |
5849 | if it is also the frame pointer. If we do copy it, | |
5850 | inhibit REG_EQUIV notes for parms copied into pseudo regs | |
5851 | ||
5852 | * integrate.c (copy_for_inline, copy_rtx_and_substitute): | |
5853 | Set up filename and lineno fields of copy of ASM_OPERANDS. | |
5854 | ||
5855 | Sat Jul 29 18:58:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
5856 | ||
5857 | * integrate.c (expand_inline_function): Handle struct-value-addr | |
5858 | passed in memory just like that passed in reg: | |
5859 | in either case, translate the pseudo-reg made in | |
5860 | expand_function_start. | |
5861 | (function_cannot_inline_p): Permit inlining in that case. | |
5862 | But reject it if using pcc-style return convention. | |
5863 | ||
5864 | * stor-layout.c (layout_type): Consider STRICT_ALIGNMENT | |
5865 | for ARRAY_TYPE just as for RECORD_TYPE. | |
5866 | ||
5867 | Wed Jul 26 12:54:59 1989 Richard M. Stallman (rms at mipos3) | |
5868 | ||
5869 | * cse.c (fold_rtx): If WIDTH is zero for binary operator, | |
5870 | look at the modes of the original operands. | |
5871 | ||
5872 | * cse.c (cse_insn): Set prev_insn_explicit_cc0, for (set (cc0) INT). | |
5873 | (predecide_loop_entry): Likewise. | |
5874 | (fold_rtx): Look at it, for (if_then_else (cc0) ...). | |
5875 | ||
5876 | * expr.c (expand_builtin): Pass back return value from | |
5877 | __builtin_saveregs. | |
5878 | ||
5879 | * stmt.c (assign_parms): Allow arg pointer reg not to be fixed. | |
5880 | If it is not, copy it to a pseudo reg and use that later on. | |
5881 | ||
5882 | Tue Jul 25 15:42:04 1989 Richard M. Stallman (rms at mipos3) | |
5883 | ||
5884 | * expr.c (expand_builtin): New builtin __builtin_classify_type. | |
5885 | * tree.h, c-decl.c: Additional support. | |
5886 | ||
5887 | * flow.c (mark_used_regs): Treat arg pointer like stack pointer. | |
5888 | ||
5889 | * expr.c (emit_library_call): | |
5890 | Pass (tree)0 as TYPE arg to FUNCTION_ARG, etc. | |
5891 | ||
5892 | Mon Jul 24 11:18:10 1989 Richard M. Stallman (rms at mipos3) | |
5893 | ||
5894 | * loop.c (regs_match_p): Fix braino. | |
5895 | ||
5896 | * integrate.c (copy_for_inline, copy_rtx_and_substitute): | |
5897 | Make ASM_OPERANDS constraint vector be shared like operand vector. | |
5898 | ||
5899 | * xm-iris.h: New file. | |
5900 | ||
5901 | * Makefile (stage4): New target. | |
5902 | ||
5903 | * gnulib2.c (badd, bsub, bmul, bdiv): If want long value from | |
5904 | arithmetic, widen the operands first. | |
5905 | (__div_internal aka bdiv): Rename to __bdiv. | |
5906 | ||
5907 | * sparc.md (seq combination patterns): Fully initialize cc_status. | |
5908 | ||
5909 | * expr.c (emit_push_insn): Like July 19 change, for BLKmode. | |
5910 | ||
5911 | * stmt.c (expand_function_end): Stack-restore for alloca | |
5912 | is now done after the return_label. | |
5913 | ||
5914 | * loop.c (scan_loop): Set MAYBE_NEVER for conditional jump to loopbeg. | |
5915 | ||
5916 | * integrate.c (copy_rtx_and_substitute): Allow mapping of hard regs. | |
5917 | (expand_inline_function): Always create parm_map. | |
5918 | Handle structure value that way if nec. even if no parms. | |
5919 | Otherwise, find the pseudo used in the function to hold the | |
5920 | structure address, and map it to a new pseudo. | |
5921 | ||
5922 | * expr.c (expand_call): | |
5923 | Use mark_addressable to make FNDECL addressable. | |
5924 | * c-typeck.c (mark_addressable): No longer static. | |
5925 | ||
5926 | * cse.c (cse_insn): Modify last change: don't canon_reg | |
5927 | for hard regs inside clobbers. | |
5928 | ||
5929 | * expr.c (expand_assignment): ALIGN arg to store_field comes from | |
5930 | the structure, not from the value stored. | |
5931 | ||
5932 | Fri Jul 21 16:23:45 1989 Richard M. Stallman (rms at mipos3) | |
5933 | ||
5934 | * stmt.c (warn_if_unused_value): Don't warn for a cast | |
5935 | around a MODIFY_EXPR. | |
5936 | ||
5937 | * tm-hp9k320.h (PCC_STATIC_STRUCT_RETURN): Undefine it. | |
5938 | (CPP_PREDEFINES): Add some. | |
5939 | ||
5940 | * combine.c (simplify_and_const_int): | |
5941 | Simplify (and (ashiftrt (zero_extend FOO) N) M). | |
5942 | ||
5943 | * optabs.c (expand_binop): When widening, | |
5944 | for some operations we need not actually extend. | |
5945 | ||
5946 | Thu Jul 20 16:16:35 1989 Richard M. Stallman (rms at mipos3) | |
5947 | ||
5948 | * Makefile (insn-emit.o): Depend on insn-codes.h. | |
5949 | ||
5950 | * stmt.c (check_for_full_enumeration_handling): | |
5951 | Handle all cases for TYPE_NAME of enum type. | |
5952 | ||
5953 | Wed Jul 19 17:00:39 1989 Richard M. Stallman (rms at mipos3) | |
5954 | ||
5955 | * fold-const.c (fold_convert): Don't fail to force_fit_type. | |
5956 | ||
5957 | * expr.c (emit_push_insn): When pushing only part of scalar on stack, | |
5958 | adjust stack offset not to count the words not pushed. | |
5959 | ||
5960 | * stmt.c (expand_function_end): Always put return structure address | |
5961 | in return register. | |
5962 | ||
5963 | * c-typeck.c (process_init_constructor): Assume 0 for nameless field. | |
5964 | ||
5965 | * recog.c (general_operand, memory_operand): | |
5966 | Check validity of mem address using the mode of the MEM. | |
5967 | ||
5968 | * fixincludes: When calling egrep, use redirect, not -s. | |
5969 | ||
5970 | Tue Jul 18 11:18:55 1989 Richard M. Stallman (rms at mipos3) | |
5971 | ||
5972 | * Makefile (bootstrap*): Pass value of libdir down. | |
5973 | ||
5974 | * cse.c (cse_insn): Do canon_reg on any CLOBBERs and USEs. | |
5975 | ||
5976 | * cse.c (cse_insn): Don't use no_labels_between_p to check | |
5977 | for jump to following label; find following label and compare. | |
5978 | ||
5979 | * combine.c (try_combine): Don't substitute into subreg(x)=y | |
5980 | if modes of x and y are not tieable. | |
5981 | ||
5982 | * out-i386.c (call_top_dead_p): Don't fail to check | |
5983 | the rtx code of the insns themselves. | |
5984 | ||
5985 | * i386.md (tstsf, tstdf): Don't discard TOS if not dead. | |
5986 | ||
5987 | * stupid.c: Don't use regs with PRESERVE_DEATH_INFO_REGNO_P | |
5988 | for pseudos which live across jumps or labels. | |
5989 | (stupid_life_analysis): Update last_jump_suid, last_label_suid. | |
5990 | (stupid_mark_refs): Use those to set reg_crosses_blocks. | |
5991 | (stupid_find_reg): Check that data, passed from stupid_life_analysis. | |
5992 | ||
5993 | * toplev.c (main): Avoid using caddr_t. | |
5994 | ||
5995 | * mips.md (inverted bgeu peephole): Typo in opcode. | |
5996 | ||
5997 | Mon Jul 17 12:29:45 1989 Richard M. Stallman (rms at mipos3) | |
5998 | ||
5999 | * i386.md (mulb patterns): Turned off due to assembler bug. | |
6000 | ||
6001 | * rtl.c (read_name): Use 0, not NULL, for character. | |
6002 | ||
6003 | * alliant.md (movqi): Typos in mov opcodes. | |
6004 | ||
6005 | * tm-sparc.h, tm-spur.h (CONST_DOUBLE_OK_FOR_LETTER_P): | |
6006 | Use CONST_DOUBLE_LOW, etc. | |
6007 | ||
6008 | * stmt.c (expand_function_end): Check value of EXIT_IGNORE_STACK, | |
6009 | not just whether defined. | |
6010 | ||
6011 | * i386.md (seq, etc.): New patterns. | |
6012 | * expr.c (do_store_flags): If result is wrong mode, | |
6013 | ensure rest of bits are cleared. | |
6014 | Before storing low part of TARGET, emit a CLOBBER for it. | |
6015 | ||
6016 | * i386.md (load address): Use an immediate add if possible. | |
6017 | ||
6018 | * i386.md (ashlsi3): Don't generate leal; shift is faster. | |
6019 | ||
6020 | * Now struct_value_rtx is 0 to treat it as a parm. | |
6021 | * expr.c (expand_call): Implement that. | |
6022 | * integrate.c (expand_inline_function): Don't freak out. | |
6023 | * tm-apollo68.h (STRUCT_VALUE): Make it 0. | |
6024 | ||
6025 | * On 386, called function must pop the structure value address. | |
6026 | * tm-i386.h (STRUCT_VALUE): Don't change this. | |
6027 | Address is now pushed but not counted as a parm. | |
6028 | * out-i386.c (function_epilogue): Use ret $4 to pop that address. | |
6029 | * output.h: Declare the current_function_... variables. | |
6030 | * final.c: Include output.h. | |
6031 | ||
6032 | * varasm.c (make_decl_rtl): Insert missing `else', validating reg decl. | |
6033 | ||
6034 | Fri Jul 14 14:12:17 1989 Richard M. Stallman (rms at mipos3) | |
6035 | ||
6036 | * out-sparc.c, out-spur.c (output_move_double): | |
6037 | Fixed typo, addreg0 => addreg1. | |
6038 | ||
6039 | * c-decl.c (lang_decode_option): Handle -fshort-enums. | |
6040 | (finish_enum): In that case, give enum minimum number of bytes. | |
6041 | * toplev.c (main): Default flag_short_enums. | |
6042 | * toplev.c, flags.h (flag_short_enums, flag_signed_char): | |
6043 | Define those flags here, not in c-decl.c and c-tree.h. | |
6044 | ||
6045 | * i386.md (mulqi3, umulqi3): New patterns. | |
6046 | ||
6047 | * c-convert.c (convert_to_integer): Tighter restrictions on | |
6048 | distributing truncation through max, min, and multiplication. | |
6049 | If operands were extended from unsigned, make the operation | |
6050 | unsigned. | |
6051 | ||
6052 | * cccp.c (main): Fix bug where #include <...>, when -I- was used, | |
6053 | failed to search standard dirs and/or searched some dirs | |
6054 | intended only for #include "...". | |
6055 | ||
6056 | * tm-mips.h (FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): | |
6057 | Increment push_loc after store or load, not before. | |
6058 | ||
6059 | Thu Jul 13 11:24:30 1989 Richard M. Stallman (rms at mipos3) | |
6060 | ||
6061 | * emit-rtl.c (add_insn_after): Don't update last_insn | |
6062 | if insn is in a sequence. Instead, update end of sequence. | |
6063 | ||
6064 | * stmt.c (fixup_var_refs): Update end of stacked sequence. | |
6065 | ||
6066 | * stmt.c (expand_function_start): Set result rtl before assign_parms. | |
6067 | ||
6068 | * optabs.c (emit_unop_insn): Set PREV_INSN after preliminaries. | |
6069 | ||
6070 | * stmt.c (warn_if_unused_value): Do CONVERT_EXPR like NOP_EXPR. | |
6071 | ||
6072 | * stmt.c (expand_function_start): Make sure parm_birth_insn | |
6073 | is a NOTE. | |
6074 | ||
6075 | * Makefile (clean): Delete tmp-insn-*. | |
6076 | ||
6077 | Wed Jul 12 14:24:12 1989 Richard M. Stallman (rms at mipos3) | |
6078 | ||
6079 | * i386.md (mulqi3): Restrict operand 2 to `q' reg. | |
6080 | ||
6081 | * reload1.c (choose_reload_regs): Check HARD_REGNO_MODE_OK | |
6082 | for regs to be inherited. | |
6083 | Also check HARD_REGNO_MODE_OK at end for modes of both | |
6084 | reload_in and reload_out as well as reload_mode. | |
6085 | ||
6086 | * Makefile (maketest): Update for config subdir. | |
6087 | ||
6088 | Tue Jul 11 16:29:57 1989 Richard M. Stallman (rms at mipos3) | |
6089 | ||
6090 | * integrate.c (copy_decl_tree): Copy TREE_USED of each LET_STMT. | |
6091 | ||
6092 | * make-cc1.com: Changes by Angel Li. | |
6093 | Define variables CC, CFLAGS, LDFLAGS, LIBS. | |
6094 | Use LIBR library, not LIB. Specify a /INC in CFLAGS. | |
6095 | Use MCR to run the gen* files. Add some comments. | |
6096 | * make-cccp.com: Similar. | |
6097 | * config-gcc.com: New file. | |
6098 | ||
6099 | * stmt.c (assign_parms): Compute parm alignment from passed type. | |
6100 | ||
6101 | * c-typeck.c (actualparameterlist): Instead of truncating | |
6102 | and then promoting for PROMOTE_PROTOTYPES, go straight to int. | |
6103 | ||
6104 | * c-parse.y (setspecs): Save old current_declspecs on a stack. | |
6105 | (decl, component_decl): Restore from that stack. | |
6106 | ||
6107 | Wed Jul 5 15:01:00 1989 Richard Stallman (tiemann at yahi) | |
6108 | ||
6109 | * tm-aix386.h, xm-aix386.h: New files. | |
6110 | ||
6111 | * loop.c (check_dbra_loop): Handle either test or compare | |
6112 | for insn two before loop end; detect and reject anything else. | |
6113 | ||
6114 | * expr.c (expand_call, expand_builtin): If alloca is done, | |
6115 | set current_function_calls_alloca. | |
6116 | * stmt.c (expand_function_end): If so, generate code to save and | |
6117 | restore the stack pointer, if not EXIT_IGNORE_STACK. | |
6118 | ||
6119 | * ns32k.md (movsi): Fixes for moving from fp or sp. | |
6120 | ||
6121 | * tm-mips.h (ASM_OUTPUT_ASCII): Start new .ascii every 256 chars. | |
6122 | ||
6123 | Tue Jul 4 11:01:00 1989 Richard Stallman (tiemann at yahi) | |
6124 | ||
6125 | * reload1.c (choose_reload_targets): Don't depend on | |
6126 | reload_spill_index when cancelling invalid inheritance. | |
6127 | Also, abort if trying to preserve death info | |
6128 | on a spill reg used in operand addressing. | |
6129 | ||
6130 | * fold-const.c (fold): Don't fold "foo"[n] here. | |
6131 | * expr.c (expand_expr): Do it here. | |
6132 | Handle wide strings correctly. | |
6133 | ||
6134 | * i386.md (movsf,movdf): Disallow mem-mem moves. | |
6135 | Enable mem-to-reg moves. | |
6136 | ||
6137 | * c-decl.c (finish_{struct,enum}): Warn if inside parm decls. | |
6138 | (in_parm_level_p, declare_parm_level): Record when inside. | |
6139 | * c-parse.y (parmlist, parmlist_or_identifiers): Call | |
6140 | declare_parm_level. | |
6141 | ||
6142 | * c-decl.c (parmlist_tags_warning): Revise warning message text. | |
6143 | ||
6144 | * tm-hp9k320.h (ASM_SPEC): Pass -V switch to assembler. | |
6145 | ||
6146 | * tm-sun386.h (ASM_START_FILE): Truncate filename to 14 chars. | |
6147 | ||
6148 | * c-typeck.c (decl_constant_value): Use only literal values. | |
6149 | ||
6150 | Sat Jul 1 17:29:54 1989 Richard Stallman (tiemann at yahi) | |
6151 | ||
6152 | * integrate.c (copy_rtx_and_substitute): Don't make nested SUBREGs. | |
6153 | ||
6154 | * stmt.c (expand_function_start): Set new global | |
6155 | current_function_returns_pointer. | |
6156 | ||
6157 | * stmt.c (get_frame_size): Return the size, not the offset. | |
6158 | * integrate.c (expand_inline_function): When setting FP_DELTA, | |
6159 | compensate for this change. | |
6160 | * tm-alliant.h,tm-mips.h,tm-sparc.h,tm-tahoe.h | |
6161 | (FUNCTION_PROLOGUE,FUNCTION_EPILOGUE): Compensate. | |
6162 | ||
6163 | * out-mips.c (function_arg): Return 0 for BLKmode. | |
6164 | ||
6165 | * tm-mips.h (FUNCTION_INCOMING_ARG): Delete; no register windows. | |
6166 | * out-mips.c (function_inarg): Delete; no longer used. | |
6167 | ||
6168 | * mips.md (addsi3): Use register_operand for operands 0,1. | |
6169 | (load address): New pattern, following movsi. | |
6170 | (fix_trunc*): Use trunc insn, not cvt. | |
6171 | (cmpfs + bgt peephole): Operands were backwards in template. | |
6172 | ||
6173 | * gcc.c (main): Record in explicit_link_files which input files go | |
6174 | straight to linker. If linker is not run, complain about them. | |
6175 | (execute): Increment execution_count, to show we were called. | |
6176 | ||
6177 | * gcc.c (validate_all_switches): Check ASM_SPEC, CC1_SPEC, etc., | |
6178 | so we find all switches that could be valid. | |
6179 | ||
6180 | * varasm.c (output_constructor): Position fields according to | |
6181 | DECL_OFFSET; don't try to compute alignment here. | |
6182 | ||
6183 | * tm-sparc.h (PCC_BITFIELD_TYPE_MATTERS): Define this. | |
6184 | ||
6185 | * reload1.c (emit_reload_insns): Fix stupid error in last change. | |
6186 | ||
6187 | * c-decl.c (duplicate_decls): If redeclaring builtin, give error is | |
6188 | type mismatched; otherwise warn only if -W. | |
6189 | ||
6190 | * jump.c (jump_back_p): Verify that PREV is not null. | |
6191 | ||
6192 | Mon Jun 26 13:50:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6193 | ||
6194 | * reload1.c (choose_reload_regs): If number of reloads needing | |
6195 | spill regs exceeds n_spills, don't inherit any reloads. | |
6196 | ||
6197 | * sdbout.c (sdbout_record_type_name): Dumb error in last change. | |
6198 | ||
6199 | * reload1.c (emit_reload_insns): Extend last change: don't use | |
6200 | equiv reg if reg is in use at same stage of insn, either. | |
6201 | ||
6202 | Sun Jun 25 00:00:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6203 | ||
6204 | * reload1.c (emit_reload_insns): Don't use an equivalent register | |
6205 | to reload from, if that register was used for reloading | |
6206 | earlier in this insn. | |
6207 | ||
6208 | * sdbout.c (sdbout_record_type_name): Handle a TYPE_DECL as the | |
6209 | type name. Get rid of TYPE_TAG_NAME as separate macro. | |
6210 | ||
6211 | * optabs.c (emit_cmp_insn): Args to memcmp are addresses, not blocks. | |
6212 | ||
6213 | * reload1.c (choose_reload_regs): Typo, clearing reload_override_in. | |
6214 | ||
6215 | * tm-i386.h: Add register classes SIREG and DIREG. | |
6216 | (enum reg_class, REG_CLASS_NAMES): Define class names. | |
6217 | (REGNO_REG_CLASS, REG_CLASS_CONTENTS): Define their contents. | |
6218 | (REG_CLASS_FROM_LETTER): Define letters `S' and `D'. | |
6219 | ||
6220 | Sat Jun 24 00:17:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6221 | ||
6222 | * c-decl.c (keep_next_level): New function. | |
6223 | (struct binding): New slot `keep' says make a LET_STMT for this level. | |
6224 | (pushlevel, poplevel): Implement that. | |
6225 | * c-parse.y (stmt exprs): Call keep_next_level. | |
6226 | ||
6227 | * sdbout.c (plain_type_1): Handle REFERENCE_TYPE, METHOD_TYPE. | |
6228 | Correct for size less than 0. | |
6229 | (plain_type): Correct for size less than 0. | |
6230 | ||
6231 | * global-alloc.c (mark_reg_set): For CLOBBERs, call mark_reg_clobber. | |
6232 | ||
6233 | * reload1.c (order_regs_for_reload): Among regs explicitly used, | |
6234 | prefer those used less often. | |
6235 | ||
6236 | * reload1.c (choose_reload_regs): If we find alternate place | |
6237 | to reload from, verify it after all reloads assigned. | |
6238 | New variable reload_override_in used for this. | |
6239 | ||
6240 | * combine.c (record_dead_and_set_regs): Look inside SIGN_EXTEND and | |
6241 | STRICT_LOW_PART for place being set. | |
6242 | (subst): When using reg_last_set to find what a register contains, | |
6243 | verify the entire register was set. | |
6244 | ||
6245 | * toplev.c (rest_of_decl_compilation): Report invalid register name. | |
6246 | ||
6247 | Fri Jun 23 13:19:41 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6248 | ||
6249 | * tm-hp9k3bsd.h: New file. | |
6250 | * config.gcc: New target hp9k320-bsd. | |
6251 | ||
6252 | * gcc.c (record_temp_file): Don't add a name twice to one queue. | |
6253 | ||
6254 | * stmt.c (expand_expr_stmt): Call warn_if_unused_value. | |
6255 | (warn_if_unused_value): Code extracted from expand_expr_stmt. | |
6256 | Recurse to handle COMPOUND_EXPR. Don't warn about COND_EXPR. | |
6257 | ||
6258 | * tm-encore.h (DBX_REGISTER_NUMBER): Override tm-ns32k.h; | |
6259 | return operand unchanged. | |
6260 | ||
6261 | * reload1.c (emit_reload_insns): Don't use recog_memoized | |
6262 | on an asm. | |
6263 | ||
6264 | * jump.c (delete_insn): Update last_insn. | |
6265 | * emit-rtl.c (set_last_insn): New function. | |
6266 | ||
6267 | * reload1.c (reload): Put a note at end of insn chain. | |
6268 | ||
6269 | * gcc.c: Put cpp output of .S file into a .s file. | |
6270 | ||
6271 | Thu Jun 22 22:14:35 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6272 | ||
6273 | * optabs.c (expand_binop, expand_unop): Emit queue before library call. | |
6274 | It is done within emit_library_call, and cse screws up if there is a | |
6275 | queued insn in the middle of a cse-able sequence. | |
6276 | ||
6277 | Wed Jun 21 11:57:22 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6278 | ||
6279 | * tm-mips.h (CPP_PREDEFINES): Define -Dunix. | |
6280 | ||
6281 | * reload.c (combine_reloads): Combined reload needed for entire insn. | |
6282 | ||
6283 | * c-parse.y (yylex): Braino checking for out-of-range escape seq. | |
6284 | ||
6285 | * stor-layout.c (layout_union): Handle PCC_BITFIELD_TYPE_MATTERS. | |
6286 | (layout_struct): Don't let a bitfield cross the storage unit | |
6287 | of its type, if PCC_BITFIELD_TYPE_MATTERS. | |
6288 | ||
6289 | Tue Jun 20 00:03:48 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6290 | ||
6291 | * varasm.c (get_or_assign_label): Let CONSTANT_ALIGNMENT specify | |
6292 | alignment of the constant. | |
6293 | CONSTANT_ALIGNMENT is a new optional macro. | |
6294 | ||
6295 | * varasm.c (force_const_mem, get_or_assign_label): | |
6296 | Make buffer bigger. | |
6297 | ||
6298 | * toplev.c (print_target_switch_defaults): New fn called for -version. | |
6299 | ||
6300 | * toplev.c (compile_file): Detect error closing output file. | |
6301 | ||
6302 | * stor-layout.c (fixup_unsigned_type): Don't shift by 32. | |
6303 | ||
6304 | * stmt.c (emit_case_nodes): Pass UNSIGNEDP along to emit_cmp_insn. | |
6305 | ||
6306 | * stmt.c (expand_end_case): If index is narrow and cannot be | |
6307 | directly compared, widen it just once. | |
6308 | ||
6309 | * c-parse.y (yylex): Support multi-character constants. | |
6310 | Thorough rewrite of char constant parsing. | |
6311 | ||
6312 | * c-decl.c (pushdecl): Replace local extern function decl with | |
6313 | previous global decl if latter is inline, or builtin, or has | |
6314 | more arg type info. | |
6315 | ||
6316 | * hard-params.c (xmalloc): Define it, for alloca.c. | |
6317 | ||
6318 | * tm-hp9k320.h (STANDARD_STARTFILE_PREFIX): Override -D in Makefile. | |
6319 | ||
6320 | * expmed.c (store_fixed_bit_field): Avoid shift by 32. | |
6321 | ||
6322 | * stmt.c (expand_function_start): Emit a NOTE_INSN_FUNCTION_BEG. | |
6323 | * final.c (final_scan_insn): For SDB output, do the | |
6324 | sdbout_begin_function at that note. | |
6325 | ||
6326 | * reload1.c (choose_reload_regs): If a reload reg inherits | |
6327 | from a previous reload, verify safety after all reloads are assigned. | |
6328 | ||
6329 | * c-decl.c (build_enumerator): Remove no-op casts. | |
6330 | ||
6331 | * reload.c (find_reloads): If an earlyclobber operand matches | |
6332 | an input operand it is constrained to match, that's not a problem. | |
6333 | If an earlyclobber operand loses due to earlyclobber, its matching | |
6334 | input operand also loses. | |
6335 | ||
6336 | * reload1.c (choose_reload_regs): Don't use result of find_equiv_reg | |
6337 | if that reg is used for reloading in an earlier part of the insn. | |
6338 | ||
6339 | * cse.c (fold_rtx): If WIDTH is 0, don't try sign-extending ARG0, ARG1. | |
6340 | ||
6341 | * Makefile (hard-params*): Use $(OLDCC). | |
6342 | ||
6343 | * c-typeck.c (c_alignof): No warning for -pedantic. | |
6344 | ||
6345 | * c-parse.y (readescape): Don't have both error and warning | |
6346 | on one hex escape. | |
6347 | ||
6348 | * c-parse.y (yylex): Treat vertical tab as white space. | |
6349 | (skip_white_space): Likewise. | |
6350 | ||
6351 | * c-parse.y (datadef): If pedantic, warn for stray semicolon. | |
6352 | ||
6353 | * expr.c (expand_increment): Pass accurate unsignedp arg | |
6354 | to expand_binary_op. | |
6355 | ||
6356 | Mon Jun 19 13:36:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6357 | ||
6358 | * config.gcc (news, news-gas): Use xm-m68k.h. | |
6359 | ||
6360 | * final.c (output_asm_label, output_addr_const): Make buf bigger. | |
6361 | ||
6362 | * cexp.y (main): Handle EOF on input. | |
6363 | (lookup, warning): Provide as a dummy. | |
6364 | (is_idchar, is_idstart): Declare as unsigned char. | |
6365 | ||
6366 | * cexp.y (parse_escape): Use TARGET_NEWLINE, etc., as values. | |
6367 | Support hex escapes. Warn if octal or hex escape doesn't fit in char. | |
6368 | ||
6369 | * cexp.y (yylex): Sign-extend char constants if appropriate. | |
6370 | ||
6371 | * genemit.c: Make insn-emit.c include insn-flags.h. | |
6372 | ||
6373 | * gcc.c: Move record_temp_file past page which declares vflag. | |
6374 | ||
6375 | * integrate.c (expand_inline_function): If copying an insn with | |
6376 | a REG_EQUIV note, make a similar note. | |
6377 | ||
6378 | * Allow reload regs to be reused for parts of an insn. | |
6379 | * reload.c (find_reloads): Classify each reload for which part | |
6380 | of the insn it is needed in. | |
6381 | (find_reloads_address, etc.): Pass down the overall operand | |
6382 | that this is part of, to record it on address reloads. | |
6383 | (push_reload): Record that for each reload. | |
6384 | * reload1.c (reload): Compute maximum needs of any part of the insn. | |
6385 | (choose_reload_regs): Part of old choose_reload_targets. | |
6386 | Hairier criteria for inheriting reloads and for which ones are | |
6387 | available for the next insn to inherit. | |
6388 | (emit_reload_insns): The rest of old choose_reload_targets. | |
6389 | Emit reload insns in proper order according to where they are needed. | |
6390 | * Record `reload_reg_in_use' separately for each part of the insn. | |
6391 | (mark_reload_reg_in_use): New function. | |
6392 | (reload_reg_free_p, reload_reg_free_before_p): New functions. | |
6393 | (reload_reg_reaches_end_p): New function. | |
6394 | ||
6395 | * expr.c (expand_expr): Emit queue in X+=(Y?Z:A) optimization. | |
6396 | ||
6397 | * rtlanal.c (rtx_equal_p): Check vectors have same length. | |
6398 | ||
6399 | Sun Jun 18 12:16:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6400 | ||
6401 | * stmt.c (expand_expr_stmt): Maybe warn if top-level operator | |
6402 | makes an unused result. | |
6403 | ||
6404 | * gcc.c (delete_temp_files, delete_failure_queue): | |
6405 | If -v, report failures in unlink. | |
6406 | ||
6407 | * Makefile (includes): New target to run fixincludes. | |
6408 | (install): Swap arms of if-statement. | |
6409 | ||
6410 | Sat Jun 17 12:41:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6411 | ||
6412 | * stor-layout.c (layout_union): Arg to error_with_decl was missing. | |
6413 | ||
6414 | * ns32k.md (movsf): Use CONST_DOUBLE_LOW to extract from CONST_DOUBLE. | |
6415 | ||
6416 | * loop.c (consec_sets_giv): Change type of force, force2. | |
6417 | ||
6418 | * combine.c (dump*): Declare arg as FILE*. | |
6419 | ||
6420 | * Makefile (clean): Delete hard-params. | |
6421 | ||
6422 | * flow.c (life_analysis): Use a special obstack for the temporary | |
6423 | regsets. | |
6424 | ||
6425 | * m68k.md (clr pattern): On 68000, use moveq to clear data reg. | |
6426 | ||
6427 | * gvarargs.h: File varargs.h renamed. | |
6428 | The old name conflicted with <varargs.h>, now that -I. is used. | |
6429 | * tree.c, expr.c, emit-rtl.c: Change #include commands. | |
6430 | * Makefile (install): Install gvarargs.h under name varargs.h. | |
6431 | * gcc.c: Include gvarargs.h, not system's varargs.h. | |
6432 | ||
6433 | * Makefile: Use -I$(srcdir) before -I$(srcdir)/config. | |
6434 | * config/tm.h: Deleted; didn't work if config was a symlink. | |
6435 | ||
6436 | * cse.c (cse_insn): Record location of inner_dest | |
6437 | so it can be replaced properly if a new MEM rtx is made. | |
6438 | ||
6439 | Fri Jun 16 14:17:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6440 | ||
6441 | * make-cc1.com: Compile and link rtlanal.c. | |
6442 | ||
6443 | * c-typeck.c (build_array_ref): Call fold on the array ref. | |
6444 | * fold-const.c (fold): Simplify array ref of string constant. | |
6445 | ||
6446 | * stmt.c (expand_asm_operands): Fix error message. | |
6447 | ||
6448 | * Makefile (gnulib2): Remove old members before compiling new. | |
6449 | Fix stupid errors. | |
6450 | * gnulib2.c (__cmpdi2, __ucmpdi2): Typos in names of interface unions. | |
6451 | ||
6452 | * genconfig.c (main): Don't write MAX_CLOBBERS_PER_INSN; obsolete. | |
6453 | Add 3 to MAX_RECOG_OPERANDS. | |
6454 | ||
6455 | * cse.c (fold_cc0): Extra arg specifies machine mode. | |
6456 | Callers changed. | |
6457 | (cse_insn): Record original mode of each src for this purpose. | |
6458 | ||
6459 | Thu Jun 15 12:35:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6460 | ||
6461 | * gnulib2.c (_cmpdi2, _ucmpdi2): Moved here from gnulib.c. | |
6462 | Use long long for argument type. | |
6463 | ||
6464 | * rtlanal.c (may_trap_p): Moved here from loop.c. | |
6465 | Return 1 for division by explicit zero. | |
6466 | ||
6467 | * reload1.c (eliminate_frame_pointer, alter_frame_pointer_addresses): | |
6468 | Rerecognize insns which are changed by this. | |
6469 | ||
6470 | * i386.md (call_value): Don't return prematurely. | |
6471 | ||
6472 | * alliant.md (movqi): Handle moving Aregs to mem and vice versa. | |
6473 | (bftst -> btst): Restrict to bitpos less than 8 | |
6474 | so operand may be non-offsettable. | |
6475 | (nop): New pattern. | |
6476 | (return): Was disabled; now deleted. | |
6477 | * tm-alliant.h (PRINT_OPERAND_PUNCT_VALID_P): Define it. | |
6478 | * out-alliant.c (output_btst): Same change as in out-m68k.c | |
6479 | ||
6480 | * alliant.md, out-alliant.c: Offsetable -> offsettable. | |
6481 | ||
6482 | * c-parse.y (rule for stmt_exprs): Make the LET_STMT volatile. | |
6483 | ||
6484 | * c-decl.c (duplicate_decls): Don't save inline function data | |
6485 | from previous definition if a new *definition* is seen. | |
6486 | ||
6487 | * integrate.c (access_parm_map): Handle subregs and constants. | |
6488 | ||
6489 | * stmt.c (expand_return): Don't crash if DECL_RTL (DECL_RESULT()) is 0. | |
6490 | ||
6491 | * tm-tahoe.h (LONGJMP_RESTORE_FROM_STACK): Define it. | |
6492 | ||
6493 | * tm-mips.h (CONSTANT_P): Deleted; duplicates rtl.h. | |
6494 | ||
6495 | Fri Jun 9 01:39:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6496 | ||
6497 | * Makefile (float.h): Avoid using $(MAKE). | |
6498 | ||
6499 | * Don't cram two things into STMT_BODY of a LET_STMT. | |
6500 | * tree.h (struct bind_stmt): New field, subblocks. | |
6501 | (STMT_SUBBLOCKS): New macro to access it. | |
6502 | * print-tree.c (walk): Print new field. | |
6503 | * tree.c (build_let_stmt): Store the old BODY arg into subblocks field. | |
6504 | * c-parse.y (stmt expr rule): Put rtl expr alone into body field. | |
6505 | * dbxout.c (dbxout_block): Recurse on subblocks, not body. | |
6506 | * sdbout.c, symout.c: Likewise. | |
6507 | * integrate.c (copy_decl_tree): Likewise. | |
6508 | * stmt.c (setjmp_protect, uninitialized_vars_warning): Likewise. | |
6509 | * expr.c (expand_expr): For LET_STMT, simply use its body. | |
6510 | ||
6511 | * machmode.def: Add sixth arg to each entry. | |
6512 | * tree.h, rtl.h, rtl.c: Add arg to DEF_MACHMODE. | |
6513 | * rtl.h (GET_WIDER_MODE): New macro; table in rtl.c. | |
6514 | * expr.c (expand_expr): Use that for widening multiply. | |
6515 | ||
6516 | * stmt.c (fixup_var_refs_1): When converting MEM to QImode for | |
6517 | bit field, adjust the address if possible to make bitpos | |
6518 | less than 8. | |
6519 | * m68k.md (bftst -> btst): Restrict to bitpos less than 8 | |
6520 | so operand may be non-offsettable. | |
6521 | ||
6522 | * cccp.c (do_line): Accept and pass on 3rd arg for enter or leave file. | |
6523 | ||
6524 | * out-m68k.c (output_btst): Handle COUNT bigger than size of unit. | |
6525 | ||
6526 | * cccp.c (CHECK_DEPTH): Macro to detect instack overflow. | |
6527 | (finclude, macroexpand, expand_to_temp_buffer): Use that. | |
6528 | ||
6529 | * cccp.c (rescan): Don't check for disabled macro if traditional. | |
6530 | (macroexpand): Don't disable macro if traditional. | |
6531 | ||
6532 | * sdbout.c (sdbout_one_type): Take out last change; assembler barfs. | |
6533 | ||
6534 | * c-parse.y (maybe_attribute): Eliminate #-syntaxes. | |
6535 | Make ATTRIBUTE the name for __attribute. | |
6536 | ||
6537 | * c-parse.gperf: Add __attribute{,__} and __signed{,__}. | |
6538 | * c-parse.y: Install results of that change. | |
6539 | ||
6540 | * Fix bug in sizeof ({...}). | |
6541 | * c-decl.c (poplevel): Set TREE_USED. Return the LET_STMT. | |
6542 | * c-parse.y (stmt-expr rule): Put the RTL_EXPR in the LET_STMT, | |
6543 | clear its TREE_USED, and use it as the result. | |
6544 | * expr.c (expand_expr): Allow LET_STMT as an expr. | |
6545 | Set its TREE_USED and expand the TREE_VALUE of its body. | |
6546 | * dbxout.c (dbxout_block): Ignore LET_STMT if TREE_USED not set. | |
6547 | * sdbout.c, symout.c: Likewise. | |
6548 | ||
6549 | Thu Jun 8 00:06:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6550 | ||
6551 | * c-parse.y (yylex): Extend ERANGE-inhibitor for 0.0 | |
6552 | to 0.0e0 as well. | |
6553 | ||
6554 | * flow.c (life_analysis): Prevent allocation of regs live at setjmp | |
6555 | on certain machines. Controlled by LONGJMP_RESTORE_FROM_STACK. | |
6556 | Sets reg_live_length to -1. | |
6557 | * local-alloc.c (block_alloc): Be prepared for that. | |
6558 | * tm-vax.h (LONGJMP_RESTORE_FROM_STACK): Define it. | |
6559 | ||
6560 | * gnulib2.c (all interfaces): Declare args and values as long long, | |
6561 | and split them using unions. | |
6562 | ||
6563 | * loop.c (check_dbra_loop): Don't reverse loop if there are two | |
6564 | refs to varying addresses. Consider foo[i] = foo[i-1]. | |
6565 | (count_nonfixed_refs): Subroutine to count them. | |
6566 | ||
6567 | * cexp.y: Distinguish signed and unsigned. | |
6568 | An integer value is now represented by a struct. | |
6569 | All rules for arithmetic changed. | |
6570 | (yylex): Adapt to change in yylval data type. | |
6571 | ||
6572 | * limits.h (LONG_MIN): Make sure it's a signed long. | |
6573 | ||
6574 | * sdbout.c (sdbout_one_type): Output types of fields first, | |
6575 | if they are structs. Don't go through pointers. | |
6576 | (sdbout_field_types): Subroutine for that | |
6577 | ||
6578 | Wed Jun 7 13:00:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6579 | ||
6580 | * fixincludes: Switch to /usr/include before doing vuid_event.h. | |
6581 | Use $2 as output directory for sed. | |
6582 | ||
6583 | * tm-i386.h (FUNCTION_PROFILER): Put counter address in %edx. | |
6584 | * tm-i386v.h (LIB_SPEC): Use -L/usr/lib/libp if profiling. | |
6585 | ||
6586 | * expr.c (expand_increment): Typo testing for BImode component. | |
6587 | ||
6588 | * convex changes from csmith: | |
6589 | * tm-convex.h: use EXTRA_SECTIONS to do .bss. | |
6590 | out-convex.c: set_section, align_section are now unused. | |
6591 | * convex.md: add pattern to pick an A-reg destination for sums | |
6592 | whose source involves a dedicated A reg (frame or arg pointer) | |
6593 | * convex.md: immediate and, or, xor instructions store a 32-bit | |
6594 | result. Fix instructions that assumed it was 64. | |
6595 | ||
6596 | * mips.md (probe): New pattern to create stack space. | |
6597 | ||
6598 | * Makefile (float.h): Ignore errors from hard-params. | |
6599 | Specify ./ to run it. | |
6600 | ||
6601 | Tue Jun 6 15:45:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6602 | ||
6603 | * out-tahoe.c: Rename `offsetable' to `offsettable'. | |
6604 | ||
6605 | * tahoe.md (nop): New pattern. | |
6606 | ||
6607 | * i386.md (umul...): Constrain operand 1 as `0', not `a'. | |
6608 | `a' sometimes wanted two a-regs for operands 0 and 1. | |
6609 | ||
6610 | * cccp.c: Forward-declare some structs. | |
6611 | ||
6612 | * c-decl.c: Rearrange fcn fwd decls and struct decls. | |
6613 | ||
6614 | * expr.c: Move some fcn fwd decls after structs their args use. | |
6615 | * genpeep.c, genextract.c: Likewise. | |
6616 | ||
6617 | * loop.c: Forward-declare some structs. | |
6618 | ||
6619 | * stmt.c: Move decls of structs before those of static functions. | |
6620 | ||
6621 | * loop.c (strength_reduce): Delete extra arg to check_eliminate_biv. | |
6622 | ||
6623 | * integrate.c (expand_inline_function): Supply missing arg | |
6624 | to convert_to_mode. | |
6625 | ||
6626 | * gcc.c (handle_braces): Supply missing arg to do_spec_1. | |
6627 | ||
6628 | * explow.c (lookup_static_chain): Accept a context arg. | |
6629 | ||
6630 | * expmed.c (store_split_bit_field): Pass ALIGN arg | |
6631 | to extract_fixed_bit_field. | |
6632 | ||
6633 | * expr.c (expand_assignment): Convert TYPE_ALIGN to bytes. | |
6634 | (store_constructor, expand_expr): Likewise. | |
6635 | ||
6636 | * tm-m68k.h: NO_ADDSUB_Q conditionals turn off all addq, subq insns. | |
6637 | (Fully supported only with MOTOROLA and HPUX_ASM flags.) | |
6638 | ||
6639 | * jump.c (do_cross_jump): Don't die if LABEL is 0. | |
6640 | ||
6641 | * tm-mips.h (PRINT_OPERAND_PUNCT_VALID_P): New macro. | |
6642 | * tm-iris.h: New file. Unsplit lines accidentally split. | |
6643 | ||
6644 | Mon Jun 5 15:39:30 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6645 | ||
6646 | * integrate.c (output_inline_function): Call init_function_start, | |
6647 | not expand_function_start. | |
6648 | * emit-rtl.c (restore_reg_data): No need to init reg_rtx_no. | |
6649 | ||
6650 | * stmt.c (init_function_start): Set current_function_returns_struct. | |
6651 | ||
6652 | * rtlanal.c (reg_set_between_p): New fn analogous to reg_used_between_p | |
6653 | * loop.c (strength_reduce): Reject biv initial value which is altered | |
6654 | subsequently before actual loop start. | |
6655 | ||
6656 | * rtlanal.c: New file split out from rtl.c. | |
6657 | Has things not used in the gen files. | |
6658 | ||
6659 | * loop.c (strength_reduce): Reject biv initial value in a hard reg | |
6660 | clobbered by an intervening function call. | |
6661 | ||
6662 | * tree.c (get_identifier): New flag needed to enable id-clash warnings. | |
6663 | (start_identifier_warnings): Set that flag. | |
6664 | * c-decl.c (init_decl_processing): Call that, after making built-ins. | |
6665 | ||
6666 | Sat Jun 3 14:41:34 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6667 | ||
6668 | * final.c (final_scan_insn): No basic block profiling at jump tables. | |
6669 | ||
6670 | * stmt.c (expand_decl): Probe the stack to make pages exist. | |
6671 | * expr.c (expand_builtin): Likewise, for alloca. | |
6672 | ||
6673 | * move-if-change: Specify /bin/sh. | |
6674 | ||
6675 | * tm-ns32k.h (INDIRECTABLE_2_ADDRESS_P): Don't accept PLUS | |
6676 | with constant operands but not inside CONST. | |
6677 | ||
6678 | * integrate.c (output_inline_function, save_for_inline): | |
6679 | Save stack_slot_list, and restore it for actual output. | |
6680 | * emit-rtl.c (gen_inline_header_rtx): New arg for this. | |
6681 | ||
6682 | * emit-rtl.c (restore_reg_data): Initialize reg_rtx_no. | |
6683 | (restore_reg_data_1): Handle reg_rtx_no jumping past | |
6684 | reg_pointer_flag_length. | |
6685 | ||
6686 | * reload1.c (alter_reg): Do nothing if regno_reg_rtx has 0. | |
6687 | ||
6688 | * integrate.c (copy_rtx_and_substitute): Typos for stack parm | |
6689 | addresses in PLUS case. | |
6690 | ||
6691 | * genoutput.c (gen_insn, gen_peephole): Make output_n fns static. | |
6692 | (output_prologue): Use new macro DEFAULT_MACHINE_INFO if defined. | |
6693 | ||
6694 | * tree.h (enum machine_mode): Define MAX_MACHINE_MODE as in rtl.h. | |
6695 | ||
6696 | Fri Jun 2 15:40:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6697 | ||
6698 | * cccp.c (do_include): A file included via a system header file | |
6699 | counts as a system header file for -M. | |
6700 | ||
6701 | * gnulib2.c: Support boolean ops and shifts. | |
6702 | ||
6703 | * loop.c (emit_iv_inc): Use emit_iv_init_code. | |
6704 | ||
6705 | * rtl.h (CONST0_RTX): Don't try to cast abort. | |
6706 | ||
6707 | * tm-news.h (PRINT_OPERAND_ADDRESS): Fix typo `reg_name'. | |
6708 | Delete two garbage lines. | |
6709 | ||
6710 | * loop.c (eliminate_biv): Use emit_iv_init_code to compute comparison | |
6711 | value. If value is constant, recognize the insn, and if that fails, | |
6712 | put the value in a register. | |
6713 | ||
6714 | Thu Jun 1 16:56:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6715 | ||
6716 | * print-tree.c (dump): Don't die if rtx components are null. | |
6717 | ||
6718 | * expmed.c (expand_mult_add): New fn to do A * X + B. | |
6719 | (make_tree): New subroutine. | |
6720 | * loop.c (emit_iv_init_code): Use that. Much simpler now. | |
6721 | ||
6722 | Tue May 30 17:20:40 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6723 | ||
6724 | * fold-const.c (fold): Use TREE_SET_CODE to store in tree codes. | |
6725 | ||
6726 | * tree.h (struct tree_common): Make `code' an unsigned int. | |
6727 | (TREE_CODE, TREE_SET_CODE): Put in casts. | |
6728 | ||
6729 | * optabs.c (emit_cmp_insn): Supply all the args in recursive calls. | |
6730 | ||
6731 | * toplev.c (report_error_function): Fix typo; METHOD_TYPE missing. | |
6732 | ||
6733 | * fixincludes: Add code to make internal non-directory links. | |
6734 | ||
6735 | Mon May 29 21:36:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6736 | ||
6737 | * gcc.c (find_exec_file): Try both with and without machine_suffix. | |
6738 | (find_file): Use machine_suffix here too. | |
6739 | ||
6740 | Sat May 27 00:02:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6741 | ||
6742 | * reload.c (decompose): OFFSET wasn't initialized. | |
6743 | ||
6744 | * cse.c (cse_main): Assign monotonic cuids. | |
6745 | (make_regs_eqv, CHEAPER): Use cuids, not uids. | |
6746 | (cse_end_of_basic_block): Return a cuid, not a uid. | |
6747 | ||
6748 | * expr.c (expand_builtin): For BUILTIN_SAVEREGS, range of regs | |
6749 | moved included one extra previous insn. | |
6750 | ||
6751 | * emit-rtl.c (emit_line_note): Don't check -g here. | |
6752 | (emit_note): For line number when no -g, increment cur_insn_uid anyway. | |
6753 | * stmt.c (expand_start_case): Always output a NOTE_INSN_DELETED. | |
6754 | ||
6755 | * loop.c (loop_optimize): Don't count line-number NOTEs for luids. | |
6756 | Prevents -g from affecting optimization decisions. | |
6757 | ||
6758 | Fri May 26 17:31:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6759 | ||
6760 | * local-alloc.c (block_alloc): Don't count notes in insn_number. | |
6761 | Prevents -g from affecting order of allocation. | |
6762 | ||
6763 | Thu May 25 14:12:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6764 | ||
6765 | * local-alloc.c (block_alloc): Clear full length of regs_live_at. | |
6766 | ||
6767 | * ns32k.md (cmpsi): Make this the first cmp pattern. | |
6768 | ||
6769 | * jump.c (do_cross_jump): Skip NOTEs while checking for existing label. | |
6770 | ||
6771 | * cse.c (cse_insn): When no-oping a jump, decrement use count of label. | |
6772 | (cse_basic_block): If label use count is 0, go past it. | |
6773 | ||
6774 | * integrate.c (access_parm_map): New fn, broken out of | |
6775 | copy_rtx_and_substitute, handles case of mem ref to stack arg. | |
6776 | (copy_rtx_and_substitute): Call it. | |
6777 | Also use it for address of a stack arg. | |
6778 | ||
6779 | * gen*.c (fatal): Declare 1st arg as string. | |
6780 | ||
6781 | Wed May 24 00:13:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6782 | ||
6783 | * optabs.c (init_optabs): Handle movdi and movdf insns. | |
6784 | ||
6785 | * final.c (end_final): Realign locn ctr after outputting string. | |
6786 | ||
6787 | * tm-sparc.h (LINK_SPEC): Link bb_link.o before standard lib. | |
6788 | ||
6789 | * tm-sun386i.h (LINK_SPEC): Accept and ignore -sun386. | |
6790 | ||
6791 | * gcc.c (find_exec_file): Use machine_suffix. | |
6792 | (process_command): Set that for -b option. | |
6793 | ||
6794 | * integrate.c (function_cannot_inline_p): No size limit | |
6795 | for functions declared inline. | |
6796 | ||
6797 | * loop.c (skip_consec_insns): New fn, skip several insns or libcalls. | |
6798 | (force_movables): New fn, part of scan_loop broken out. | |
6799 | (ignore_some_movables): New fn, ignore a movable whose insn | |
6800 | is within another movable's libcall. | |
6801 | (scan_loop): Call those three. | |
6802 | Don't handle m->consec for zero-extend movables, since always 0. | |
6803 | ||
6804 | Tue May 23 12:58:24 1989 Joe Weening (weening at gang-of-four.stanford.edu) | |
6805 | ||
6806 | * config/alliant.md: | |
6807 | Removed operand classes 'x', 'y', 'G', 'H'. | |
6808 | Added "%." to many opcodes to simplify comparison with m68k.md. | |
6809 | Changed TARGET_68881 to TARGET_CE. | |
6810 | Changed floating-point insns to better describe the Alliant CE. | |
6811 | Most args to floating-point insns are now nonimmediate_operand. | |
6812 | Removed special insns for pushing doublewords onto stack. | |
6813 | Added non-CE versions of movsf and movdf to avoid using FP | |
6814 | registers in this case. | |
6815 | (float*i*f2): Don't allow immediate ops. | |
6816 | (sne): Fix typo, fsne => fsneq. | |
6817 | (call, call_value): Changed to always pop args from stack | |
6818 | upon return; this gives better code than before and conforms | |
6819 | to Alliant calling standard. | |
6820 | Incorporated some recent changes to m68k.md. | |
6821 | ||
6822 | * config/out-alliant.c: | |
6823 | (regno_reg_class): Removed FPA reg classes. | |
6824 | (output_move_const_double): Function not needed, removed. | |
6825 | ||
6826 | * config/tm-alliant.h: | |
6827 | Removed FPA registers and reg classes. | |
6828 | Target flags: changed TARGET_68881 to TARGET_CE, removed | |
6829 | TARGET_RTD, TARGET_REGPARM, TARGET_FPA. | |
6830 | Removed TARGET_CE test in several places since we need to | |
6831 | use FP regs even for non-CE programs. | |
6832 | (TARGET_VERSION, CPP_SPEC): Define for Alliant. | |
6833 | (CONDITIONAL_REGISTER_USAGE): Removed, not needed. | |
6834 | (FRAME_POINTER_REQUIRED): Defined. | |
6835 | (RETURN_POPS_ARGS): Defined. | |
6836 | (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): | |
6837 | Use fp0 to return floating-point values. | |
6838 | (FUNCTION_ARG): Remove TARGET_REGPARM code. | |
6839 | (FUNCTION_ARG_PARTIAL_NREGS): Always 0. | |
6840 | (FUNCTION_PROFILER): Define for Alliant. | |
6841 | (FUNCTION_EPILOGUE): Remove use of rtd instruction. | |
6842 | Renamed CC_IN_68881 to CC_IN_FP. | |
6843 | (NOTICE_UPDATE_CC): Incorporate changes that were made | |
6844 | in tm-m68k.h. | |
6845 | ||
6846 | * config/xm-alliant.h (LINK_SPEC): Pass -X to linker. | |
6847 | ||
6848 | Tue May 23 12:58:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6849 | ||
6850 | * sdbout.c: Don't include c-tree.h. | |
6851 | ||
6852 | * tree.c (build_index_type): Use sizetype for min and max values. | |
6853 | Convert maxval rather than clobbering it. | |
6854 | ||
6855 | * tm-hp9k320.h: Finish unterminated comment. | |
6856 | ||
6857 | * sdbout.c (sdbout_parms): Use gen_fake_label for anonymous parm. | |
6858 | ||
6859 | Sun May 21 12:58:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6860 | ||
6861 | * stmt.c (aggregate_value_p): New fn says whether expression is a type | |
6862 | that functions cannot return as a scalar. | |
6863 | (assign_parms, expand_function_start): Use that. | |
6864 | * expr.c (expand_call): Likewise. | |
6865 | ||
6866 | * gcc.c (delete_failure_queue): New subroutine. | |
6867 | (delete_temp_files): No longer delete the failure queue. | |
6868 | (main): Delete failure queue after each failing compilation. | |
6869 | ||
6870 | Sat May 20 13:16:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6871 | ||
6872 | * varasm.c (force_const_mem): New optional macro SELECT_RTX_SECTION. | |
6873 | ||
6874 | * mips.md: Change %u0 to %:. | |
6875 | (movsi): Add constraint alternative accepting address arg. | |
6876 | ||
6877 | * fold-const.c (mul_double): Special case for 2nd arg 2, 4, 8. | |
6878 | (combine): Special case shortcuts for plus, minus, mult, div. | |
6879 | ||
6880 | * stmt.c (expand_function_start): Simplify hairy statement for 3B1. | |
6881 | * expr.c (expand_call): Likewise. | |
6882 | ||
6883 | * math-68881.h: New file. | |
6884 | ||
6885 | * m68k.md (movqi): Handle moving aregs to mem and vice versa. | |
6886 | ||
6887 | * dbxout.c (dbxout_type): Don't test use_gdb_dbx_extensions | |
6888 | in cases that occur in C. | |
6889 | ||
6890 | * stmt.c (expand_function_{start,end}): Make DECL_RESULT's rtl 0 | |
6891 | when function returns no value. | |
6892 | ||
6893 | * tree.c (build_decl): Initialize DECL_PRINT_NAME, DECL_ASSEMBLER_NAME. | |
6894 | ||
6895 | * c-decl.c (store_parm_decls): Call init_function_start. | |
6896 | ||
6897 | Thu May 18 00:41:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6898 | ||
6899 | * stmt.c (expand_null_return_1): New arg USE_GOTO says jump to | |
6900 | return_label even if could otherwise use a return insn. | |
6901 | Make a return_label if we need one and don't have one already. | |
6902 | If have parm cleanups, always jump to cleanup_label. | |
6903 | (expand_null_return): Pass 1 for USE_GOTO if cleanups pending. | |
6904 | (expand_return): Set LAST_INSN if have local cleanups or parm cleanups. | |
6905 | Use that if jumping to tail-recursion label. | |
6906 | Optimization for returning a comparison is safe for local cleanups | |
6907 | but don't do it if there are parm cleanups. | |
6908 | Calling expand_null_return_1, pass 1 for USE_GOTO if local cleanups. | |
6909 | (this_contour_has_cleanups_p): New function. | |
6910 | ||
6911 | * stmt.c (init_function_start): New function, beginning of | |
6912 | expand_function_start broken out. | |
6913 | Use DECL_PRINT_NAME to get function's name. | |
6914 | (expand_function_start): Now two args, function and PARMS_HAVE_CLEANUPS | |
6915 | Compute RETURN_LABEL sooner; make one if parm cleanups. | |
6916 | If parms have cleanups, put scalar return value in pseudo-reg. | |
6917 | Don't mark that pseudo with REG_FUNCTION_VALUE_P. | |
6918 | (expand_function_end): Simplify decisions about output of return_label | |
6919 | and return insn. | |
6920 | If DECL_RESULT is pseudo-reg, copy it to real return reg. | |
6921 | ||
6922 | * stmt.c (expand_function_end): Handle ordinary struct values | |
6923 | like pcc, but only if unoptimized. | |
6924 | (expand_function_start): Make a return_label for ordinary struct value. | |
6925 | ||
6926 | * stor-layout.c (layout_type): Handle METHOD_TYPE like FUNCTION_TYPE. | |
6927 | (layout_decl): Allow TYPE_DECL. | |
6928 | ||
6929 | * stor-layout.c (layout_basetypes): Code for basetypes broken | |
6930 | out of layout_record. Sets the type size tentatively. | |
6931 | (layout_record): Start with that tentative size. | |
6932 | Also, don't do anything with CONST_DECL members. | |
6933 | ||
6934 | * stor-layout.c (layout_union): Simpler error report for static memb. | |
6935 | ||
6936 | * reload1.c (eliminate_frame_pointer): Reduce PUSH_ROUNDING | |
6937 | conditional to apply only to push instructions. | |
6938 | ||
6939 | * expr.c (expand_call): Fix stupid errors handling MAX_PARM_BOUNDARY. | |
6940 | * stmt.c (assign_parms): Likewise. | |
6941 | ||
6942 | * toplev.c (announce_function, report_error_function): | |
6943 | (error_with_decl, warning_with_decl): Use DECL_PRINT_NAME. | |
6944 | ||
6945 | * toplev.c (compile_file): Subtract integration_time from parse_time. | |
6946 | ||
6947 | * toplev.c (compile_file): Don't output read-only static variables | |
6948 | at end of compilation if address was not used. | |
6949 | ||
6950 | * toplev.c (rest_of_compilation): Handle flag_syntax_only. | |
6951 | ||
6952 | * toplev.c (main): Handle -g0 and -G0 options. | |
6953 | For -g and -G, set use_gdb_dbx_extensions. | |
6954 | ||
6955 | * toplev.c (main): Set `progname'. | |
6956 | (pfatal_with_name, fatal_io_error, {error,warning}_with_file_and_line): | |
6957 | (sorry): Print value of `progname', not "cc1". | |
6958 | ||
6959 | * tree.def: Delete FRIEND_DECL. Add PUSH_EXPR and POP_EXPR. | |
6960 | ||
6961 | * tree.c (simple_cst_equal): Handle INDIRECT_REF. | |
6962 | ||
6963 | * tree.c (lvalue_p): Handle METHOD_TYPE. Handle NEW_EXPR. | |
6964 | ||
6965 | * tree.c (copy_list): New function. | |
6966 | ||
6967 | * tree.h (struct tree_decl): New fields print_name and assembler_name. | |
6968 | (DECL_PRINT_NAME, DECL_ASSEMBLER_NAME): New accessors. | |
6969 | ||
6970 | * c-decl.c (LONG_DOUBLE_TYPE_SIZE): New compilation parameter. | |
6971 | ||
6972 | Wed May 17 22:07:17 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) | |
6973 | ||
6974 | * dbranch.c (emit_delay_sequence): Reset insn code to -1 when | |
6975 | turning insn into a sequence so that it won't think that it matches | |
6976 | something in the md file. | |
6977 | ||
6978 | * dbranch.c (insn_eligible_p): Call refers_to_regno_p with a | |
6979 | non-zero range. | |
6980 | ||
6981 | * dbranch.c (pnote): Modified to make sure instruction clobbered | |
6982 | register is a set, rather than, say, a clobber. | |
6983 | ||
6984 | Wed May 17 14:01:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6985 | ||
6986 | * sdbout.c (sdbout_parms): Handle parm with no name. | |
6987 | ||
6988 | * loop.c (combine_movables): Test for overlap of zero-extend regs | |
6989 | was screwed up. | |
6990 | ||
6991 | * c-typeck.c (c_sizeof{,_nowarn}): Convert from bytes to chars, | |
6992 | since c defines sizeof (char) as 1. | |
6993 | (pointer_int_sum, pointer_diff): Use c_sizeof{,_nowarn}. | |
6994 | ||
6995 | Tue May 16 16:27:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
6996 | ||
6997 | * reload1.c (choose_reload_targets): Don't reuse regs | |
6998 | mentioned in reload_reg_rtx. | |
6999 | ||
7000 | * tm-tahoe.h, tahoe.md, out-tahoe.c, xm-tahoe.h: New files. | |
7001 | ||
7002 | Mon May 15 16:25:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7003 | ||
7004 | * fixincludes: Exit with explicit status 0 at end. | |
7005 | cd to /usr/include before cd to subtree root in case of relative link. | |
7006 | Create dir $LIB earlier. | |
7007 | When checking for a link, treat .. like an absolute target. | |
7008 | ||
7009 | * symout.c (symout_block_symbols): Give every local decl a typespec. | |
7010 | * cexp.y (parse_number): | |
7011 | * flow.c (life_analysis, dump_flow_info): | |
7012 | ||
7013 | * loop.c (consec_sets_invariant_p): Logic error accepted consec sets | |
7014 | of which only one was invariant. | |
7015 | ||
7016 | * expr.c (expand_expr): Use no subtargets inside loops. | |
7017 | * stmt.c (inside_loop): New function. | |
7018 | ||
7019 | Sun May 14 00:11:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7020 | ||
7021 | * tree.h: Declare long long types. | |
7022 | ||
7023 | * c-parse.y (combine_strings): Make string contents saveable. | |
7024 | ||
7025 | * tree.c (savealloc): New function. | |
7026 | ||
7027 | * m68k.md (movdi): % missing in fmove%.d. | |
7028 | ||
7029 | * c-parse.y (yylex): Detect overflow past 64-bits. | |
7030 | Detect specially numbers not fitting in signed long long. | |
7031 | ||
7032 | Sat May 13 13:16:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7033 | ||
7034 | * reload1.c (alter_frame_pointer_addresses): Preserve volatility. | |
7035 | ||
7036 | * varasm.c (output_constructor): Die if BITS_PER_UNIT is too big | |
7037 | for this function to work. | |
7038 | ||
7039 | * genpeep.c (match_rtx): For match_operator, match the operands, too. | |
7040 | ||
7041 | * varasm.c (output_constant): Use ASM_OUTPUT_DOUBLE_INT for DImode. | |
7042 | ||
7043 | * stor-layout.c (make_signed_type, make_unsigned_type): | |
7044 | (fixup_unsigned_type): Use HOST_BITS_PER_INT. | |
7045 | ||
7046 | * stor-layout.c (layout_type): Use TFmode if appro. | |
7047 | ||
7048 | * optabs.c (emit_cmp_insn): Use mode sizes to check cmpstrqi, cmpstrhi. | |
7049 | ||
7050 | * c-typeck.c (get_floating_type): Compare MODE against modes of types. | |
7051 | (signed_type, unsigned_type, signed_or_unsigned_type, type_for_size): | |
7052 | Handle long long types. | |
7053 | (digest_init): Don't assume width of `char' is BITS_PER_UNIT. | |
7054 | ||
7055 | * c-parse.y (yylex): For truncating chars, use width of `char' type. | |
7056 | Allow `ll' in int constants and make long long. | |
7057 | Also make long long if constant won't fit in an int. | |
7058 | ||
7059 | * c-decl.c (SHORT_TYPE_SIZE): Round up when dividing. | |
7060 | ||
7061 | Fri May 12 22:36:21 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7062 | ||
7063 | * real.h: Allow multiple inclusion. | |
7064 | ||
7065 | * tm-sun386i.h (DBX_REGISTER_NUMBER): Bizarre renumbering. | |
7066 | ||
7067 | Thu May 11 00:36:21 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7068 | ||
7069 | * fixincludes: Fix non-ansi declaration of sprintf in X11/Xmu.h | |
7070 | ||
7071 | * c-parse.y (stmt from expr): Do default conversion if useful | |
7072 | for sake of ({...}). | |
7073 | ||
7074 | * sparc.md (andcc recognizer): Operand missing in subreg. | |
7075 | ||
7076 | Wed May 10 17:20:38 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7077 | ||
7078 | * rtl.c (read_name): Error if name is missing. | |
7079 | (dump_and_abort): Don't print char args if -1. | |
7080 | ||
7081 | * i386.md (umulqihi3): Operand numbers were missing. | |
7082 | ||
7083 | * reload1.c (choose_reload_targets): Allow spill reg in find_equiv_reg | |
7084 | if it's free and correct class. | |
7085 | ||
7086 | * cse.c (canon_hash): Handle empty strings. | |
7087 | ||
7088 | * cccp.c (macroexpand): Newline newline treated like real white space | |
7089 | when stringifying. | |
7090 | ||
7091 | * Rename *offsetable* to *offsettable*. | |
7092 | ||
7093 | Tue May 9 22:54:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7094 | ||
7095 | * c-decl.c (finish_type): Layout any variants of the type. | |
7096 | ||
7097 | Tue May 9 12:30:28 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) | |
7098 | ||
7099 | * final.c (final_scan_insn, final): Added an argument to | |
7100 | final_scan_insn to disallow peephole processing (to turn it off | |
7101 | during delayed branch scheduling). | |
7102 | ||
7103 | * final.c (final_scan_insn): Made insn not matching any MD rtl a | |
7104 | criteria for delayed branch case. Moved delayed branch case to just | |
7105 | before real insn recognition to reduce the number of insns on which | |
7106 | recog_memoized is called. | |
7107 | ||
7108 | Mon May 8 15:02:42 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7109 | ||
7110 | * fixincludes (LIB): Allow overriding. | |
7111 | ||
7112 | * cccp.c: Don't search /usr/include/CC by default. | |
7113 | ||
7114 | Mon May 8 13:09:21 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) | |
7115 | ||
7116 | * print-tree.c (dump): Fixed typo; IDENTIFIER ==> IDENTIFIER_NODE. | |
7117 | ||
7118 | Sun May 7 12:44:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7119 | ||
7120 | * print-tree.c (dump): TYPE_NAME may be IDENTIFIER or TYPE_DECL. | |
7121 | ||
7122 | Sat May 6 00:13:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7123 | ||
7124 | * tree.def: Define EXACT_DIV_EXPR, for when remainder known as 0. | |
7125 | * fold-const.c (combine, fold, div_and_round_double): Handle new code. | |
7126 | * expr.c (expand_expr): Likewise. | |
7127 | * c-typeck.c (pointer_diff): Use EXACT_DIV_EXPR. | |
7128 | ||
7129 | * integrate.c (expand_inline_function): Use size of passed type | |
7130 | for allocating stack slot with that type. | |
7131 | ||
7132 | * c-parse.y (maybe_attribute, attribute*): New syntax for Apollos. | |
7133 | These tokens currently not generated. | |
7134 | ||
7135 | Fri May 5 18:43:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7136 | ||
7137 | * toplev.c [USG]: Undefine FLOAT for sake of sys/param.h on hpux. | |
7138 | ||
7139 | * optabs.c (expand_binop): If backtracking, don't delete insns made | |
7140 | for -fforce-mem. | |
7141 | ||
7142 | Thu May 4 01:57:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7143 | ||
7144 | * reload.c (find_reloads): Don't compare an earlyclobber operand | |
7145 | with itself. | |
7146 | ||
7147 | * reload.c (immune_p): Constants and stack slots don't overlap. | |
7148 | ||
7149 | * Put no-ops in front of loops and labels, | |
7150 | to prevent confusion in the debugger. | |
7151 | * c-parse.y (loops and labels): Call emit_nop. | |
7152 | * stmt.c (emit_nop): New function--sometimes emit a no-op. | |
7153 | * *.md (nop): New insn. | |
7154 | ||
7155 | * expr.c (expand_call): Typo in arg to FIRST_PARM_CALLER_OFFSET. | |
7156 | ||
7157 | Wed May 3 01:34:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7158 | ||
7159 | * loop.c (scan_loop): Scanning around end of loop | |
7160 | should not set maybe_never. | |
7161 | ||
7162 | * Rename SELECT_VARIABLE_SECTION to SELECT_SECTION. | |
7163 | * varasm.c (get_or_assign_label): Use SELECT_SECTION if defined. | |
7164 | * varasm.c: Use EXTRA_SECTION_FUNCTIONS if defined (new macro). | |
7165 | ||
7166 | * mips.md: Change %u to %u0 to avoid error check. | |
7167 | ||
7168 | * tm-mips.h (TARGET_VERSNUM): Inc. to 1 08. | |
7169 | (TARGET_VERSION): Change strings. | |
7170 | (AL_DEBUG): Don't define it. | |
7171 | (HARD_REGNO_MODE_OK): Add some casts to int. | |
7172 | (STACK_ARGS_ADJUST): Name was misspelled. | |
7173 | (PRINT_OPERAND_ADDRESS): Just abort for MEM, POST_INC, etc. | |
7174 | (EXTRA_SECTIONS, SELECT_VARIABLE_SECTION, SELECTORS_EXTRA_SECTIONS, | |
7175 | SELECT_VARIABLE_CONST_SECTION): New macros. | |
7176 | (ASM_FILE_END): Change function name. | |
7177 | * out-mips.c (function_arg_advance): Delete debugging printfs. | |
7178 | (function_inarg, function_arg): Likewise. | |
7179 | (compare_collect, compare_restore): Add some. | |
7180 | ||
7181 | * reload1.c (reload): Fix handling of caller_save_needed. | |
7182 | ||
7183 | * stmt.c (expand_function_start): Clear caller_save_needed. | |
7184 | ||
7185 | * stmt.c (emit_case_nodes): Some compiler has trouble with calling | |
7186 | a function pointer. | |
7187 | * gnulib.c: likewise. | |
7188 | ||
7189 | Tue May 2 15:32:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7190 | ||
7191 | * loop.c (combine_movables): For zero extend, | |
7192 | do each from-mode separately. | |
7193 | ||
7194 | Mon May 1 00:18:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7195 | ||
7196 | * tm-apollo68.h: New file. | |
7197 | ||
7198 | * c-parse.y (is_reserved_word, hash): Add keywords `__asm__', etc. | |
7199 | * c-parse.gperf: Corresponding changes. | |
7200 | ||
7201 | * c-parse.y (check_newline): Set main_input_filename before | |
7202 | considering optional arguments. | |
7203 | ||
7204 | * final.c (final_scan_function): Return next insn to process. | |
7205 | Usually that's the following insn; occasionally, previous compare. | |
7206 | ||
7207 | * c-decl.c (DOUBLE_TYPE_SIZE): Wrong value. | |
7208 | ||
7209 | * reload.c (decompose): Failed to return value. | |
7210 | ||
7211 | * Support local specified-register variables. | |
7212 | * varasm.c (decode_reg_name): New function, cvt asmspec to regnum. | |
7213 | (make_decl_rtl): Call that. | |
7214 | * toplev.c (rest_of_decl_compilation): Handle local specified-register | |
7215 | declarations. | |
7216 | ||
7217 | * i386.md (tstqi, trunc*qi): Constrain to `q' regs. | |
7218 | ||
7219 | * loop.c (scan_loop, move_movables): ->global for zero-extend register | |
7220 | now means register is used outside range from where it is set | |
7221 | to the following label. Non-global zero-extend regs | |
7222 | may be entirely cleared. | |
7223 | ||
7224 | * loop.c (combine_movables): Loop that combines matching movables | |
7225 | broken out from scan_loop. | |
7226 | Now also combine non-global zero-extend registers with each other | |
7227 | if their lifespans don't overlap. | |
7228 | ||
7229 | * c-typeck.c (build_unary_op, ADDR_EXPR of a COMPONENT_REF): | |
7230 | Always convert to desired result type. | |
7231 | ||
7232 | Sun Apr 30 12:58:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7233 | ||
7234 | * c-decl.c (init_decl_processing): New macros parameterize int types. | |
7235 | CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, | |
7236 | FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE. | |
7237 | ||
7238 | * fixincludes: Use sed instead of ex. No problem with split lines. | |
7239 | ||
7240 | * print-tree.c (dump): Print type's name, if any. | |
7241 | ||
7242 | * c-parse.y: Use __inline, not plain inline. | |
7243 | ||
7244 | * toplev.c: New option -fdelayed-branch. | |
7245 | (compile_file): Open and close dbranch dump file. | |
7246 | Collect and print dbranch time. | |
7247 | (rest_of_compilation): Optionally do dbranch scheduling, | |
7248 | only if HAVE_DELAYED_BRANCH. | |
7249 | (main): Handle -dd. | |
7250 | ||
7251 | * rtl.c (copy_rtx): Handle null pointers as code `e'. | |
7252 | ||
7253 | * final.c (dbr_sequence_length): New function. | |
7254 | (final_scan_insn): Most of `final' broken out. | |
7255 | Add support for SEQUENCE insns. | |
7256 | last_ignored_compare and new_block now top-level static. | |
7257 | ||
7258 | * c-parse.y (MAX_WORD_LENGTH): Long enough for __volatile. | |
7259 | ||
7260 | Sat Apr 29 13:03:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7261 | ||
7262 | * c-parse.y (asm statements): Output line numbers. | |
7263 | ||
7264 | * loop.c (emit_iv_init_code, emit_iv_inc, eliminate_biv): Copy | |
7265 | additive term rtx's to prevent sharing between insns. | |
7266 | ||
7267 | * c-parse.y (check_newline): Increment input_file_stack_tick. | |
7268 | * toplev.c (report_error_function): Describe input stack only if | |
7269 | changed. | |
7270 | ||
7271 | * c-decl.c (finish_struct): Reject zero width for named field. | |
7272 | ||
7273 | * tm-sun3.h (CC1_SPEC): Prevent error on `-sun3'. | |
7274 | * tm-sparc.h (CC1_SPEC): Prevent error on `-sun4'. | |
7275 | ||
7276 | * Makefile (cleanconfig): cleanlinks renamed; also delete gnulib. | |
7277 | (gnulib): Delete stamp-gnulib2 since gnulib2 should be redone after. | |
7278 | ||
7279 | Fri Apr 28 00:38:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7280 | ||
7281 | * config.gcc (genix): Correct xm file name. | |
7282 | ||
7283 | * tm-genix.h: Undefine ASM_SPEC inherited from tm-encore.h. | |
7284 | ||
7285 | * Makefile: Make float.h using hard-params. | |
7286 | (clean): Delete float.h. | |
7287 | ||
7288 | * hard-params.c: New program. | |
7289 | ||
7290 | * varasm.c (assemble_variable): Use SELECT_VARIABLE_SECTION if defined. | |
7291 | (in_section): Use EXTRA_SECTIONS if defined. | |
7292 | ||
7293 | * toplev.c (compile_file): Call ASM_FILE_END if defined. | |
7294 | ||
7295 | * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Let config override. | |
7296 | ||
7297 | * loop.c (emit_iv_init_code): Force A to a reg if it isn't. | |
7298 | ||
7299 | Thu Apr 27 12:51:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7300 | ||
7301 | * tm-mips.h (ASM_START_FILES): Don't call print_options. | |
7302 | Don't call the funny abort-functions. | |
7303 | * out-mips.c: Delete funny debugging functions and aborts. | |
7304 | (print_options): #if 0. | |
7305 | (compare_restore): Test for COMPARE, not MINUS. | |
7306 | (mips_section_get, mips_output_external, mips_asm_final): New fns. | |
7307 | ||
7308 | * input.h: New file with *input_filename, lineno and input_file_stack. | |
7309 | Included in toplev.c and c-parse.y. | |
7310 | * c-decl.c (finish_function): LINENO is now arg. | |
7311 | * c-parse.y: Calls changed. | |
7312 | ||
7313 | * c-parse.y (check_newline): Handle `1' or `2' from cpp | |
7314 | by pushing or popping input_file_stack. | |
7315 | * toplev.c (compile_file): Push main input file on input_file_stack. | |
7316 | (report_error_function): If in include file, print the chain | |
7317 | of include-locations. | |
7318 | ||
7319 | * cccp.c (output_line_command): New arg says whether entering or | |
7320 | leaving a file. Output `1' or `2' on #-line if so. Callers changed. | |
7321 | ||
7322 | * gnulib2.c: Little-endian fixes from csmith@convex.com. | |
7323 | ||
7324 | * fixincludes: Wrong quoting in `echo' command. | |
7325 | ||
7326 | * tm-mips.h (REG_P): Duplicate defn deleted. | |
7327 | (PRINT_OPERAND): `\' was missing. | |
7328 | ||
7329 | Wed Apr 26 02:44:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7330 | ||
7331 | * cccp.c (handle_directive): Preprocess even #pragma, but copy | |
7332 | to output file afterward. | |
7333 | (do_pragma): Use standard calling convention. | |
7334 | (install_builtins, special_symbol): Define __INCLUDE_LEVEL__. | |
7335 | ||
7336 | * cccp.c (do_include): Don't forget to close file. | |
7337 | ||
7338 | * final.c (output_asm_insn): Use PRINT_OPERAND_PUNCT_VALID_P | |
7339 | to validate punctuation after percent. | |
7340 | * tm-m68k.h, tm-alliant.h, tm-ns32k.h, tm-vax.h, tm-i386.h: | |
7341 | Define PRINT_OPERAND_PUNCT_VALID_P. | |
7342 | ||
7343 | * Version 1.35 released. | |
7344 | ||
7345 | * c-decl.c (grokdeclarator): Use INT_CST_LT only on int constants. | |
7346 | ||
7347 | Tue Apr 25 15:47:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7348 | ||
7349 | * reload.c (find_reloads_address_1): Always return a value. | |
7350 | ||
7351 | * flow.c (mark_set_1): Look inside zero_extract, sign_extract. | |
7352 | ||
7353 | * expr.c (emit_library_call) [STACK_ARGS_ADJUST]: | |
7354 | Fix typo for `struct args_size'. | |
7355 | ||
7356 | Mon Apr 24 00:12:18 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7357 | ||
7358 | * flow.c (mark_set_1): Look inside strict_low_part. | |
7359 | ||
7360 | * c-typeck.c (decl_constant_value): Don't use var's init if volatile. | |
7361 | ||
7362 | * print-tree.c (dump): Don't call walk on rtx's. | |
7363 | ||
7364 | * integrate.c (expand_inline_function): Convert expanded arg from | |
7365 | passed mode to nominal mode. | |
7366 | ||
7367 | Sun Apr 23 13:14:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7368 | ||
7369 | * fixincludes: fix _IO macros if split across two lines. | |
7370 | Fix typo: EOF was indented. | |
7371 | ||
7372 | * gnulib2.c: New file with DImode library routines. | |
7373 | * Makefile (gnulib2): Put them into gnulib. | |
7374 | Must be explicitly requested. | |
7375 | ||
7376 | Fri Apr 21 13:45:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7377 | ||
7378 | * cccp.c (main): Don't turn on trigraphs for -Wtrigraphs or -Wall; | |
7379 | use -trigraphs for that. | |
7380 | ||
7381 | * cccp.c (main): Use -trigraphs to enable trigraphs. | |
7382 | * gcc.c: Pass -trigraphs to cpp; don't pass -T. | |
7383 | ||
7384 | * Makefile: Variable srcdir relates location of sources | |
7385 | to current directory. Default is `.'. | |
7386 | ||
7387 | * integrate.c (expand_inline_function): When copying expanded arg, | |
7388 | use mode it's passed in, not arg's nominal mode. | |
7389 | ||
7390 | * dbxout.c (dbxout_block): Print generated name with assemble_name. | |
7391 | ||
7392 | Thu Apr 20 12:36:09 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7393 | ||
7394 | * stdarg.h: check __sparc__ instead of sparc. | |
7395 | ||
7396 | Tue Apr 18 18:58:03 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7397 | ||
7398 | * tm-next.h (STARTFILE_SPEC): Define it. | |
7399 | ||
7400 | Mon Apr 17 19:56:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7401 | ||
7402 | * dbxout.c (dbxout_block): Use ASM_GENERATE_INTERNAL_LABEL to format | |
7403 | the labels LBB... and LBE... | |
7404 | ||
7405 | Sun Apr 16 23:57:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7406 | ||
7407 | * mips.md: Change MINUS to COMPARE where appropriate. | |
7408 | ||
7409 | Sat Apr 15 16:11:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7410 | ||
7411 | * c-decl.c (finish_struct, redeclaration_error_message): | |
7412 | Rename variables named OLD and NEW. | |
7413 | ||
7414 | * sparc.md (cse'd mult pattern): Handle memory operands. | |
7415 | Optimize small integer operands. | |
7416 | ||
7417 | * stmt.c (expand_decl): On sparc, ensure dynamic arrays of doubles | |
7418 | are properly aligned, despite unaligned STACK_POINTER_OFFSET. | |
7419 | ||
7420 | Fri Apr 14 10:59:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7421 | ||
7422 | * expr.c (expand_call): Bugs treating struct value address as param: | |
7423 | do so only if it's supposed to be pushed; | |
7424 | decode value of FUNCTION_ARG properly. | |
7425 | ||
7426 | * tm-altos3068.h (CPP_SPEC): Some braces were dropped. | |
7427 | ||
7428 | * gcc.c (pexecute): Print message when exec fails. | |
7429 | (perror_exec): New fn. | |
7430 | (perror_with_name,pfatal_with_name): Change message syntax. | |
7431 | ||
7432 | * tm-hp9k320.h (ASM_IDENTIFY_GCC): Define as no-op. | |
7433 | ||
7434 | Wed Apr 12 00:20:31 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7435 | ||
7436 | * cse.c (cse_insn): Can record constant value being stored in | |
7437 | a bit field, if we can tell that truncation won't change it. | |
7438 | ||
7439 | * m68k.md (bfset, bfclr, bfchg insns): Do CC_STATUS_INIT | |
7440 | since the cc's are set from the old contents. | |
7441 | ||
7442 | * gcc.c (compilers): Running `as', put -o option before input file. | |
7443 | ||
7444 | * gcc.c: Delete output file only if that file's compilation fails. | |
7445 | * gcc.c (record_temp_file): Changed args: always_delete, fail_delete. | |
7446 | (store_arg): Likewise. Callers changed. | |
7447 | (clear_failure_queue): Called after each compilation. | |
7448 | ||
7449 | Tue Apr 11 01:18:53 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7450 | ||
7451 | * combine.c (subst): (SET (ZERO_EXTRACT) (OR (ZERO_EXTRACT) const)) | |
7452 | optimization was sometimes invalid. | |
7453 | ||
7454 | * tm-m68k.h (NOTICE_UPDATE_CC): A doubleword move that requires 2 insns | |
7455 | does not set the cc's usefully. | |
7456 | ||
7457 | * Makefile (cleanlinks): Just do `clean', not `realclean'. | |
7458 | (realclean): Delete config links also. | |
7459 | ||
7460 | * expr.c (expand_call): Handle case where return value is in memory | |
7461 | but TARGET is a register. | |
7462 | ||
7463 | * c-typeck.c (build_binary_op_nodefault): New arg ERROR_CODE | |
7464 | is passed to binary_op_error instead of CODE. | |
7465 | All callers changed. | |
7466 | (binary_op_error): CODE = NOP_EXPR is new special case. | |
7467 | (truthvalue_conversion): Call build_binary_op_nodefault directly | |
7468 | and specify NOP_EXPR for the error code. | |
7469 | ||
7470 | * c-decl.c (xref_tag): If pedantic, warn on fwd ref to enum. | |
7471 | ||
7472 | Mon Apr 10 19:44:48 1989 Chris Smith (csmith at mozart) | |
7473 | ||
7474 | * tm-convex.h (PCC_BITFIELD_TYPE_MATTERS): It doesn't, | |
7475 | but set it anyway. It makes for better code on this | |
7476 | word machine. | |
7477 | ||
7478 | * convex.md (one_compl*): add not:QI and not:HI, which | |
7479 | do get used after all. | |
7480 | ||
7481 | * tm-convex.h (A_REG_P, S_REG_P): define new macros | |
7482 | convex.md: use them | |
7483 | ||
7484 | * convex.md (addsi3): tidy up constraints. | |
7485 | ||
7486 | * tm-convex.h (REG_OK_FOR_INDEX_P): stack pointer is not ok. | |
7487 | ||
7488 | * convex.md: add a pattern to push REG+CONST so we can | |
7489 | prefer an A reg. | |
7490 | ||
7491 | * tm-convex.h (tstqi): should sign extend, not zero extend. | |
7492 | ||
7493 | * expr.c (convert_move): Extending narrow to DI via SI, | |
7494 | operand of extendsidi2 was wrong. | |
7495 | ||
7496 | * emit-rtl.c (gen_lowpart): Handle CONST_DOUBLE. | |
7497 | ||
7498 | Mon Apr 10 05:19:39 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7499 | ||
7500 | * recog.c (nonmemory_operand): Test constant operands | |
7501 | as general_operand does. | |
7502 | ||
7503 | * tm-m68k.h (PRINT_OPERAND): Limit effect of code `d' | |
7504 | to constant addresses. | |
7505 | ||
7506 | * loop.c (can_eliminate_biv_p, eliminate_biv): Don't rely on givs with | |
7507 | nonconstant coefficients, since the coeffs could be zero. | |
7508 | ||
7509 | * loop.c (can_eliminate_biv_p): Check each giv for ! ignore | |
7510 | before assuming it can be used. | |
7511 | (check_eliminate_biv): New fn, a piece of strength_reduce broken out. | |
7512 | ||
7513 | * cccp.c (error_from_errno): New fn, like error and perror_with_name. | |
7514 | (do_include): Call that if open fails. | |
7515 | (finclude): Print I/O error msg before closing desc. | |
7516 | ||
7517 | * c-decl.c (shadow_tag): If more than one tag or structure, | |
7518 | or anything other than a tag, warning. | |
7519 | ||
7520 | * c-parse.y (components): Just warn if memb decl has no member, | |
7521 | and only if pedantic. | |
7522 | ||
7523 | * loop.c (strength_reduce): Print uids, not luids, for dump. | |
7524 | (record_giv): giv_count field counts only DEST_REG givs. | |
7525 | (check_dbra_loop): src_two_before_end was set wrong. | |
7526 | ||
7527 | * loop.c (record_giv): New arg LOOP_END; all callers changed. | |
7528 | Don't mark giv replaceable if used past LOOP_END. | |
7529 | (find_mem_givs): New arg LOOP_END; all callers changed. | |
7530 | ||
7531 | * out-i386.c (FP_CALL): Make this a `return' stmt. | |
7532 | ||
7533 | Fri Apr 7 11:56:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7534 | ||
7535 | * expr.c (expand_expr, case ..._DECL): Preserve mode thru | |
7536 | calling change_address. | |
7537 | ||
7538 | * expr.c (emit_library_call): Typo: ARGNUM => COUNT. | |
7539 | ||
7540 | * expr.c (preexpand_calls, expand_call): Take note of RETURN_IN_MEMORY. | |
7541 | * stmt.c (assign_parms): Likewise. | |
7542 | * integrate.c (function_cannot_inline_p): Likewise. | |
7543 | ||
7544 | * STACK_ARGS_ADJUST: Arg is now a `struct arg_data' and it should | |
7545 | be updated in place. | |
7546 | * tm-mips.h: Define it. | |
7547 | * expr.c (expand_call): Adapt to this. Assume padding comes after args | |
7548 | so turn off the feature of changing the args' offsets. | |
7549 | (emit_library_call): Adapt to this. | |
7550 | ||
7551 | * tm-mips.h (PRINT_OPERAND): Use CONST_DOUBLE_{LOW,HIGH}. | |
7552 | Truncate SFmode constants to single precision. | |
7553 | ||
7554 | * c-typeck.c (mark_addressable): Fix test for local vs global reg var. | |
7555 | ||
7556 | * config.gcc: Change `:-' to `-' in var refs. | |
7557 | Shell on convex doesn't handle `:-'. | |
7558 | ||
7559 | Thu Apr 6 00:09:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7560 | ||
7561 | * integrate.c (expand_inline_function): Compare actual's mode | |
7562 | against formal's DECL_ARG_TYPE's mode, not TREE_TYPE's mode. | |
7563 | ||
7564 | * c-decl.c (implicitly_declare): Make the decl permanent if | |
7565 | in global binding level. (Can happen for certain invalid input.) | |
7566 | ||
7567 | * c-typeck.c (build_modify_expr): Block path that made a MODIFY_EXPR | |
7568 | containing an ERROR_MARK. | |
7569 | ||
7570 | * config/tm.h: New file. | |
7571 | ||
7572 | * loop.c (only_reg_use_p): Fix bugs in recursion, add some fast | |
7573 | special cases. Comment on return value was backwards. | |
7574 | (strength_reduce): Negate the value of only_reg_use_p. | |
7575 | ||
7576 | * genoutput.c (output_prologue): Output `#include hard-reg-set.h'. | |
7577 | * Makefile: insn-output.o depends on that. | |
7578 | ||
7579 | * toplev.c (main): Typo recognizing -Wswitch. | |
7580 | ||
7581 | * config.gcc (mips): New alternative. | |
7582 | * tm-mips.h, out-mips.c, mips.md, va-mips.h: New files. | |
7583 | * varargs.h: Include va-mips.h if on mips. | |
7584 | ||
7585 | Wed Apr 5 16:58:04 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7586 | ||
7587 | * c-decl.c (duplicate_decls): Rename OLD, NEW to OLDDECL, NEWDECL. | |
7588 | ||
7589 | * stmt.c (expand_function_start): Ref subr instead of | |
7590 | current_function_decl; should make no difference. | |
7591 | ||
7592 | * stmt.c (assign_parms): Do extra padding for some parms, | |
7593 | controlled by MAX_PARM_BOUNDARY. | |
7594 | * expr.c (expand_call): Same thing for caller side. | |
7595 | Note this is implemented only for machines that lack push insns. | |
7596 | Also, in both cases, it doesn't handle variable-size args. | |
7597 | ||
7598 | Tue Apr 4 12:22:06 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7599 | ||
7600 | * gcc.c (find_file): Try STANDARD_EXEC_PREFIX for startfiles too. | |
7601 | ||
7602 | * varasm.c (make_decl_rtl): Delete never-executed clause. | |
7603 | ||
7604 | * spur.md (movqi, loadhi, extend*, zero_extendhisi): | |
7605 | Make subregs with C code, not RTL patterns, so we can | |
7606 | avoid generating subreg of subreg. | |
7607 | ||
7608 | * optabs.c (emit_cmp_insn): Not all clauses always succeed, | |
7609 | so stop using `else' structure. | |
7610 | ||
7611 | * stmt.c (expand_return): Avoid moving void to void, in cleanups case. | |
7612 | ||
7613 | Mon Apr 3 18:04:33 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7614 | ||
7615 | * m68k.md (cmphi): Don't allow a-reg vs a-reg, since that sign-extends. | |
7616 | If there is one a-reg, make sure it is not last. | |
7617 | ||
7618 | Sun Apr 2 13:02:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7619 | ||
7620 | * stor-layout.c (agg_mode): Use highest mode that has desired size. | |
7621 | Allow all integer modes, but reject sizes > MAX_FIXED_MODE_SIZE. | |
7622 | (That defaults to the size of DImode.) | |
7623 | ||
7624 | * machmode.def: Add PSI, PDI and XF, CXF modes. | |
7625 | ||
7626 | Sat Apr 1 00:50:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7627 | ||
7628 | * ns32k.md (ashd, lshd): Delete patterns that logand the count with 31. | |
7629 | The shift count is not truncated on this machine. | |
7630 | ||
7631 | * combine.c (subst): Simplify nested or's, nested xor's. | |
7632 | (try_distrib): XOR doesn't distribute through anything. | |
7633 | ||
7634 | * rtl.c (rtx_equal_p): Don't die on null pointers. | |
7635 | ||
7636 | * loop.c (eliminate_biv): Use COMPARE, not MINUS, in generated compare. | |
7637 | ||
7638 | * loop.c (invariant_p): Mem refs in constant pool are invariant. | |
7639 | ||
7640 | * c-decl.c (redeclaration_error_message): If -traditional, allow | |
7641 | redeclarations of typedef provided they agree. | |
7642 | ||
7643 | * c-decl.c (start_decl): Do expand_decl on the decl that pushdecl | |
7644 | returns. If there was a prev. decl with a different type, | |
7645 | we have changed its type and cleared its old rtl, so it need new rtl. | |
7646 | ||
7647 | Sat Apr 1 00:50:11 1989 Matthew Self (rms at sugar-bombs.ai.mit.edu) | |
7648 | ||
7649 | * expr.c (convert_move): Modified to use mode classes | |
7650 | instead of refering to specific machine modes. | |
7651 | ||
7652 | * expr.c (do_jump): Converted to use CONST0_RTX macro. | |
7653 | do_jmp no longer refers to any machine modes directly except | |
7654 | for VOIDmode! | |
7655 | ||
7656 | * expr.c (compare, compare1): Modified to use CONST0_RTX | |
7657 | macro. No longer refers to any machine modes directly | |
7658 | except VOIDmode and BLKmode! | |
7659 | ||
7660 | * machmode.def: Documented assumptions made about the order | |
7661 | of machine modes during mode widening. | |
7662 | ||
7663 | * optabs.c (expand_binop, expand_twoval_binop, expand_unop, | |
7664 | emit_cmp_insn): Added mode widening which is independent of | |
7665 | specific machine modes. It assumes that we may widen to any | |
7666 | higher numbered mode of the same mode class. | |
7667 | NOTE: the checks for VOIDmode ops which were present in | |
7668 | QI and HI to SI widening are now present in all widening. | |
7669 | I assume this is correct. Also, widening is now possible | |
7670 | from QI to HI. This may or may not be a good thing.... | |
7671 | ||
7672 | * rtl.h (CONST0_RTX): Added definition of new macro | |
7673 | CONST0_RTX (mode). | |
7674 | ||
7675 | * rtl.h (GET_NOTE_INSN_NAME, GET_REG_NOTE_NAME): New macros. | |
7676 | * rtl.c (note_insn_name, reg_note_name): New tables. | |
7677 | * rtl.def (NOTE): Change last field from `i' to `n'. | |
7678 | * rtl.c (print_rtx): Print mode of INSN_LIST or EXPR_LIST as reg-note. | |
7679 | Print operand code `n' as name of kind of note. | |
7680 | (read_rtx): treat `n' like `i'. | |
7681 | ||
7682 | * loop.c (struct induction): Add `mode' field. | |
7683 | (strength_reduce, record_giv): Set the `mode' field in V. | |
7684 | (can_eliminate_biv_p, eliminate_biv): Use that field. | |
7685 | ||
7686 | * loop.c (struct iv_class): `init_insn' records what inits the biv. | |
7687 | Replaces `init_val_set' flag. | |
7688 | (strength_reduce): Update and test `init_insn' instead. | |
7689 | Use of a biv between its init and the start of the loop | |
7690 | does not preclude its elimination from the loop. | |
7691 | Setting a giv is ok for eliminating a biv, even if giv is "ignore", | |
7692 | since that just means giv will be combined with another. | |
7693 | Handle some DEST_ADDR givs for that purpose. | |
7694 | Test for giv-setting before check can_eliminate_biv_p. | |
7695 | New error check for replaceable giv whose value needed after loop. | |
7696 | (only_reg_use_p): New fn. | |
7697 | ||
7698 | * expr.c (expand_expr): PLUS, MINUS with EXPAND_SUM: | |
7699 | Associate even harder. | |
7700 | ||
7701 | * loop.c (strength_reduce): Treat all constant biv init vals like ints. | |
7702 | ||
7703 | * loop.c (strength_reduce): Clear all_reduced when v->ignore is set; | |
7704 | the code to check this later didn't always do the job. | |
7705 | ||
7706 | * loop.c (verify_loop): Set loop_continue. | |
7707 | (scan_loop): mention its value. | |
7708 | * rtl.h: Define NOTE_INSN_LOOP_CONT. | |
7709 | * stmt.c (expand_loop_continue_here): Output one. | |
7710 | ||
7711 | Fri Mar 31 10:08:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7712 | ||
7713 | * c-typeck.c (pointer_int_sum, pointer_diff): Treat const void * like | |
7714 | void *. | |
7715 | ||
7716 | * rtl.c (rtx_addr_varies_p): Don't die on null exp. | |
7717 | * cse.c (refers_to_mem_p, refers_to_p): Likewise. | |
7718 | ||
7719 | * gcc.c (validate_switches, validate_all_switches): New fns. | |
7720 | Mark a switch as valid if any compiler spec or the linker spec | |
7721 | matches it, even for languages not being used. | |
7722 | ||
7723 | Thu Mar 30 00:22:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7724 | ||
7725 | * loop.c (loop_optimize, move_movables): when moving a `clr' insn used | |
7726 | in zero-extension, sometimes change it to an `and' so that the | |
7727 | significant low bits are not clobbered. | |
7728 | ||
7729 | * cccp.c: Implement __BASE_FILE__ and #once. | |
7730 | (savestring): New fn. | |
7731 | (struct file_name_list): new name for struct directory_stack. | |
7732 | (enum node_type): Add T_ONCE, T_BASE_FILE. | |
7733 | (directive_table): Add #pragma once. | |
7734 | (initialize_builtins): Add __BASE_FILE__. | |
7735 | (special_symbol): Handle __BASE_FILE__, together with __FILE__. | |
7736 | (do_include): Ignore the file if it's on the #pragma once list. | |
7737 | (do_once): New fn; add current file to #pragma once list. | |
7738 | ||
7739 | * cccp.c (do_include): Don't add non-ex files to list of deps. | |
7740 | ||
7741 | * config.gcc: Use {...:-...}, not {...=...}. | |
7742 | ||
7743 | * c-parse.y: Add precedence for IF/ELSE, and for parens; | |
7744 | avoids some conflicts. | |
7745 | ||
7746 | * tm-newsgas.h: Include tm-news.h and define USE_GAS. | |
7747 | ||
7748 | * tm-news.h: New name for tm-news800.h. | |
7749 | If not USE_GAS, define SONY_ASM. | |
7750 | Don't define USE_GAS by default. | |
7751 | (CPP_PREDEFINES): Various alternatives depending on processor type. | |
7752 | (ASM_FORMAT_PRIVATE_NAME): Override this. | |
7753 | (ASM_IDENTIFY_GCC): Override; output nothing. | |
7754 | (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Round fsize up to % 4. | |
7755 | Max for halfword link insn is 32k, not 64k. | |
7756 | (FUNCTION_EPILOGUE): Don't output move.l if no regs to restore. | |
7757 | (PRINT_OPERAND_ADDRESS): Change handling of tableref pc-rel addresses. | |
7758 | * m68k.md (movhi): Add SONY_ASM conditional. | |
7759 | ||
7760 | * cse.c (cse_insn): If replacing a dest address, preserve MEM_IN_STRUCT | |
7761 | ||
7762 | * gcc.c (error, fatal): alternate varargs defns if HAVE_VPRINTF. | |
7763 | ||
7764 | Wed Mar 29 09:54:13 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7765 | ||
7766 | * gcc.c (process_command): Check WORD_SWITCH_TAKES_ARG, so that | |
7767 | -Tdata can be handled right. | |
7768 | ||
7769 | * stmt.c (check_for_full_enumeration_handling): new fn, for warn_switch | |
7770 | (expand_end_case): Call it, if orig index was enum. | |
7771 | * toplev.c (main): Handle -Wswitch. | |
7772 | * c-parse.y (SWITCH stmt): Pass orig switch expr to expand_end_case. | |
7773 | ||
7774 | * tm-*.h, out-*.c: Uniformly use reg_names, not reg_name, and don't | |
7775 | define any duplicates. | |
7776 | * final.c: Delete reg_name. | |
7777 | ||
7778 | * c-parse.y (is_reserved_word): Add keywords __asm and __inline; | |
7779 | also __const and __volatile. | |
7780 | (yylex): Keywords that start with `__' are recognized regardless of | |
7781 | -traditional or -ansi. | |
7782 | ||
7783 | * c-parse.y (check_newline): Always recognize #ident. | |
7784 | Macro IDENT_DIRECTIVE is no more. | |
7785 | If ASM_OUTPUT_IDENT is undefined, don't output anything for #ident. | |
7786 | * tm-3b1.h: Don't define IDENT_DIRECTIVE or ASM_OUTPUT_IDENT. | |
7787 | * tm-encore.h, tm-i386gas.h, tm-i368v.h, tm-sun386i.h, tm-vaxv.h: | |
7788 | Don't define IDENT_DIRECTIVE; define ASM_OUTPUT_IDENT to output in | |
7789 | default way. | |
7790 | ||
7791 | * expr.h (RETURN_IN_MEMORY): New macro, default defn here. | |
7792 | * expr.c (expand_call): Use it to control where to return value. | |
7793 | * stmt.c (expand_function_start): Likewise. | |
7794 | ||
7795 | * out-sparc.c (find_addr_reg): Abort if none found. | |
7796 | Eliminate confusion; do only one change between tests for PLUSness. | |
7797 | (output_move_double): Arg to find_addr_reg is address, not mem ref. | |
7798 | * out-m68k.c, out-spur.c, out-i386.c, out-alliant.c: Likewise. | |
7799 | ||
7800 | * jump.c (find_cross_jump): Don't let either E1 or E2 be included | |
7801 | in the range of matching insns preceding the other (E2 or E1). | |
7802 | ||
7803 | * c-parse.y (check_newline): No error for `#pragma\n'. | |
7804 | ||
7805 | * Makefile (gcc.o): Control STANDARD_STARTFILE_PREFIX here. | |
7806 | ||
7807 | * stmt.c (walk_fixup_memory_subreg): handle null. | |
7808 | ||
7809 | * tm-sparc.h (FUNCTION_BLOCK_PROFILER): Change LPBnn to LPYnn, | |
7810 | to avoid conflict with final.c. | |
7811 | ||
7812 | Tue Mar 28 15:23:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
7813 | ||
7814 | * cccp.c (do_include): If fail, print system error message. | |
7815 | (perror_with_name): Use more standard error format. Inc. `errors'. | |
7816 | ||
7817 | * dbxout.c (dbxout_function): Output any temporary types | |
7818 | that were made by dbxout itself. | |
7819 | ||
7820 | * stmt.c: always use an epilogue if pcc-struct-return. | |
7821 | (expand_function_start): Compute return_label after testing that. | |
7822 | (expand_function_end): Output a return insn after pcc-struct-return | |
7823 | processing, if there is a return insn. | |
7824 | (expand_null_return): Don't output a return insn, in that case. | |
7825 | Simplify the conditions--depends entirely on HAVE_return. | |
7826 | ||
7827 | * tm-m68k.h (FUNCTION_BLOCK_PROFILER): Use jsr, not call. | |
7828 | ||
7829 | * reload.c (find_reloads): Certain mem addresses will be offsetable | |
7830 | after reloading; in particular, those where reg_equiv_address applies. | |
7831 | ||
7832 | * loop.c (check_dbra_loop): Change MINUS to COMPARE. | |
7833 | ||
7834 | * c-typeck.c (convert_for_assignment): Return THE standard error_mark. | |
7835 | ||
7836 | Thu Mar 23 09:39:02 1989 Richard M. Stallman (rms at watson) | |
7837 | ||
7838 | * c-parse.y (components): Error if empty. | |
7839 | ||
7840 | * dbxout.c (dbxout_symbol): Output const variables as N_STSYM. | |
7841 | ||
7842 | * varasm.c (force_const_mem): Use ASM_OUTPUT_DOUBLE_INT if defnd. | |
7843 | ||
7844 | * c-decl.c (grokdeclarator): Warn about `long long long'. | |
7845 | ||
7846 | * reload1.c (reload): When changing REG to MEM, clear REG_USERVAR_P. | |
7847 | * final.c (alter_subreg): Preserve volatile bit of MEM. | |
7848 | ||
7849 | * m68k.md (cmpsi, cmphi): Permit cmpm. | |
7850 | ||
7851 | * gcc.c (find_file): Use standard_startfile_prefix_2. | |
7852 | Now search /usr/local/lib/, /lib/ and /usr/lib/. | |
7853 | ||
7854 | * tm-m68k.h (PRINT_OPERAND): Support code `d'. | |
7855 | * m68k.md (cmpsi, cmphi, cmpqi): Use it for all mem addresses. | |
7856 | ||
7857 | * final.c (output_asm_insn): Don't allow %LETTER without an | |
7858 | operand number. | |
7859 | * tm-m68k.h, m68k.md, tm-hp9k320.h, tm-news*.h: Use %@ instead of %s. | |
7860 | * tm-alliant.h, alliant.md: Likewise. | |
7861 | * i386.md, out-i386.h: Put `0' after each %L, %W, %B, %S, %Q, %R. | |
7862 | ||
7863 | * stmt.c (expand_end_stmt_expr): Pop pending stack args. | |
7864 | ||
7865 | * varasm.c (assemble_variable): For 0-size common variable, | |
7866 | allocate at least 1 byte. | |
7867 | ||
7868 | * tm-encore.h (ASM_OUTPUT_DOUBLE, PRINT_OPERAND): Use 0f, not 0l, | |
7869 | for doubles. | |
7870 | ||
7871 | Mon Mar 13 10:24:56 1989 Richard M. Stallman (rms at ccvi) | |
7872 | ||
7873 | * out-i386.h (function_prologue, function_epilogue): | |
7874 | Use call_used_regs, not a copy, so -f options work. | |
7875 | Save regs in the opposite order. | |
7876 | Save regs even starting from 0 if they happen to be call-saved. | |
7877 | ||
7878 | * Bug fixes from Rob McMahon. | |
7879 | ||
7880 | * loop.c (strength_reduce): When inserting insn to set | |
7881 | nonreplaceable giv, put it after all the consecutive insns | |
7882 | that compute it. | |
7883 | ||
7884 | * reload.c (find_reloads): When forcing const to mem, | |
7885 | use the insn's operand mode, not the const's mode. | |
7886 | ||
7887 | * reload1.c (choose_reload_targets): Use wider of inmode and outmode | |
7888 | when determining have_groups. | |
7889 | ||
7890 | * reload1.c (choose_reload_targets): typo checked wrong insn with | |
7891 | constraint_accepts_reg_p. | |
7892 | ||
7893 | * reload1.c (choose_reload_targets): Enable #if-0'd code for | |
7894 | forgetting old reloads in case of output reload from a non-spill-reg. | |
7895 | ||
7896 | Sun Mar 12 00:04:49 1989 Richard M. Stallman (rms at ccvi) | |
7897 | ||
7898 | * c-parse.y (yyerror): Add forward-decl here. | |
7899 | * c-tree.h: Delete decl here. | |
7900 | ||
7901 | * New macro USE_C_ALLOCA. | |
7902 | * cse.c (cse_main): Do alloca (0) to clear out C alloca. | |
7903 | * flow.c (life_analysis): | |
7904 | * local-alloc.c (local_alloc): | |
7905 | * reload1.c (reload_as_needed): likewise. | |
7906 | ||
7907 | * loop.c (emit_iv_init_code, eliminate_biv): | |
7908 | Always put constant in a PLUS last. | |
7909 | ||
7910 | * gcc.c (make_switch): Unused function deleted. | |
7911 | ||
7912 | *gcc.c (switches): Each switch has a `used' field. | |
7913 | (process_command): Init it to 0 when making `switches'. | |
7914 | (do_spec_1, handle_braces, give_switch): Set to 1 when switch is used. | |
7915 | (main): If it remains 0 at the end, print error message. | |
7916 | ||
7917 | * expr.c (convert_move, convert_to_mode): Don't truncate a MEM in | |
7918 | place if it is volatile. | |
7919 | ||
7920 | * loop.c (strength_reduce): When reducing a giv, if the biv is | |
7921 | incremented between the giv's creation and its use, increment | |
7922 | the reduced giv var *after* its use. | |
7923 | ||
7924 | * c-decl.c (duplicate_decls): Warn about proto vs nonproto | |
7925 | only if no other errors apply. | |
7926 | ||
7927 | * jump.c (invert_exp): Don't crash if arg is null. | |
7928 | ||
7929 | * alliant.md (float*i*f2): Don't allow immediate ops. | |
7930 | (sne): Fix typo, fsne => fsneq. | |
7931 | ||
7932 | * expr.c (store_one_arg, expand_call): When size doesn't matter, | |
7933 | pass const0_rtx, not (rtx) 0. | |
7934 | ||
7935 | * expr.c (do_jump): Args to invert_exp were missing. | |
7936 | ||
7937 | * gcc.c (store_arg): Now 2 separate args for delete-on-success | |
7938 | and delete-on-failure. All calls changed. | |
7939 | (do_spec_1): DELETE_THIS_FILE is meaningful for output files. | |
7940 | ||
7941 | * config/xm-alliant.h (LINK_SPEC): Pass -X to linker. | |
7942 | ||
7943 | Sat Mar 11 10:30:41 1989 Richard M. Stallman (rms at ccvi) | |
7944 | ||
7945 | * tm-*.h, xm-*.h, *.md: Moved to subdir `config'. | |
7946 | * output-*.c: Moved to `config/out-*.c'. | |
7947 | * Makefile (.c.o): Define rule to use -Iconfig when compiling. | |
7948 | (various): Delete the commands from some compilation rules. | |
7949 | Put -Iconfig in other compilation commands. | |
7950 | Also some reordering of variable defs and comments for cleanliness. | |
7951 | (realclean): Change a shell comment to a Make comment. | |
7952 | ||
7953 | * fold-const.c (fold): Simplify and extend TRUTH_... operators | |
7954 | knowing that args must be ints and values will be 0 or 1. | |
7955 | ||
7956 | * gcc.hlp: New file (for VMS). | |
7957 | ||
7958 | * reload1.c (reload): Don't let two 2-groups overlap. | |
7959 | ||
7960 | * reload.c (push_reloads): When a plain reg matches a reload | |
7961 | for an increment, don't change the reload_in to a plain reg. | |
7962 | Leave the increment there. | |
7963 | ||
7964 | * integrate.c (expand_inline_function): Don't try to inline | |
7965 | unless the parm machine modes really match what's expected. | |
7966 | ||
7967 | * stmt.c (emit_case_nodes): default_label is an rtx, not tree. | |
7968 | ||
7969 | * tm-next.h (DOLLARS_IN_IDENTIFIERS): Define it as 1. | |
7970 | ||
7971 | * output-sparc.c (output_move_double): Don't trust random structs | |
7972 | to be double-word aligned. | |
7973 | ||
7974 | * gcc.c: Pass -Wcomments to cpp. | |
7975 | ||
7976 | * rtl.def (ASM_OPERANDS): New operands, source file and line. | |
7977 | * rtl.h (ASM_OPERANDS_*): New macros for components of ASM_OPERANDS. | |
7978 | * stmt.c (expand_asm_operands): Use new fields, not REG_ASM_* notes. | |
7979 | * toplev.c (error_for_asm): likewise. | |
7980 | * rtl.h (enum reg_note): Delete REG_ASM_FILE, REG_ASM_LINE. | |
7981 | ||
7982 | * combine.c (try_combine): Check explicitly for volatility in I2, I1. | |
7983 | ||
7984 | Fri Mar 10 19:30:10 1989 Richard M. Stallman (rms at ccvi) | |
7985 | ||
7986 | * c-parse.y (GOTO stmt): Set TREE_USED for the label. | |
7987 | * c-decl.c (poplevel): Warn about unused label. | |
7988 | ||
7989 | * c-decl.c (warn_pointer_arith, warn_strict_prototypes): New vars. | |
7990 | (lang_decode_options): Options to set them. | |
7991 | * c-typeck.c (pointer_int_sum, c_sizeof): Maybe warn if bad target. | |
7992 | * c-decl.c (grokparms): Maybe warn if nonprototype fn decl. | |
7993 | ||
7994 | * flags.h, toplev.c (warn_shadow): New flag. | |
7995 | * toplev.c (main): Decode it. | |
7996 | * c-decl.c (pushdecl): Maybe warn about any shadowing. | |
7997 | Existing parm-shadowing warning now disabled if shadowing decl | |
7998 | is also a parm. | |
7999 | ||
8000 | * flags.h, toplev.c (warn_id_clash, id_clash_len): New flags. | |
8001 | * toplev.c (main): Decode -Wid-clash-LEN. | |
8002 | * tree.c (get_identifier): Implement warning if two idents match. | |
8003 | ||
8004 | * toplev.c (compile_file): Warn about statics defined and unused. | |
8005 | ||
8006 | * rtl.h (CONST0_RTX): New macro. | |
8007 | ||
8008 | * recog.c (offsetable_address_p): New 1st arg says whether to demand | |
8009 | a strictly valid address. | |
8010 | (offsetable_memref_p): Pass nonzero. | |
8011 | * stmt.c (optimize_bit_field): Pass zero. | |
8012 | ||
8013 | * cccp.c (main): Allow -Wcomment like -Wcomments. | |
8014 | * c-decl.c (lang_decode_options): Likewise. | |
8015 | ||
8016 | Sun Mar 5 15:02:59 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) | |
8017 | ||
8018 | * m68k.md [tstdf, cmp[sd]f, truncdfsf2, floatsi[sd]f2, add[sd]f3, | |
8019 | sub[sd]f3, mul[sd]f3, div[sd]f3, neg[sd]f2, abs[sd]f2]: Made sure | |
8020 | that the test function's in the match_operands of the define_expand | |
8021 | and define_insn's matched, and made that test function | |
8022 | "register_operand" when both define_insn's really needed registers | |
8023 | in that spot. | |
8024 | ||
8025 | Sat Mar 4 00:25:37 1989 Richard M. Stallman (rms at c2v) | |
8026 | ||
8027 | * expr.c (emit_push_insn): Don't ever bypass the big-endian | |
8028 | padding at the end. | |
8029 | ||
8030 | * cccp.c (deps_output): Break line if would otherwise exceed 75 chars. | |
8031 | Make a name for that value 75. | |
8032 | ||
8033 | * combine.c (subst): Handle general case of (subreg (sign_extend X)). | |
8034 | ||
8035 | * tm-sun386i.h (CPP_PREDEFINES): Define `sun'. | |
8036 | ||
8037 | * fixincludes: change `find' calls to find dirs thru symlinks. | |
8038 | ||
8039 | * flow.c (mark_set_1): (set (subreg (reg N))...) | |
8040 | does make reg N significant for this basic block. | |
8041 | ||
8042 | Fri Mar 3 13:55:25 1989 Richard M. Stallman (rms at c2v) | |
8043 | ||
8044 | * c-decl.c (parmlist_tags_warning): Print an explanation | |
8045 | for the first such warning. | |
8046 | ||
8047 | * i386.md (extendsfdf): Let op 1 match op0 if that is an fp reg. | |
8048 | ||
8049 | * expr.c (expand_call): Fix stupid errors copying pcc struct value. | |
8050 | ||
8051 | * varasm.c (output_constructor): Discard NOP_EXPRs from build_c_cast. | |
8052 | ||
8053 | Thu Feb 23 05:55:57 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8054 | ||
8055 | * Version 1.34 released. | |
8056 | ||
8057 | * c-typeck.c (build_c_cast): If EXPR is an error mark, return that. | |
8058 | ||
8059 | * fold-const.c (div_and_round_double): Abort if divisor is 0. | |
8060 | (combine): Likewise, for real constants. | |
8061 | (real_zerop): New subroutine. | |
8062 | (fold): Don't try to fold division if divisor is 0. | |
8063 | Don't try to fold reals if can't do arithmetic on them. | |
8064 | Don't try to compare reals for TRUTH_..._EXPR if can't do arith. | |
8065 | Use real_zerop to test reals for zeroness. | |
8066 | For TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR, can simplify based on | |
8067 | first operand alone. | |
8068 | ||
8069 | * c-typeck.c (store_init_value): Fix error msg text. | |
8070 | ||
8071 | * tm-sparc.h (FUNCTION_PROFILER): Use `mcount'. | |
8072 | * tm-sun4os3.h (FUNCTION_PROFILER): Override it; use `.mcount'. | |
8073 | ||
8074 | Wed Feb 22 04:33:22 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8075 | ||
8076 | * tm-hp9k320.h (CPP_SPEC, CPP_PREDEFINES): Make handling of | |
8077 | -Dmc68000 depend on TARGET_DEFAULT. | |
8078 | ||
8079 | * tm-sparc.h (FUNCTION_PROFILER): Missing newline in fprintf. | |
8080 | ||
8081 | * integrate.c (expand_inline_function): Don't map struct-value-address | |
8082 | in memory if fn does not use it. | |
8083 | ||
8084 | * c-parse.y (check_newline): At skipline, detect eof. | |
8085 | ||
8086 | * stmt.c (uninitialized_vars_warning): Change text of warning. | |
8087 | ||
8088 | Tue Feb 21 03:58:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8089 | ||
8090 | * output-sparc.c (output_mul_insn): Handle case of both args | |
8091 | in reg 8, or both in reg 9. | |
8092 | ||
8093 | * tm-sparc.h (ASM_SPEC): Define, to handle -pipe. | |
8094 | ||
8095 | * tm-sparc.h (FUNCTION_PROFILER): Add omitted fprintf args. | |
8096 | (BLOCK_PROFILER): Likewise. Use tempvar. | |
8097 | ||
8098 | * m68k.md (QImode btst): Allow nonoffsetable mem refs. | |
8099 | ||
8100 | Mon Feb 20 00:32:42 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8101 | ||
8102 | * flow.c (mark_used_regs): Don't record about global reg vars. | |
8103 | ||
8104 | * config.gcc (convex-*): tm file names are tm-convex1.h, tm-convex2.h. | |
8105 | ||
8106 | * tm-vax.h, tm-ns32k.h, tm-alliant.h: Define PCC_STATIC_STRUCT_RETURN. | |
8107 | ||
8108 | * gcc.c (compilers): Pass `-a' to cc1. | |
8109 | * tm-sun3.h, tm-sparc.h (LIB_SPEC): Define, to handle `-a'. | |
8110 | ||
8111 | * expr.c (emit_push_insn): Copy stack addresses to be passed to bcopy; | |
8112 | old method of preadjustment is broken by changes in emit_library_call. | |
8113 | ||
8114 | * c-decl.c (finish_decl): New temp `temporary'; don't get confused | |
8115 | about whether allocation was temporary. | |
8116 | ||
8117 | Sun Feb 19 17:03:35 1989 Chris Smith (csmith at mozart) | |
8118 | ||
8119 | * tm-convex.h: define PCC_STATIC_STRUCT_RETURN | |
8120 | ||
8121 | * convex.md: | |
8122 | remove pshea patterns, movsi does it better. | |
8123 | add ashift:DI abs:DF abs:SF | |
8124 | (tstdi): use a clobbered register instead of a bogus DImode zero. | |
8125 | (trunchiqi2): delete noninstruction cvth.b | |
8126 | (udivsi3, udivhi3, udivqi3): deleted, expand_divmod does it now. | |
8127 | (call, call_value): delete stupid call/ret -> jump optimization. | |
8128 | (call, call_value): flush call_ap_check, use reg_mentioned_p instead. | |
8129 | ||
8130 | * convex.md: (movxx): swap constraint alternatives so that the | |
8131 | leftmost alternative is (set =g r). This makes (set mem const) | |
8132 | get combinable input reloads of const instead of uncombinable | |
8133 | output reloads to mem. They still do not combine, but wtf, | |
8134 | I'll inch up on it. | |
8135 | ||
8136 | * output-convex.c: (const_double_{high,low}_int): new routines | |
8137 | to pick apart const_doubles for assembler. | |
8138 | ||
8139 | Sun Feb 19 01:40:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8140 | ||
8141 | * sparc.md (shift memory right 24 bits): Another `a1' typo. | |
8142 | ||
8143 | * config.gcc (convex-*): Delete troublesome whitespace. | |
8144 | ||
8145 | * c-decl.c (grokparms): Delete redundant `parm != 0' tests. | |
8146 | ||
8147 | * stmt.c (fixup_memory_subreg): Slight simplification. | |
8148 | ||
8149 | * tm-sparc.h (FUNCTION_PROFILER): Fill delay slot. | |
8150 | (FUNCTION_BLOCK_PROFILER): Use sethi. | |
8151 | (BLOCK_PROFILER): Use %g2, not %g0. Use sethi. | |
8152 | ||
8153 | Sat Feb 18 02:11:25 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8154 | ||
8155 | * expr.c (expand_expr): Ignore const array's initial value | |
8156 | if it's an error_mark. | |
8157 | * c-decl.c (finish_decl): Set DECL_INITIAL to an error_mark | |
8158 | if the decl is a permanent node. | |
8159 | ||
8160 | * cccp.c (rescan): If traditional, if macro ends inside string, | |
8161 | keep scanning for the end of the string. | |
8162 | (handle_directive): A line of just `#' becomes blank. | |
8163 | (collect_expansion): \ in strings traditionally doesn't hide macro arg. | |
8164 | ||
8165 | * m68k.md, alliant.md (addsi3): New alternative a=r+a, in addition | |
8166 | to old a=a+r, needed since reload-insns are not commuted. | |
8167 | ||
8168 | Fri Feb 17 03:15:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8169 | ||
8170 | * tm-m68k.h (PCC_STATIC_STRUCT_RETURN): Define it. | |
8171 | * toplev.c, flags.h: New var flag_pcc_struct_return. | |
8172 | * stmt.c (expand_function_start): Obey new flag and new variable. | |
8173 | * expr.c (expand_call): Obey new flag and new variable. | |
8174 | * varasm.c (assemble_static_space): New function. | |
8175 | ||
8176 | * stmt.c (expand_return): If we need cleanups, compute retval first | |
8177 | into pseudo reg, then do the cleanups, then copy it to return reg. | |
8178 | ||
8179 | Thu Feb 16 02:59:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8180 | ||
8181 | * regclass.c (init_reg_sets_1): Win if STATIC_CHAIN_REGNUM undefined. | |
8182 | ||
8183 | * expr.c (expand_call): Handle conflict between two precomputed | |
8184 | args that are both function calls returning structures. | |
8185 | ||
8186 | * loop.c (move_movables): Bkwds test of m->partial, for a matching reg. | |
8187 | ||
8188 | * expr.c (emit_library_call, expand_call): Handle STACK_ARGS_ADJUST. | |
8189 | ||
8190 | Wed Feb 15 01:59:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8191 | ||
8192 | * toplev.c (flag_caller_saves): New var, for -fcaller-saves. | |
8193 | DEFAULT_CALLER_SAVES controls initial value. | |
8194 | * global-alloc.c (find_reg): Do caller saves only if flag set. | |
8195 | * local-alloc.c (find_free_reg): Do caller saves only if flag set. | |
8196 | * tm-alliant.h, tm-convex.h: Define DEFAULT_CALLER_SAVES. | |
8197 | ||
8198 | Wed Feb 15 01:59:15 1989 Chris Smith (rms at sugar-bombs.ai.mit.edu) | |
8199 | ||
8200 | * caller-save.c: New file. | |
8201 | * regs.h (CALLER_SAVE_PROFITABLE): New macro. | |
8202 | (reg_n_calls_crossed): new int-vector replaces reg_crosses_calls. | |
8203 | * flow.c (allocate_for_life_analysis, propagate_block, dump_flow_info): | |
8204 | Use reg_n_calls_crossed. | |
8205 | * stupid.c (stupid_mark_refs, stupid_life_analysis): Likewise. | |
8206 | * global-alloc.c (find_reg): Sometimes allocate call-clobbered regs | |
8207 | for call-crossing pseudos. | |
8208 | New arg ACCEPT_CALL_CLOBBERED; callers changed. | |
8209 | * local-alloc.c (find_free_reg): Similar changes. | |
8210 | (qty_n_calls_crossed): New int-vector replaces qty_crosses_calls. | |
8211 | (alloc_qty, local_alloc, combine_regs, find_free_reg): change that var. | |
8212 | * regclass.c (call_fixed_regs, call_fixed_reg_set): new vars. | |
8213 | (init_reg_sets_1): Initialize them. | |
8214 | * reload1.c (reload): Call caller-saves processing if needed. | |
8215 | ||
8216 | Wed Feb 15 01:59:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8217 | ||
8218 | * expr.c (expand_expr): INTEGER_CST for DImode: don't handle | |
8219 | endianness here. So CONST_DOUBLE_LOW is always the low word. | |
8220 | * varasm.c (force_const_mem): Handle it here. | |
8221 | ||
8222 | * expr.c (convert_move): widening followed by extendsidi2 had braino. | |
8223 | ||
8224 | * integrate.c: Don't include ctype.h; not needed and kills Sun cpp. | |
8225 | ||
8226 | * m68k.md (cmpsf, cmpdf and their recognizers): | |
8227 | Replace MINUS with COMPARE. | |
8228 | Also, use VOIDmode for COMPAREs, not SF or DF. | |
8229 | ||
8230 | * optabs.c (sign_expand_binop): Handle ops such as division where | |
8231 | an unsigned char could be widened and handled with signed int insns. | |
8232 | * expmed.c (expand_divmod): Use that. | |
8233 | ||
8234 | * c-typeck.c (digest_init): Allow for type variants in validating | |
8235 | initialization from a string constant. | |
8236 | ||
8237 | * c-typeck.c (decl_constant_value): Disable opt. if pedantic or | |
8238 | outside functions, so that validity of program is never affected. | |
8239 | ||
8240 | * fold-const.c (fold): Signedness-test for ABS_EXPR was backwards. | |
8241 | ||
8242 | Tue Feb 14 01:30:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8243 | ||
8244 | * cccp.c (main): Don't omit normal output, if we want deps on | |
8245 | a separate stream. | |
8246 | ||
8247 | * c-decl.c (grokdeclarator): Don't record any arg types for functions | |
8248 | if -traditional. | |
8249 | ||
8250 | * print-tree.c (prtypeinfo): Mention permanent attribute. | |
8251 | ||
8252 | * tm-next.h: New file. | |
8253 | ||
8254 | * c-typeck.c (decl_constant_value): The DECL_INITIAL may be ERROR_MARK. | |
8255 | ||
8256 | * c-decl.c (duplicate_decls): For fns, new static decl overrides | |
8257 | old non-static one. | |
8258 | ||
8259 | * emit-rtl.c (gen_lowpar, gen_highpart): Use change_address, so we | |
8260 | preserve volatility, etc. | |
8261 | ||
8262 | * stmt.c (expand_expr_stmt): Use emit_filename, emit_lineno | |
8263 | as file and line for any warning. | |
8264 | * emit-rtl.c (emit_line_note): Set those vars. | |
8265 | ||
8266 | * c-decl.c (store_parm_decls): If -Wimplicit, warn of arg with no decl. | |
8267 | ||
8268 | * recog.c (offsetable_address_p): Use strict_memory_address_p, | |
8269 | since called from reload.c. | |
8270 | ||
8271 | Mon Feb 13 03:11:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8272 | ||
8273 | * sparc.md (compare-to-reg patterns): Some still had MINUS. | |
8274 | ||
8275 | * toplev.c (main): Warn if `-a' on system that can't handle it. | |
8276 | ||
8277 | * stmt.c (expand_asm_operands): Delete unused local `val'. | |
8278 | (pushcase_range): Likewise for `value'. | |
8279 | (fixup_var_refs): Likewise for `insn'. | |
8280 | * emit-rtl.c (start_sequence): Likewise for `save'. | |
8281 | * loop.c (scan_loop): Likewise for `before_start'. | |
8282 | * expr.c (expand_expr): Delete label `binop1'. | |
8283 | ||
8284 | * reload1.c (constraint_accepts_reg_p): Handle SUBREGs of REGs. | |
8285 | ||
8286 | Sun Feb 12 05:37:46 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8287 | ||
8288 | * gnulib.c (__bb_init_func): New function | |
8289 | ||
8290 | * tm-m68k.h (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): Defined. | |
8291 | ||
8292 | Sat Feb 11 00:05:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8293 | ||
8294 | * tm-sparc.h (FUNCTION_PROFILER): Make it really work. | |
8295 | (BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER): New macros. | |
8296 | ||
8297 | * final.c (final): Use BLOCK_PROFILER at start of each basic block. | |
8298 | (final_start_function): Use FUNCTION_BLOCK_PROFILER if -a. | |
8299 | (end_final): New fn to output the block-profiling tables. | |
8300 | * toplev.c (profile_block_flag): Set if -a. | |
8301 | (compile_file): Call end_final. | |
8302 | ||
8303 | * combine.c (try_combine): Avoid combining in most cases if I3 | |
8304 | has an inc or dec and I1 or I2 uses the same register. | |
8305 | ||
8306 | * tree.c (size_in_bytes, int_size_in_bytes): Use type's main variant. | |
8307 | ||
8308 | * c-typeck.c (actualparameterlist): Error if parm type is incomplete. | |
8309 | ||
8310 | * expr.c (expand_call): Ignore args that have incomplete type. | |
8311 | ||
8312 | Fri Feb 10 02:26:02 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8313 | ||
8314 | * c-parse.y (case stmts): strip dummy NOP_EXPRs. | |
8315 | ||
8316 | * reload1.c (reload_as_needed): Clear reg_{has,is}_output_reload here, | |
8317 | (choose_reload_targets): not here. | |
8318 | ||
8319 | Thu Feb 9 01:35:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8320 | ||
8321 | * output-sparc.c (output_mul_by_constant): Forget cc status. | |
8322 | ||
8323 | * stmt.c (assign_parms): Don't put volatile parms in regs. | |
8324 | ||
8325 | * vax.md (jlbs/jlbc recognizers): Move them before jbc/jbs recognizers. | |
8326 | ||
8327 | * cse.c (fold_rtx): Handle (EQ (COMPARE ...) (CONST_INT 0)). | |
8328 | ||
8329 | * c-typeck.c (default_conversion, digest_init): For static const | |
8330 | nonvolatile scalar variable, use its initial value if known. | |
8331 | ||
8332 | * expr.c (expand_expr: case COMPONENT_REF): If containing structure | |
8333 | comes out volatile, leave the component MEM volatile too. | |
8334 | ||
8335 | * hard-reg-set.h: Fix multi-word case macros to swallow semicolon. | |
8336 | ||
8337 | * c-typeck.c (default_conversion): In array=>ptr, volatility | |
8338 | of target type comes from TREE_THIS_VOLATILE, not TREE_VOLATILE. | |
8339 | ||
8340 | * reload1.c (forget_old_reload_1, choose_reload_targets): | |
8341 | New array reg_is_output_reload is converse of reg_has_output_reload. | |
8342 | forget_old_reload_1 needs both. | |
8343 | ||
8344 | Wed Feb 8 01:26:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8345 | ||
8346 | * reload1.c (forget_old_reloads_1): New fn, guts of forget_old_reloads. | |
8347 | Do process a spill reg if it isn't used for reloading in this insn. | |
8348 | (forget_old_reloads): Deleted, replaced with note_stores. | |
8349 | (reload_as_needed): Undo Feb 1 change. | |
8350 | Call forget_old_reloads_1 on pseudos autoincremented and not reloaded. | |
8351 | ||
8352 | * c-typeck.c (convert_for_assignment): Handle variant types. | |
8353 | ||
8354 | * c-decl.c (lang_decode_option): -Wall implies -Wunused. | |
8355 | ||
8356 | Tue Feb 7 01:32:28 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8357 | ||
8358 | * combine.c (try_combine): Don't try adding outputs to an asm_operands. | |
8359 | ||
8360 | * cse.c (CHEAPER): Don't ever let a hard reg get ahead of a pseudo. | |
8361 | ||
8362 | * stmt.c (fixup_gotos): Don't crash on undef label if THISBLOCK is 0. | |
8363 | ||
8364 | * c-decl.c (parmlist_tags_warning): New fn. | |
8365 | * c-parse.y (parmlist, parmlist_or_identifiers): Call it, | |
8366 | to warn about any tags defined inside the parmlist. | |
8367 | * c-decl.c (grokparms): Don't warn about ptr to incomplete type. | |
8368 | The new warning is better. | |
8369 | ||
8370 | Mon Feb 6 01:11:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8371 | ||
8372 | * expr.c (store_constructor): Incorrect ALIGN arg in store_field calls. | |
8373 | ||
8374 | * c-parse.y (%union): Delete unused alternative. | |
8375 | ||
8376 | * c-decl.c (grokparms): Use main variant to test for ptr to incomplete. | |
8377 | ||
8378 | * c-decl.c (finish_enum): Delete superfluous init for `pair'. | |
8379 | ||
8380 | * cse.c (fold_rtx): Optimize X+0, X-0 in floating point. | |
8381 | Fix typo in PLUS case; omitted value to compare GET_MODE_CLASS against. | |
8382 | (equiv_constant): Allow CONST_DOUBLE. | |
8383 | ||
8384 | * cse.c: Optimize past if-statements that are known to fail. | |
8385 | (cse_insn): If condjump becomes uncond to end of this block, | |
8386 | set cse_skip_to_next_block. | |
8387 | (cse_basic_block): If that happens, ignore rest of block, and maybe | |
8388 | treat next block as part of this one (if tables have room). | |
8389 | Resume insn that starts next basic block to be scanned. | |
8390 | (cse_main): Make room for at least 500 qtys. | |
8391 | (cse_end_of_basic_block): Subroutine broken out of cse_main. | |
8392 | ||
8393 | * c-parse.y (hash, is_reserved_word): Rewrite: new hash technique. | |
8394 | ||
8395 | * c-decl.c (duplicate_decls): Be smart about proto vs nonproto mismatch | |
8396 | involving a function definition. | |
8397 | ||
8398 | Sun Feb 5 17:31:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8399 | ||
8400 | * alliant.md (movdi): Typo in `fmoved'. | |
8401 | (ftruncsf2): Handle moving into fp reg. | |
8402 | ||
8403 | * jump.c (jump_optimize): Typo in testing PRESERVE_DEATH_INFO_REGNO_P. | |
8404 | ||
8405 | * reload1.c (choose_reload_targets): Move all death notes to the | |
8406 | output reload insn. | |
8407 | ||
8408 | * m68k.md (fix_truncsfsi2,fix_truncdfsi2): Use accurate rtl pattern. | |
8409 | ||
8410 | * loop.c (delete_insn_forces): Use presence of REG_RETVAL to check | |
8411 | for value-of-library-call insn. | |
8412 | ||
8413 | Sat Feb 4 18:17:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8414 | ||
8415 | * integrate.c (expand_inline_function): Make addresses of stack | |
8416 | slots valid somehow. | |
8417 | ||
8418 | * tm-3b1.h (DIVSI3_LIBCALL, etc.): Define these macros; avoid gnulib. | |
8419 | ||
8420 | * expmed.c (store_bit_field): Avoid (subreg (mem)) when converting | |
8421 | VALUE1 to SImode. | |
8422 | ||
8423 | * jump.c (jump_optimize): Do delete USE and CLOBBER insns. | |
8424 | This is needed for proper jump optimization. | |
8425 | ||
8426 | * rtl.def (COMPARE): New code. | |
8427 | * *.md (compare and related patterns): Use COMPARE, not MINUS:VOID. | |
8428 | * loop.c (eliminate_biv, can_eliminate_biv_p): Likewise. | |
8429 | * cse.c (fold_rtx, fold_cc0, cse_insn): | |
8430 | * output-m88k.c (output_{f,}compare, output_store): | |
8431 | * output-sparc.c (strict_single_insn_op_p, single_insn_src_p, safe_insn_src_p): | |
8432 | * combine.c (subst): | |
8433 | * jump.c (jump_back_p): | |
8434 | ||
8435 | Fri Feb 3 18:34:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8436 | ||
8437 | * output-i386.c (notice_update_cc): If arith insn sets the cc's, | |
8438 | discard all remnants of previous cc value and flags. | |
8439 | ||
8440 | * sparc.md (ashiftrt mem by 24): Fix typo `a1'. | |
8441 | ||
8442 | Thu Feb 2 14:55:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8443 | ||
8444 | * output-sparc.c (output_mul_insn): Clear the CC status. | |
8445 | ||
8446 | Wed Feb 1 20:01:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8447 | ||
8448 | * Version 1.33 released. | |
8449 | ||
8450 | * reload1.c (reload_as_needed): On entering new basic block, | |
8451 | if it didn't need reload regs, forget all inherited contents of those. | |
8452 | ||
8453 | * tm-alliant.h (NOTICE_UPDATE_CC): Floating moves don't set the cc's. | |
8454 | Also delete the clauses and tests for FPA regs. | |
8455 | ||
8456 | Tue Jan 31 21:51:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8457 | ||
8458 | * config.gcc: Handle convex-c1, convex-c2. | |
8459 | * tm-convex1.h, tm-convex2.h: New files that include tm-convex.h. | |
8460 | * tm-convex.h: Define switches -mnoc1, -mnoc2. | |
8461 | ||
8462 | * config.gcc: rename `nofp' to `nfp', to match the file names. | |
8463 | ||
8464 | Mon Jan 30 22:12:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8465 | ||
8466 | * output-sparc.c (output_delay_insn): Extract the operands, | |
8467 | call alter_subreg, constrain_operands and NOTICE_UPDATE_CC. | |
8468 | So callers other than output_eager_then_insn don't lose. | |
8469 | (output_eager_then_insn): No need to do that stuff. | |
8470 | ||
8471 | * symout.c (symout_block_symbols): Handle (MEM (REG)) for | |
8472 | variable-sized arrays. | |
8473 | ||
8474 | * tm-encore.h (ASM_SPEC): Always pass -j; avoid jump-range lossage. | |
8475 | ||
8476 | Sun Jan 29 17:06:26 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8477 | ||
8478 | * alliant.md: Fix refs to CONST_DOUBLEs to use CONST_DOUBLE_{HIGH,LOW}. | |
8479 | ||
8480 | * combine.c (subst): (minus (zero_extend ...) (const_int ...)) opt. | |
8481 | now limited to within the context of (set (cc0) ...). | |
8482 | ||
8483 | Sat Jan 28 14:26:08 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8484 | ||
8485 | * cse.c (fold_cc0): Missing `&' extracting CONST_DOUBLEs. | |
8486 | (fold_rtx): Don't put CONST_DOUBLEs together into a (CONST (PLUS...)). | |
8487 | ||
8488 | * output-convex.c (gen_cmp): Recognize CONST_DOUBLE as a constant. | |
8489 | ||
8490 | * tree.c (build_real_from_int_cst): Typo in REAL_ARITHMETIC case. | |
8491 | ||
8492 | * Makefile (bootstrap2): Don't use bootstrap3 as subroutine. | |
8493 | ||
8494 | * varasm.c (force_const_mem): Put the CONST_DOUBLE on the chain | |
8495 | if its MEM is stored in it; so it can be cleared at end of function. | |
8496 | ||
8497 | * stmt.c (emit_case_nodes): Put a compare before each cond-jump. | |
8498 | Two cond-jumps after one cond is invalid and makes cse produce garbage. | |
8499 | ||
8500 | Fri Jan 27 01:05:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8501 | ||
8502 | * tm-sun2.h (CPP_SPEC): Define __HAVE_68881__ only if -m68881. | |
8503 | ||
8504 | * c-decl.c (start_decl): Don't expand_decl if DECL already has rtl. | |
8505 | (grokparms): If just declaring fcn, incomplete parm type is just | |
8506 | a warning, and don't discard the specified type. | |
8507 | ||
8508 | * expmed.c (expand_divmod): Be smarter about not clobbering args | |
8509 | with intermediate results; one mem can clobber another, and a reg | |
8510 | can clobber a mem. | |
8511 | ||
8512 | * tm-i386.h (FUNCTION_PROFILER): Use LPREFIX. May actually work now. | |
8513 | * tm-i386gas.h: Include tm-bsd386.h, not tm-att386.h. | |
8514 | This means changing asm syntax. | |
8515 | #undef DBX_NO_XREFS and DBX_CONTIN_LENGTH. | |
8516 | ||
8517 | * sparc.md (eager branch peepholes): Don't forget 2nd arg to | |
8518 | safe_insn_src_p. | |
8519 | Don't print warnings. | |
8520 | * output-sparc.c: (strict_single_insn_op_p): Return 0 for floating | |
8521 | REG or MEM, since copying that may take 2 insns. | |
8522 | (operands_satisfy_eager_branch_peephole): require delay insn to | |
8523 | be strict_single_insn_op_p as well as safe_insn_src_p. | |
8524 | (operand_clobbered_before_used_after): Don't print warnings. | |
8525 | ||
8526 | * varasm.c (decode_rtx_const): Clear entire structure incl. gaps. | |
8527 | Avoids spurious hash mismatches. | |
8528 | (force_const_mem): If CONST_DOUBLE, store its CONST_DOUBLE_MEM field. | |
8529 | Also look in that field rather than hashing, to save time. | |
8530 | ||
8531 | * c-typeck.c (build_c_cast): If value is literal, mark NOP_EXPR as so. | |
8532 | (store_init_value): Change error msg. | |
8533 | ||
8534 | * c-decl.c (duplicate_decls): Classify prototype vs nonprototype | |
8535 | mismatches better. | |
8536 | ||
8537 | * tm-3b1.h: Fix comment. | |
8538 | ||
8539 | Wed Jan 25 12:46:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8540 | ||
8541 | * Makefile (cleanlinks): Use -f. | |
8542 | ||
8543 | Tue Jan 24 17:54:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8544 | ||
8545 | * cse.c (canon_hash): Fix paren error in last change. | |
8546 | ||
8547 | * varasm.c (immed_real_const_1): Missing arg to bcmp. | |
8548 | ||
8549 | Mon Jan 23 02:43:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8550 | ||
8551 | * stor-layout.c (layout_type): BLKmode elts force array to be BLKmode. | |
8552 | ||
8553 | * genpeep.c, genoutput.c, genemit.c: Put `#include "real.h"' in output. | |
8554 | ||
8555 | * stmt.c (expand_expr_stmt): No "no effect" warning for error-mark. | |
8556 | ||
8557 | * varargs.h: Rename implicit arg name to __builtin_va_alist | |
8558 | which triggers code in assign_parms. Does this really matter? | |
8559 | ||
8560 | * sparc.md (sne): New define_expand. | |
8561 | (seq recognizers): Handle sne as well. | |
8562 | * output-sparc.c ({strict_,}single_insn_src_p): | |
8563 | Some NEG and MINUS insns are actually 2 asm insns. | |
8564 | (safe_insn_src_p): No floating arith is safe; they can trap. | |
8565 | (eq_or_neq): New fn, for seq/sne recognizers. | |
8566 | ||
8567 | * c-decl.c (grokdeclarator, size of array type): | |
8568 | Strip from SIZE any NOP_EXPRs that don't change anything. | |
8569 | ||
8570 | * reload.c, recog.c: Include real.h so constraint macros can examine | |
8571 | CONST_DOUBLEs. | |
8572 | ||
8573 | Sun Jan 22 04:12:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8574 | ||
8575 | * c-decl.c (init_decl_processing): Define __builtin_saveregs. | |
8576 | * tree.h: likewise. | |
8577 | * expr.c (expand_builtin): Handle it. | |
8578 | ||
8579 | * tm-sparc.h: Define TARGET_EAGER and -meager. | |
8580 | * sparc.md (eager branch peepholes): Reenable, but test TARGET_EAGER. | |
8581 | Change fb insns to use %F. Delete `,a' from some of them. | |
8582 | * jump.c (jump_optimize): Don't delete USE and CLOBBER insns. | |
8583 | ||
8584 | * xm-vms.h (const): Define it as empty. | |
8585 | ||
8586 | * make-cccp.com: Move the rename of cexp_tab.c. | |
8587 | Compile cccp.c with no macro definitions. | |
8588 | ||
8589 | * cccp.c (main): VMS conditional for setting max_include_len. | |
8590 | ||
8591 | Sat Jan 21 12:53:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8592 | ||
8593 | * varargs.h (va_start): On sparc, call __builtin_saveregs. | |
8594 | Delete the old conditional that used va-sparc.h. | |
8595 | Rename macros and locals to start with two underscores. | |
8596 | * va-sparc.h: File deleted. | |
8597 | ||
8598 | * c-decl.c (store_parm_decls): Initialize OTHERS. | |
8599 | ||
8600 | * stmt.c (assign_parms): Obey layout_decl. | |
8601 | ||
8602 | Fri Jan 20 02:19:32 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8603 | ||
8604 | * cse.c (fold_rtx): For SYMBOL_REF and LABEL_REF, mask address | |
8605 | to 16 bits. | |
8606 | ||
8607 | * tree.h (NUM_TREE_CODES): NUM_TREE_CODE renamed. | |
8608 | ||
8609 | Thu Jan 19 13:53:24 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8610 | ||
8611 | * c-typeck.c (mark_addressable): For global reg var, report error. | |
8612 | Now returns an int; value of 0 means caller should fail. | |
8613 | All calls (in this file) changed. | |
8614 | ||
8615 | * stor-layout.c (layout_decl): Don't let an more than 1 word | |
8616 | of any aggregate go in any 1 register. (Needed for machines whose | |
8617 | integer regs are 64 bits). | |
8618 | ||
8619 | * tm-convex.h, xm-convex.h, convex.md, output-convex.c: new files. | |
8620 | ||
8621 | * expr.c (convert_move): Use extendqidi2, etc. for converting | |
8622 | small ints to double ints. Use zero_extendsidi2 rather than | |
8623 | clearing the high half. | |
8624 | ||
8625 | Wed Jan 18 01:20:52 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8626 | ||
8627 | * varasm.c (make_decl_rtl): If global `register' decl is invalid, | |
8628 | make ordinary non-register rtl. | |
8629 | ||
8630 | * output-sparc.c (operand_clobbered_before_used_after): new fn. | |
8631 | (reg_clobbered_p, safe_insn_src_p): New fns. | |
8632 | (single_insn_src_p): Treat constants all as ok, even though not | |
8633 | always literally so. Also accept some SIGN_EXTENDs and ZERO_EXTENDs. | |
8634 | (strict_single_insn_src_p): New fn, like above but is strict | |
8635 | about constants and constant memory addresses. | |
8636 | (relop): New fn. | |
8637 | (output_move_double): Don't make a MEM, and don't use %m. | |
8638 | (output_delayed_branch): New name for output_delay_insn. | |
8639 | Now handle non-small constant operands. | |
8640 | Avoid duplicate loads of g1 for constant addresses. | |
8641 | Use recog_operand directly for output of the delay insn. | |
8642 | (output_delay_insn): Now a completely new fn. | |
8643 | (output_eager_then_insn, next_real_insn_no_labels): New fns. | |
8644 | (operands_satisfy_eager_branch_peephole): New fn. | |
8645 | ||
8646 | * sparc.md: New peepholes for testing a recently used operand. | |
8647 | New peepholes for delayed branches, incl. conditional ones. | |
8648 | ** Some of them commented out because they seem not to work. | |
8649 | (andcc recognizer): Fix typo, missing %. | |
8650 | (bgt): Change bgt to bg in output. | |
8651 | (reversed jumps): Replace with one pattern using match_operand. | |
8652 | It uses %F to output the condition. | |
8653 | (movsi): For round-valued immed const, use just a sethi. | |
8654 | For other immed, use explicit sethi and or. | |
8655 | (movhi, movqi): use `move' for reg source or small int source. | |
8656 | For other immed, use explicit sethi and or. | |
8657 | (movsi, etc.): Handle all constant addresses like SYMBOL_REFs. | |
8658 | (movsf): Delete never-used duplicate code for constant addresses. | |
8659 | (addsi3, subsi3, cse'd multiply): Use sethi and or, rather than set. | |
8660 | (andsi3, iorsi3, xorsi3): Likewise. | |
8661 | (jump): Make an annulled branch. | |
8662 | ||
8663 | * tm-sparc.h (PROMOTE_PROTOTYPES): Define this. | |
8664 | (GO_IF_LEGITIMATE_ADDRESS): Now accept all constant addresses; | |
8665 | also cleaned up. | |
8666 | (NOTICE_UPDATE_CC): Don't change the G1 status when storing in memory. | |
8667 | Assume all PARALLEL insns are peepholes. | |
8668 | (PRINT_OPERAND): New codes C and N for outputting conditions, | |
8669 | either forward or reversed. Also F for reversed floating. | |
8670 | ||
8671 | * jump.c (delete_for_peephole): New function to delete range of insns. | |
8672 | * genpeep.c (gen_peephole): Output code to use this. | |
8673 | ||
8674 | * Makefile (install): Fix typo, had $${name} for $${file}. | |
8675 | ||
8676 | Tue Jan 17 00:00:12 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8677 | ||
8678 | * i386.md (ashlsi3): Use addl or leal for special cases. | |
8679 | ||
8680 | * c-decl.c (grokdeclarator): Make a non-global VAR_DECL public | |
8681 | if it is external. | |
8682 | ||
8683 | * masm386.c: Clean up formatting. | |
8684 | ||
8685 | * cse.c (fold_rtx): Typo simplifying x|0 or x^0 | |
8686 | when the 0 comes second. | |
8687 | ||
8688 | * expmed.c (store_fixed_bit_field): For halfwords, verify that | |
8689 | the field fits in an *aligned* halfword. | |
8690 | (extract_fixed_bit_field): likewise. | |
8691 | ||
8692 | * expmed.c (store_split_bit_field): New arg align, passed in from | |
8693 | store_fixed_bit_field and passed back to it. | |
8694 | (extract_split_bit_field): likewise. | |
8695 | ||
8696 | * expr.c: Reinsert changes from Jan 2, mysteriously deleted Jan 3. | |
8697 | Also changes from Dec 23, Dec 28 and Dec 29. | |
8698 | ||
8699 | * tm-i386.h: Likewise for changes from Dec 30. | |
8700 | ||
8701 | * c-typeck.c (build_component_ref): If field's type is error-mark, | |
8702 | return an error-mark. | |
8703 | ||
8704 | Mon Jan 16 14:16:54 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8705 | ||
8706 | * genpeep.c (main): Output code to exit early if insn is followed | |
8707 | by a barrier. | |
8708 | (gen_peephole): Reject barriers just like labels. | |
8709 | ||
8710 | * stmt.c (do_jump_if_equal): New arg UNSIGNEDP, for emit_cmp_insn. | |
8711 | Caller changed. Now static. | |
8712 | ||
8713 | * final.c (final): Set INSN_DELETED_P in insns when output. | |
8714 | ||
8715 | * final.c (final): Re-set BODY if peephole does anything. | |
8716 | ||
8717 | * c-decl.c (grokparms): Ignore anything but PARM_DECLs in the list. | |
8718 | (store_parm_decls): If we had a prototype, separate out anything other | |
8719 | than a PARM_DECL declared in it, and pushdecl those at the end, | |
8720 | after DECL_ARGUMENTS is set. | |
8721 | ||
8722 | * stmt.c (expand_end_case): Do stack adjusts after computing index. | |
8723 | ||
8724 | * expr.c (store_one_arg): Handle padding for case of BLKmode | |
8725 | for which space was preallocated. | |
8726 | ||
8727 | * integrate.c (copy_rtx_and_substitute): When copying asm insn, | |
8728 | preserve sharing of the input-operand vectors. | |
8729 | (expand_inline_function): Clear {orig,copy}_asm_operands_vector | |
8730 | to make that mechanism work. | |
8731 | (save_for_inline, copy_for_inline): Likewise. | |
8732 | ||
8733 | * stmt.c (expand_asm_operands): Reject `+' in constraints. | |
8734 | Every output constraint requires `='; inputs reject it. | |
8735 | ||
8736 | * stmt.c (expand_function_end): Arg to fixup_gotos was missing. | |
8737 | ||
8738 | Sun Jan 15 00:28:23 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8739 | ||
8740 | * cccp.c, gcc.c (main): Handle SIGPIPE. | |
8741 | (pipe_closed): New fn; report suitable fatal error. | |
8742 | ||
8743 | * loop.c (loop_optimize): Initialize moved_once. | |
8744 | ||
8745 | * gcc.c (do_spec): Don't call `execute' if value != 0. | |
8746 | Delete redundant second call to do_spec_1. | |
8747 | ||
8748 | * toplev.c (compile_file): Make declared-but-not-defined warnings | |
8749 | only if -Wunused. | |
8750 | ||
8751 | * stmt.c (emit_case_nodes): Fix typo setting gen_ble_pat. | |
8752 | ||
8753 | * tm-sparc.h ({U,}MODSI3_LIBCALL): Name was wrong. | |
8754 | ||
8755 | * gcc.c (env_exec_prefix refs): Don't try to open via it if it's null. | |
8756 | ||
8757 | * output-sparc.c (output_store, output_load_{fixed,floating}): | |
8758 | Fixed confusions between the mem ref and its address. | |
8759 | ||
8760 | * cse.c (canon_hash): global_regs has entries only for hard regs. | |
8761 | * flow.c (insn_dead_p, mark_set_p, mark_used_regs): Likewise. | |
8762 | ||
8763 | * cse.c (fold_rtx): More simplifications for MULT, IOR, AND, XOR | |
8764 | DIV and shifts with one arg 0 or 1. | |
8765 | ||
8766 | Sat Jan 14 11:41:11 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8767 | ||
8768 | * c-typeck.c (build_array_ref): If pedantic, check for regdecl arrays. | |
8769 | ||
8770 | * fixincludes: Make all subdirs in advance, so no need for `dirname'. | |
8771 | ||
8772 | * genpeep.c (gen_peephole): Delete code to increment LABEL_NUSES; | |
8773 | instead, clear JUMP_LABEL for any jumps being deleted. | |
8774 | No need to test INSN1 for being a label, since not called then. | |
8775 | [If any of the matched insns is a JUMP_INSN, set want_jump, | |
8776 | and in that case make the matched peephole a JUMP_INSN itself.] | |
8777 | That's in an #if 0 now; it's good in jump, but not in final. | |
8778 | ||
8779 | * jump.c (jump_optimize): Don't do peepholes here. | |
8780 | * final.c (final): Do them here. | |
8781 | ||
8782 | * jump.c (jump_optimize): In optimizing `if (foo) bar; else break;', | |
8783 | don't try to invert anything but a standard-looking conditional jump. | |
8784 | ||
8785 | * jump.c (jump_optimize): Do peepholes on ALL BUT the first pass. | |
8786 | ||
8787 | * gcc.c (env_exec_prefix): New var used like user_exec_prefix | |
8788 | but set from envvar GCC_EXEC_PREFIX. | |
8789 | ||
8790 | Fri Jan 13 13:21:59 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8791 | ||
8792 | * genpeep.c (gen_peephole): Test INSN1 for a label at the very start, | |
8793 | then test following insns at the end of the loop. | |
8794 | ||
8795 | * sparc.md (call recognizers): do CC_STATUS_INIT, for %g1. | |
8796 | ||
8797 | Thu Jan 12 02:13:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8798 | ||
8799 | * varasm.c (make_decl_rtl): Recognize more error cases for reg vars: | |
8800 | BLKmode, or initializer given. | |
8801 | Distinguisn missing asm from invalid name. | |
8802 | ||
8803 | * expr.c (expand_call): Never return 0; return const0_rtx instead. | |
8804 | This makes expand_expr more uniform. | |
8805 | ||
8806 | * c-decl.c (grokparms): For ptr to incomplete type, just warn; | |
8807 | don't change the parm's type. | |
8808 | ||
8809 | * stmt.c (expand_return): Set RETVAL_RHS so as to recognize | |
8810 | tail-recursive fcn returning void. | |
8811 | Unconditionally test value of expand_expr for being a REG. | |
8812 | ||
8813 | * reload.c (find_reloads): Don't process insns that have | |
8814 | no constraint alternatives. No more need for have_constraints. | |
8815 | ||
8816 | * recog.c (constrain_operands): New local var nalternatives. | |
8817 | Don't bother checking the insn if nalternatives is 0. | |
8818 | ||
8819 | Wed Jan 11 01:27:48 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8820 | ||
8821 | * Implement global register decls. | |
8822 | ||
8823 | * varasm.c (make_decl_rtl): Handle global register vars. | |
8824 | (make_function_rtl): Set function_defined: after 1st function dfn. | |
8825 | (assemble_variable): Ignore global register vars. | |
8826 | ||
8827 | * c-decl.c (grokdeclarator): Don't reject global register decls. | |
8828 | (builtin_function): Use make_decl_rtl, not make_function_rtl, | |
8829 | to avoid setting function_defined. | |
8830 | ||
8831 | * regclass.c (init_reg_class{,_1}): Init and process global_regs. | |
8832 | They are fixed, and call-clobbered. | |
8833 | ||
8834 | * flow.c (insn_dead_p): Storing one of global_regs is never dead. | |
8835 | (mark_used_regs, mark_set_1): A global reg is never dead. | |
8836 | ||
8837 | * cse.c (canon_hash): Consider global regs volatile. | |
8838 | ||
8839 | ||
8840 | * expr.c (do_jump): Know how to invert jumps which are sequences. | |
8841 | ||
8842 | * dbxout.c, symout.c, final.c: On USG, use our own stab.h. | |
8843 | ||
8844 | * tm-i386gas.h: New file for GAS on sysV (with DBX debugging info). | |
8845 | ||
8846 | * m68k.md (bfchg and bfins patterns): Make # alternatives uniform. | |
8847 | * alliant.md: Likewise; also in movdf patterns. | |
8848 | ||
8849 | * genoutput.c (output_epilogue): Spurious `break' disabled | |
8850 | error check for mismatched # of alternatives. | |
8851 | (output_epilogue, scan_operands): Errors in input are not fatal. | |
8852 | ||
8853 | * flow.c (regno_uninitialized): Avoid crash if no basic blocks. | |
8854 | ||
8855 | * sparc.md (move insns): Delete special patterns that handled | |
8856 | symbolic constant addresses. The main move patterns now do this. | |
8857 | * output-sparc.c (output_store, output_load_{fixed,floating}): | |
8858 | Subroutines to do the work for this; has the code from those | |
8859 | special patterns. Also fixed bugs in testing against cc_status.mdep. | |
8860 | ||
8861 | * output-sparc.c (output_delay_insn): Clear the CC status. | |
8862 | This is necessary for %g1 in the case of a call insn. | |
8863 | ||
8864 | * tm-i386.h (REG_CLASS_CONTENTS): INDEX_REGS is now all but ESP. | |
8865 | (REGNO_REG_CLASS): Corresponding change. | |
8866 | (REG_CLASS_FROM_LETTER): Eliminate `x' letter since not used. | |
8867 | ||
8868 | * optabs.c (emit_cmp_insn): New arg ALIGN, used for BLKmode. | |
8869 | All callers changed. | |
8870 | Pass alignment (as rtx) as 4th arg to cmpstr gen functions. | |
8871 | Use cmpstrhi if available. | |
8872 | * expr.c (compare): Only this call passes a nonzero ALIGN. | |
8873 | ||
8874 | * expr.c (emit_push_insn, emit_block_move): Pass alignment (as rtx) | |
8875 | as 4th arg to movstr gen functions. | |
8876 | ||
8877 | Tue Jan 10 23:43:05 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8878 | ||
8879 | * stor-layout.c (layout_type): Use BLKmode, if a struct isn't | |
8880 | aligned well enough for a scalar mode. | |
8881 | ||
8882 | * expr.c (expand_expr): For static CONSTRUCTOR, ensure memory | |
8883 | address is made valid. | |
8884 | ||
8885 | * genpeep.c (match_rtx): For MATCH_OPERATOR, set max_opno, n_operands. | |
8886 | ||
8887 | Mon Jan 9 17:07:56 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8888 | ||
8889 | * varasm.c (output_constant): Split strings every 2000 chars. | |
8890 | ||
8891 | * stmt.c (expand_end_case): Test bkwds, handling constant switch arg. | |
8892 | ||
8893 | Fri Jan 6 09:11:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8894 | ||
8895 | * output-sparc.c (output_delay_insn): Add parens to first if test. | |
8896 | (output_move_double): Turn addr for `sethi' into MEM for %m. | |
8897 | ||
8898 | * c-typeck.c (convert_for_assignment): move test for ERROR_MARK. | |
8899 | ||
8900 | * c-parse.y (unary_expr): Allow cast_expr as arg of unary op. | |
8901 | ||
8902 | * stmt.c (expand_decl): Don't abort if FUNCTION_DECL lacks rtl; | |
8903 | assemble_variable is called after this. | |
8904 | ||
8905 | * c-parse.y (primary -> identifier): Separate case for undeclared | |
8906 | identifier outside of functions; avoids confusing error msgs. | |
8907 | ||
8908 | Thu Jan 5 01:24:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8909 | ||
8910 | * Makefile (install): Ignore errors in all `if' commands. | |
8911 | Create $(libdir) if nec. | |
8912 | ||
8913 | * Makefile (insn-*.[ch]): Put in empty commands. May help Ultrix Make. | |
8914 | ||
8915 | * stmt.c (emit_case_nodes): New arg UNSIGNEDP says do unsigned jumps. | |
8916 | Arg INDEX is an rtx, not a tree. | |
8917 | (expand_end_case): Pass that arg. | |
8918 | (node_has_{low,high}_bound): check for overflow, avoid confusion. | |
8919 | ||
8920 | Wed Jan 4 02:24:21 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8921 | ||
8922 | * sparc.md (movdi, movdf): Use `&' constraint when loading reg from; | |
8923 | otherwise can lose on (set (reg X) (mem (plus (reg X) (reg X+1)))). | |
8924 | ||
8925 | * expr.c (emit_push_insn): For memory scalar partially going in regs, | |
8926 | copy each word to reg before pushing. Avoids memory-to-memory move. | |
8927 | Make the displaced address valid. | |
8928 | Also delete unfinished STACK_OFFSET variable. | |
8929 | ||
8930 | * c-parse.y (check_newline): Read just one #-directive and return. | |
8931 | This prevents lossage when toplev.c calls it to get the main input file | |
8932 | name, and it gets a following #ident as well. | |
8933 | ||
8934 | * c-decl.c (lang_decode_option): Set warn_cast_qual for -Wcast-qual. | |
8935 | * c-typeck.c (build_c_cast): Issue some warnings if set. | |
8936 | ||
8937 | * tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Missing `;'. | |
8938 | ||
8939 | Tue Jan 3 18:07:31 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8940 | ||
8941 | * expr.c (emit_library_call): Do force_operand on each operand | |
8942 | if it isn't a REG, MEM or constant. | |
8943 | Do this, or mode conversions, earlier, before loading any hard regs. | |
8944 | ||
8945 | * m68k.md (addsi3) [SGS]: Put a zero displacement in the `lea'. | |
8946 | ||
8947 | * c-typeck.c (default_conversion): Don't lose `const' or `volatile' | |
8948 | when converting array type to pointer. | |
8949 | ||
8950 | Mon Jan 2 01:18:01 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8951 | ||
8952 | * expmed.c (store_bit_field, store_fixed_bit_field): New arg, | |
8953 | alignment in bytes the structure is known to have. | |
8954 | (store_fixed_bit_field): Handle working in halfwords, | |
8955 | in case the pointer isn't known to have fullword alignment. | |
8956 | * expmed.c (extract_bit_field, extract_fixed_bit_field): likewise. | |
8957 | (extract_bit_field): fix unsignedp arg to extract_fixed_bit_field. | |
8958 | * expr.c (store_field): New arg, passed to {store,extract}_bit_field | |
8959 | (expand_assignment, store_constructor): Pass that arg. | |
8960 | (expand_expr): Pass new arg to extract_bit_field. | |
8961 | ||
8962 | * m68k.md (casesi_2 recognizer): Offset always 6 for 3b1. | |
8963 | ||
8964 | * c-typeck.c (convert_for_assignment): Strip from rhs no-op NOP_EXPRs | |
8965 | put on by build_c_cast (to make the result not an lvalue). | |
8966 | (build_modify_expr, build_compound_expr): likewise. | |
8967 | (build_conditional_expr): likewise. | |
8968 | (actualparameterlist, build_function_call): likewise. | |
8969 | (default_conversion, truthvalue_conversion): likewise. | |
8970 | ||
8971 | * loop.c (move_movables): If reg has moved out of one loop, | |
8972 | divide `savings' by 2. | |
8973 | ||
8974 | Sun Jan 1 03:00:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
8975 | ||
8976 | * c-typeck.c (truthvalue_conversion): Distribute the conversion | |
8977 | into the arms of a COND_EXPR. | |
8978 | ||
8979 | * cse.c (fold_rtx): Don't fold a MINUS with VOIDmode | |
8980 | into a symbolic constant--it's incorrect. | |
8981 | ||
8982 | * cse.c (cse_insn): If SRC is a subreg with known value, simplify it. | |
8983 | ||
8984 | * integrate.c (copy_rtx_and_substitute): Allow a ref to a part of | |
8985 | MEM parm whose actual parm is a reg, provided it refs | |
8986 | the low part of the MEM. | |
8987 | (function_cannot_inline_p): Don't inline functions which have | |
8988 | aggregate parameters and take their addresses. This could produce | |
8989 | refs to non-low-parts, which copy_rtx_and_substitute can't handle. | |
8990 | ||
8991 | * c-typeck.c (build_modify_expr): If lhs is COND_EXPR, | |
8992 | make a COMPOUND_EXPR to ensure the rhs is computed before the branch. | |
8993 | ||
8994 | * Implement -pipe. | |
8995 | * gcc.c (do_spec_1): `|' is now a special delimiter | |
8996 | which goes in the argbuf. | |
8997 | When a newline is preceded by a `|', delete it if no -pipe. | |
8998 | Otherwise, don't execute yet, and keep scanning. | |
8999 | (do_spec): At end, if we have stuff with no newline, execute it. | |
9000 | (handle_braces): Implement %{|foo:...}. | |
9001 | (execute): If argbuf contains some `|'s, run several processes | |
9002 | and pipe them together. | |
9003 | (pexecute): new subroutine to make one of the processes. | |
9004 | (find_exec_file): new fn to search for program to execute. | |
9005 | (record_temp_file): new arg FAIL_ONLY. | |
9006 | (store_arg): 2nd arg == 3 means delete file on failure. | |
9007 | This is used for output files. | |
9008 | (delete_temp_files): delete certain files only if fail. | |
9009 | ||
9010 | * cccp.c (include_defaults): /usr/include before /usr/local/include. | |
9011 | ||
9012 | * recog.c (asm_noperands): 1-off in loop checking CLOBBERS | |
9013 | when no output operands and PARALLEL. | |
9014 | ||
9015 | * expmed.c (negate_rtx): Sign-extend the high bits rather than clear. | |
9016 | ||
9017 | * cse.c (fold_rtx): fold negation of real values. | |
9018 | (fold_cc0): fold comparisons on real values. | |
9019 | ||
9020 | * Makefile (install): Use $(INSTALL) for gcc.1 and files in USER_H. | |
9021 | ||
9022 | * Handle floating-point problems for cross-compilation. | |
9023 | ||
9024 | * real.h (CONST_DOUBLE_LOW, etc.): new macros to access CONST_DOUBLE. | |
9025 | * varasm.c (immed_double_const, decode_rtx_const): Use these. | |
9026 | ({force,clear}_const_double_mem): Likewise. | |
9027 | * output-*.c (output_move_double): Use these. | |
9028 | * output-m68k.c (standard_{68881,sun_fpa}_constant_p): Likewise. | |
9029 | * tm-*.h (PRINT_OPERAND): Use these. | |
9030 | * output-i386.c (print_operand): Use these. | |
9031 | * final.c (output_addr_const): Likewise. | |
9032 | * emit-rtl.c (gen_rtx): Delete special code for CONST_DOUBLE. | |
9033 | ||
9034 | * real.h (union real_extract): Portable type for storing real as ints. | |
9035 | * varasm.c (immed_double_const, decode_rtx_const): Use these. | |
9036 | ||
9037 | * varasm.c (immed_real_const_1, decode_rtx_const): | |
9038 | Don't assume REAL_VALUE_TYPE is 2 ints long. | |
9039 | * emit-rtl.c (init_emit_once): Likewise. | |
9040 | ||
9041 | * real.h (REAL_VALUE_TYPE): Define as `double' if not defined. | |
9042 | (REAL_IS_NOT_DOUBLE): Define this if default REAL_VALUE_TYPE not used. | |
9043 | (REAL_VALUES_EQUAL, REAL_VALUES_LESS): Define, if not already defined. | |
9044 | (REAL_VALUE_LDEXP, REAL_VALUE_ATOF): Likewise. | |
9045 | * tree.h (struct tree_real_cst): Use REAL_VALUE_TYPE for the value. | |
9046 | ||
9047 | * rtl.c (init_rtl): Increase length of CONST_DOUBLE if REAL_VALUE_TYPE | |
9048 | needs more space. Change the rtx_format element to match. | |
9049 | * varasm.c (immed_real_const_1): 1st arg now has REAL_VALUE_TYPE. | |
9050 | (force_const_mem): Assume a CONST_DOUBLE contains REAL_VALUE_TYPE. | |
9051 | * emit-rtl.c (init_emit_once): Likewise. | |
9052 | And use REAL_VALUE_ATOF to get a floating zero. | |
9053 | * optabs.c (expand_float): Use REAL_VALUE_TYPE, REAL_VALUE_LDEXP. | |
9054 | * c-parse.y (yylex): Likewise, and use REAL_VALUE_ATOF. | |
9055 | * fold-const.c (split_tree): Don't accept REAL_CSTs. | |
9056 | (combine, fold_convert, fold): Use REAL_ARITHMETIC if defined; | |
9057 | else don't fold reals if they are not doubles. | |
9058 | * tree.c (build_real_from_int_cst): Likewise. | |
9059 | * print-tree.c (dump) [REAL_IS_NOT_DOUBLE]: output float value | |
9060 | in hex, since we don't know how to do it right. | |
9061 | ||
9062 | Sat Dec 31 14:15:13 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
9063 | ||
9064 | * optabs.c (init_optabs): Handle new macros {U,}MULSI3_LIBCALL, | |
9065 | DIVSI3_LIBCALL, MODSI3_LIBCALL. | |
9066 | * tm-sparc.h: Define {,U}{MUL,DIV,MOD}SI3 to call Sun's library direct. | |
9067 | ||
9068 | * tm-sun3-nfp.h, tm-sun3-fpa.h: New files. | |
9069 | ||
9070 | Fri Dec 30 00:14:36 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
9071 | ||
9072 | * cccp.c (main): Certain envvars specify a file to write deps info to. | |
9073 | ||
9074 | * toplev.c (compile_file): Warn about undefined fns declared static. | |
9075 | ||
9076 | * m68k.md (casesi_2 recognizer) [SGS] RTX_INTEGRATED_P test backwards. | |
9077 | * tm-3b1.h (ASM_OUTPUT_CASE_LABEL): Likewise. Also missing `\'. | |
9078 | ||
9079 | * reload1.c (count_occurrences): New function. | |
9080 | (choose_reload_targets): Don't delete a reload if the same reg | |
9081 | is used elsewhere in the current insn. | |
9082 | (delete_output_reload): code split out from choose_reload_targets. | |
9083 | ||
9084 | * c-typeck.c (build_c_cast): Always put on some operator, | |
9085 | so the cast is never an lvalue for strict ANSI. | |
9086 | ||
9087 | * c-typeck.c (initializer_constant_valid_p): Don't depend on | |
9088 | distinction between NOP_EXPR and CONVERT_EXPR. | |
9089 | ||
9090 | * c-convert.c: Fns reordered; new comments. | |
9091 | ||
9092 | * fold-const.c (fold): If simplifying a NOP_EXPR within a BIT_AND_EXPR, | |
9093 | return a NOP_EXPR. | |
9094 | New var TYPE holds type of expr. | |
9095 | ||
9096 | * c-parse.y (expr_no_commas): Split off cast_expr and unary_expr, | |
9097 | to reject `sizeof (int) foo'. | |
9098 | ||
9099 | * toplev.c (main): Treat plain `-' as input filename. | |
9100 | ||
9101 | * final.c (final): If an insn's output routine returns 0, | |
9102 | it means to output the deleted compare insn immediately preceding. | |
9103 | ||
9104 | * m68k.md (branch insns): Use 0 as 3rd arg for OUTPUT_JUMP | |
9105 | rather than explicitly clearing the overflow flag. | |
9106 | ||
9107 | * tm-i386.h (OUTPUT_JUMP): Really use NO_OV; don't abort. | |
9108 | * i386.md (branch insns): Put real data (sometimes 0) in 3rd arg | |
9109 | of OUTPUT_JUMP. 0 means preceding test may not be deleted. | |
9110 | (lea pattern): Clear the cc's. | |
9111 | * output-i386.c (notice_update_cc): various arith insns set the cc's. | |
9112 | ||
9113 | Thu Dec 29 13:22:01 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
9114 | ||
9115 | * stmt.c (expand_decl_init): Do nothing for static decls. | |
9116 | ||
9117 | * reload.c (find_reloads_address{,_1}): Return 1 iff entire arg | |
9118 | was reloaded as a whole, else 0. | |
9119 | (find_reload): If find_reloads_address returns 1, don't let that MEM | |
9120 | satisfy a `>' or `<' constraint. | |
9121 | ||
9122 | * m68k.md (cmpmb): Delete special pattern, make cmpqi handle it. | |
9123 | The special pattern couldn't handle reloading the incremented register. | |
9124 | ||
9125 | * integrate.c (copy_rtx_and_substitute): Test BYTES_BIG_ENDIAN, | |
9126 | not BITS... | |
9127 | ||
9128 | * combine.c (subst): Consider big-endian correction | |
9129 | when simplifying (subreg (mem ...) ...). | |
9130 | ||
9131 | * reload.c (find_reloads): Don't crash if matching operands in `asm' | |
9132 | are both read or both write. | |
9133 | ||
9134 | * expr.c (emit_push_insn): Address for movstr must be XINNER, not X. | |
9135 | ||
9136 | * toplev.c (main): Typo parsing `-fno...'. | |
9137 | ||
9138 | Wed Dec 28 13:07:21 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
9139 | ||
9140 | * toplev.c (rest_of_compilation): `volatile' fns need jump_optimize | |
9141 | for warnings, as if -Wreturn-type. | |
9142 | * c-typeck.c (c_expand_return): Warn about `return' in a `volatile' fn. | |
9143 | * c-decl.c (finish_function): Warn if `volatile' fn can drop thru end. | |
9144 | ||
9145 | * cse.c (canon_reg): Handle nulls as subexpressions. | |
9146 | (fold_rtx, canon_hash, mention_regs, exp_equiv_p): Likewise. | |
9147 | * loop.c (invariant_p, replace_regs, replace_call_address, may_trap_p, | |
9148 | {basic,general}_induction_var): Likewise. | |
9149 | ||
9150 | * expr.c (expand_call): Handle `const' functions: | |
9151 | Local IS_CONST is 1 if function is const. | |
9152 | Attach REG_RETVAL and REG_LIBCALL notes around the call. | |
9153 | Copy fn address to register outside of those notes. | |
9154 | Likewise precompute all parms outside them. | |
9155 | ||
9156 | * expr.c (expand_call): If fn is volatile, emit barrier after the call. | |
9157 | ||
9158 | * c-decl.c (grokdeclarator): Allow function declared const or volatile. | |
9159 | ||
9160 | Sat Dec 24 18:40:12 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
9161 | ||
9162 | * integrate.c (function_cannot_inline_p): If STRUCT_VALUE_INCOMING | |
9163 | or STRUCT_VALUE is defined, can't inline functions returning BLKmode. | |
9164 | ||
9165 | Fri Dec 23 13:26:26 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
9166 | ||
9167 | * expr.c (store_constructor): Compute array's size | |
9168 | with int_size_in_bytes. | |
9169 | ||
9170 | * varasm.c (assemble_variable): If shared data, go to data section | |
9171 | before outputting an uninitialized symbol. | |
9172 | ||
9173 | * tm-sequent.h (ASM_OUTPUT_ALIGN_CODE): Missing backslash. | |
9174 | (SHARED_SECTION_ASM_OP): Macro defined. | |
9175 | * tm-seq386.h (SHARED_SECTION_ASM_OP): Macro defined. | |
9176 | ||
9177 | * c-typeck.c (c_expand_asm_operands): Warn if output op is `const'. | |
9178 | ||
9179 | * Fix problem where a stmt expr in an initialization | |
9180 | refers to the variable it is initializing. | |
9181 | * stmt.c (expand_decl_init): New fn split out from `expand_decl'. | |
9182 | * c-decl.c (finish_decl): Call that. | |
9183 | Don't call expand_decl if already done. | |
9184 | (start_decl): Call expand_decl if type is complete already. | |
9185 | ||
9186 | * Makefile (install): Typo in ranlib command. | |
9187 | ||
9188 | Thu Dec 22 15:57:12 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) | |
9189 | ||
9190 | * tree.h (tree_identifier): New field. | |
9191 | (IDENTIFIER_ERROR_LOCUS): Accessor for it. | |
9192 | * c-parse.y (primary => IDENTIFIER): | |
9193 | Undeclared variable gets one err msg per function it appears in. | |
9194 | ||
9195 | * ns32k.md (andsi3): Delete extra brace. | |
9196 | ||
9197 | * alliant.md, xm-alliant.h, tm-alliant.h, output-alliant.c: New files. | |
9198 | ||
9199 | * combine.c (SUBST, SUBST_INT): Store new field `is_int'. | |
9200 | (copy_substitutions): Don't copy an int as an rtx. | |
9201 | ||
9202 | * Makefile (INSTALL): Install gcc.1 properly. | |
9203 | ||
9204 | * tm-ns32k.h (FUNCTION_PROLOGUE, ASM_OUTPUT_ALIGN_CODE): | |
9205 | Add missing backslashes. | |
9206 | ||
9207 | See file OChangeLog. |