Commit Graph

2052 Commits

Author SHA1 Message Date
Richard Stallman
789d0ee515 (do_pragma): Warn if `#pragma implementation "foo.h"' is
invoked	after "foo.h" has been included.

From-SVN: r1953
1992-08-25 21:25:20 +00:00
Tom Wood
bee757e1c0 (struct attr_desc): Add unsigned_p field.
(struct function_unit_op): Add issue_delay, conflict_exp, and
	issue_exp fields.  Drop busyexp field.
	(struct function_unit): Add needs_blockage_function,
	needs_range_function, issue_delay, and max_blockage fields.  Drop
	costexp, and busy delay fields.
	(enum operator): Add POS_MINUS_OP, EQ_OP, MIN_OP, RANGE_OP.
	(operate_exp): Implement new ops.
	(make_internal_attr): Set unsigned_p based on the value of SPECIAL.
	(write_attr_get): Function is unsigned when unsigned_p is true.
	(write_attr_valueq): Write hex value of large constants in a comment.
	(simplify_by_exploding): Check for EXP having no EQ_ATTR expressions
	and for all values as the default.
	(find_and_mark_used_attributes): Add TERMS and NTERMS parameters.
	(max_attr_value): Allow IF_THEN_ELSE.
	(simplify_knowing, write_complex_function, extend_range): New
	functions.
	(gen_unit): Use local variables to name the fields.  Change the
	meaning of busy-delay to issue-delay.
	(expand_units): Compute issue_exp.  Write attributes for computing
	`<name>_unit_blockage' and `<name>_unit_blockage_range' functions.
	Compute max_blockage, and the needs_*_function values.
	(write_function_unit_info): Write blockage function and conflict cost
	functions using write_complex_function.  Write new function_unit_desc
	fields.
(expand_units): Use the normalized values of the
	unit's CONDEXP and BUSYEXP.

From-SVN: r1952
1992-08-25 20:26:02 +00:00
Tom Wood
de19227a25 (schedule_block): Add a virtual cycle counter CLOCK.
Pass CLOCK to schedule_insn.
	Compute the tail in the scheduling loop, not before it.
	Enable the stall code that advances the insn queue.
	Select the insn to schedule and block others with schedule_select.
	(adjust_priority): Renamed from launch_link.
	(schedule_insn): Renamed from launch_links.
(insn_queue): Use INSN_QUEUE_SIZE.

(insn_units, insn_blockage, insn_tick, unit_last_insn,
	unit_tick, unit_n_insns): New variables.
	(schedule_insns): Allocate and initialize insn_tick, insn_units, and
	insn_blockage.
	(insn_unit, blockage_range, clear_units, prepare_unit, schedule_unit,
	actual_hazard_this_instance, actual_hazard, potential_hazard,
	schedule_select): New functions.
	(schedule_block): Add dependencies to force insns to remain in order
	at the end of a block rather than relying on having the scheduler
	issue them in priority order.
(insn_cost): Add LINK and USED parameters.  All callers
	changed.  Supply an ADJUST_COST interface.
	(insn_cost): Make a dependence from a USE insn free.
	(priority): Clear the link cost adjustment bits.

From-SVN: r1951
1992-08-25 20:23:21 +00:00
Tom Wood
ef3fad0483 (extend_range, init_range): New functions.
(write_units): Add blockage_function, blockage_range_function,
	max_blockage and max_issue_delay fields to struct function_unit_desc.
	Drop max_busy_cost field.  Write #defines for min/max blockage,
	issue delay, multiplicity, and simultaneity and for BLOCKAGE_BITS
	and INSN_QUEUE_SIZE.
	(main): Compute the new values.

From-SVN: r1950
1992-08-25 20:22:38 +00:00
Tom Wood
c376c05b38 (LINK_COST_ZERO, LINK_COST_FREE): New macros.
From-SVN: r1949
1992-08-25 20:21:53 +00:00
Tom Wood
84ef5060e2 (type attribute, movdi movdf insns): Add loadd.
(unit attribute): Delete.
	(function units): Correct simultaneity values.  Break out
	independent units.  Add conflict matrix for the 88100 load double.

From-SVN: r1948
1992-08-25 20:21:20 +00:00
Tom Wood
af93f7bf68 (define_function_unit): Change meaning to ISSUE-DELAY.
Merge FP_MUL, FP_DIV, and FP_SQRT into one function unit.

From-SVN: r1947
1992-08-25 20:20:57 +00:00
Tom Wood
c8e18a2bc7 (define_function_unit): Change meaning to ISSUE-DELAY.
From-SVN: r1946
1992-08-25 20:19:49 +00:00
Tom Wood
f6601f3af4 entered into RCS
From-SVN: r1945
1992-08-25 20:13:49 +00:00
Tom Wood
77472c5a50 (delete_computation): Derived from delete_jump.
(delete_jump): Use delete_computation.

From-SVN: r1944
1992-08-25 19:20:27 +00:00
Richard Stallman
cdd8c058e9 (final_scan_insn): If 2 consec line notes have same line num, can omit one.
From-SVN: r1943
1992-08-25 17:43:28 +00:00
Michael Meissner
4401b31c0e Add %U to give last %u name.
From-SVN: r1942
1992-08-25 17:40:04 +00:00
Michael Meissner
ab78d4a881 Change MIPS fp to be at top of stack, instead of bottom; Fix calling mips-tfile with wrong .o file
From-SVN: r1941
1992-08-25 17:39:37 +00:00
Richard Stallman
8436fe3532 (process_command): Don't set verbose_flag if they make a
typo (e.g., `-v-E'); only when it's exactly "-v".

From-SVN: r1940
1992-08-25 03:07:57 +00:00
Richard Stallman
7d2d49af12 (build_unary_op): For ADDR_EXPR, just set TREE_CONSTANT
if staticp, but don't clear TREE_CONSTANT.

From-SVN: r1939
1992-08-24 22:13:54 +00:00
Richard Kenner
5874448344 (subst): When moving operation inside IF_THEN_ELSE, make a new rtx
instead of using SUBST due to sharing.

(simplify_comparison): Correct test for sign extension when trying to
widen comparison.

From-SVN: r1938
1992-08-24 06:48:59 -04:00
Richard Stallman
c7d2d61d20 (expand_end_bindings): Generation of NOTE_INSN_BLOCK_END
moved down so that it occurs after call to `expand_cleanups'.

From-SVN: r1937
1992-08-24 06:11:02 +00:00
Michael Meissner
7343f784c8 Do not define strcmp=__builtin_strcmp if not -fbuiltin/-fno-builtin
From-SVN: r1936
1992-08-23 20:37:12 +00:00
Richard Stallman
ecbe06a11f (__builtin_new): Cast the result of malloc.
From-SVN: r1935
1992-08-23 07:20:15 +00:00
Richard Stallman
72c8bb7f80 Fix typo in prev change.
From-SVN: r1934
1992-08-23 06:09:33 +00:00
Tom Wood
dfa09e2318 (insn_emit_once): Provide a zero constant for CC modes.
From-SVN: r1933
1992-08-22 10:44:25 +00:00
Richard Kenner
5a5064dcb3 (expand_binop): If, e.g., mulqi3 doesn't exist, try mulqihi3.
From-SVN: r1932
1992-08-21 19:21:30 -04:00
Jeff Law
2f9ba5a9a3 reorg.c (fill_simple_delay_slots): Always try to fill empty delay slots with insns from beyond the delay insn...
* reorg.c (fill_simple_delay_slots): Always try to fill empty
	delay slots with insns from beyond the delay insn, even if
	optimize_skip was attempted.
	(fill_simple_delay_slots): When filling with insns from after the
	delay insn, make sure to always account for sets and references
	in the delay insn.

From-SVN: r1931
1992-08-21 16:33:02 -06:00
Richard Stallman
415f583ec9 (print_operand): Use output_operand_error for unknown code.
From-SVN: r1930
1992-08-21 21:46:41 +00:00
Richard Stallman
48c730637d (build_conditional_expr):
Use TREE_READONLY and TREE_THIS_VOLATILE, not TYPE_...

From-SVN: r1929
1992-08-21 20:48:11 +00:00
Richard Stallman
d3b9996a98 (find_dummy_reload): Restore original RTX instead of passed IN rtx.
From-SVN: r1928
1992-08-21 17:40:27 +00:00
Richard Stallman
144499abeb (bcopy, bzero, bcmp): Remove #if VMS code--always use inline C loops.
From-SVN: r1927
1992-08-21 17:38:33 +00:00
Richard Kenner
eeb43d32db (subst): Move up test for too many restarts.
If we restart, clear OP0_MODE since we don't know it.

From-SVN: r1926
1992-08-21 07:52:57 -04:00
Richard Kenner
4d6697ca22 (FUNCTION_ARG): Don't make an EXPR_LIST if making a libcall.
From-SVN: r1925
1992-08-21 07:52:12 -04:00
Richard Stallman
af708691c4 (CC,CFLAGS,LIBS): Add commented command
variants for bootstrapping gcc-cpp and gcc-cc1 with VAXC.

From-SVN: r1924
1992-08-21 06:27:19 +00:00
Richard Stallman
98517ad1a6 (CC,CFLAGS,LIBS): Add commented command variants for bootstrapping gcc-cpp and gcc-cc1 with VAXC.
(CC,CFLAGS,LIBS): Add commented command
variants for bootstrapping gcc-cpp and gcc-cc1 with VAXC.
(alloca): Build alloca.obj from alloca.c if LIBS needs it.

From-SVN: r1923
1992-08-21 06:26:49 +00:00
Richard Stallman
e0a5c5eb0a (emit_insns_after): New function.
From-SVN: r1922
1992-08-21 06:12:24 +00:00
Richard Stallman
edc7c4ec3b (parser_build_binary_op): Replace the assignment of CLASS.
For Z<Y<Z warning, test class of CODE; don't use TREE_CODE (result).

From-SVN: r1921
1992-08-21 06:05:17 +00:00
Jeff Law
3bf1c6b55c pa.md (call_value+1): For non-dynamic calls...
* pa.md (call_value+1): For non-dynamic calls, use the "call"
	attribute, set length to 1, and fix output template to work
	properly with delay slots.

	* pa.md (address and use_call_clobbered attributes): Deleted,
	these attributes are useless.  All references deleted.
	(call define delay): Use "in_branch_delay" as the condition since
	"call" delay slots and unconditional "branch" delay slots allow the
	same type of insns.
	(in_call_delay conditional): Deleted.
	(branch define delay): Do not define an annul-if-true delay slot.
	It is useless for an unconditional branch.
	(all delay branch conditionals): Make sure "call", "dyncall", "multi",
	and "milli" insns are explicitly disallowed in delay slots.

From-SVN: r1920
1992-08-20 23:57:31 -06:00
Jeff Law
3d83d496bc pa.c (output_mul_insn): Delete nop after branch in template...
* pa.c (output_mul_insn): Delete nop after branch in template,
	conditionally emit a nop if the delay slot was not filled. (via %#)

	* pa.c (output_function_prologue): Handle profiling in a function
	without a frame pointer.

From-SVN: r1919
1992-08-20 23:52:28 -06:00
Tom Wood
5c09c899b9 (__INT_VARARGS_H): Define this to avoid trouble on DG/UX.
From-SVN: r1918
1992-08-20 23:17:53 +00:00
Richard Stallman
bc04dacb8e Move include of stdio.h before output.h.
From-SVN: r1917
1992-08-20 20:18:38 +00:00
Richard Stallman
a23b64d548 Compare enums (preds.
Compare enums (preds. codes, mem_mode)
explicitly to 0 in conditionals to work-around a VAXC bug that
disallows enum as arguments to && and || operators.

From-SVN: r1916
1992-08-20 19:35:52 +00:00
Richard Stallman
106d7d7de8 (decl of create_definition): Move forward declaration past the definition of struct macrodef.
(decl of create_definition): Move forward declaration
past the definition of struct macrodef.
(VMS_strncat): New function.

From-SVN: r1915
1992-08-20 19:34:20 +00:00
Richard Stallman
ebea352be5 (not_qsort): New function.
From-SVN: r1914
1992-08-20 19:33:41 +00:00
Richard Stallman
5ac3f0f448 Initial revision
From-SVN: r1913
1992-08-20 19:33:20 +00:00
Richard Stallman
4d7e336b7c (environ): Make declaration conditional.
(main: -g debugging setup): Get rid of \ in #if condition.

From-SVN: r1912
1992-08-20 19:32:37 +00:00
Richard Stallman
a9f5a65cd8 Initial revision
From-SVN: r1911
1992-08-20 18:49:22 +00:00
Richard Kenner
e6fe56a424 (init_expr_once): Set direct_load and direct_store if SOME hard register can be loaded or stored...
(init_expr_once): Set direct_load and direct_store if SOME hard
register can be loaded or stored; not just if the first one we pick
can be.

From-SVN: r1910
1992-08-20 08:36:23 -04:00
Richard Kenner
1b238f1c06 Fix typo.
From-SVN: r1909
1992-08-20 07:24:17 -04:00
Richard Kenner
b4aee14e5a ({load,store}_multiple): Use MATCH_PAR_DUP instead of MATCH_PARALLEL.
From-SVN: r1908
1992-08-20 07:22:26 -04:00
Richard Kenner
52c293f8cc (load_multiple): Operand 2 should be a MATCH_OPERAND.
(store_multiple_{,no_}bug): Likewise.

From-SVN: r1907
1992-08-20 07:08:00 -04:00
Richard Kenner
d2c9e30fdb (mark_set_resources): Fix two bugs in last change.
From-SVN: r1906
1992-08-20 06:05:53 -04:00
Richard Kenner
f8d97cf472 Put include of stdio.h after GCC header files (for i860-stardent-sysv4).
From-SVN: r1905
1992-08-20 05:58:18 -04:00
Richard Stallman
99effc21d4 (mulsi3): Use emit_insn on results of gen fcns. Return with DONE.
From-SVN: r1904
1992-08-20 04:53:06 +00:00