Use rtl macros for names of NOTEs.
[official-gcc.git] / gcc / ChangeLog
blob7b87f05b3597514243a8e19c1d8c026eb601caa9
1 Fri Aug 15 13:43:39 1997  Michael Meissner  <meissner@cygnus.com>
3         * haifa-sched.c (debug_dependencies): Use GET_NOTE_INSN_NAME to
4         print out the names of the notes.  Print out the name of the insn
5         that is not a note, and not an {,CALL_,JUMP_}INSN.
7 Wed Aug 13 01:03:37 1997  Doug Evans  <dje@canuck.cygnus.com>
9         * configure.in (haifa configury): Fix typo.
10         * configure: Regenerate.
12 Tue Aug 12 10:20:36 1997  Jeffrey A Law  (law@cygnus.com)
14         * version.c: Bump version to "gcc-3.0.0 970802 experimental".
16         * gcc.info*: Rebuilt.
18         * COPYING.g77, README.g77: New files.
19         * real.c (ereal_unto_float, ereal_unto_double): New functions.
20         * real.h (ereal_unto_float, ereal_unto_double): Declare them.
21         (REAL_VALUE_UNTO_TARGET_DOUBLE, REAL_VALUE_UNTO_TARGET_SINGLE): Define.
23 Mon Aug 11 14:50:55 1997  Jeffrey A Law  (law@cygnus.com)
25         * Integrate Haifa instruction scheduler.
26         * Makefile.in (ALL_CFLAGS): Add SCHED_CFLAGS.  Prefix all references
27         to sched with $(SCHED_CFLAGS.
28         * configure.in: Handle --enable-haifa.
29         * configure: Rebuilt.
30         * flags.h: Add new flags for haifa instruction scheduler.
31         * genattrtab.c (expand_units): For haifa, don't subtract one
32         when computing blockage.
33         * toplev.h (flag_schedule_interblock): Haifa scheduler flag.
34         (flag_schedule_speculative): Ditto.
35         (flag_schedule_speculative_load): Ditto.
36         (flag_schedule_speculative_load_dangerous): Ditto.
37         (flag_schedule_reverse_before_reload): Ditto.
38         (flag_schedule_reverse_after_reload): Ditto.
39         (flag_branch_on_count_reg): Ditto.
40         (f_options): Add Haifa switches.
41         (main): Turn off some Haifa options if appropriate macro is
42         defined.  Process Haifa switches.
43         * unroll.c (iteration_info): No longer static, since Haifa
44         scheduler uses it.
45         (unroll_loop): Inform HAIFA scheduler about loop unrolling factor.
46         * unroll.c (unroll_loop): Set loop_unroll_iter, loop_start_value.
47         * loop.h (loop_unroll_factor, loop_number): Add HAIFA decls.
48         * loop.h (loop_initial_value,loop_unroll_iter): New globals.
49         * loop.c (loop_optimize): If HAIFA is defined, allocate additional
50         storage for the Haifa scheduler.
51         (mark_loop_jump): If HAIFA defined, set LABEL_OUTSIDE_LOOP_P and
52         LABEL_NEXTREF.
53         (strength_reduce): If HAIFA and HAVE_decrement_and_branch_on_count
54         are defined, call analyze_loop_iterations and insert_bct to use
55         countdown loops.
56         (record_giv): Refine test for jumps out of loops if HAIFA is
57         defined.
58         (analyze_loop_iterations): New function to identify if we can use
59         a countdown loop.
60         (insert_bct): Insert countdown loop.
61         (instrument_loop_bct): Low level code to insert countdown loop.
62         (loop_number): Calculate UID of loop.
63         (indirect_jump_in_function_p): Return true if an indirect jump is
64         in the function.
65         (is_power_of_2): Return true if value is a power of 2.
66         (is_conditional_branch): Return true if insn is a conditional
67         jump.
68         (fix_bct_param): Process -fbct-{min,max}-N switches.
69         (check_bct_param): Return true if loop should be instrumented.
70         * loop.c (loop_initial_value,loop_unroll_iter): New globals.
71         (loop_optimize): Initialize.
72         (get_condition_for_loop): Ditto.
73         * loop.c (strength_reduce): Inside of code that uses #ifdef
74         HAVE_decrement_and_branch_on_count code, test it to make sure the
75         condition is true.
76         (instrument_loop_bct): Ditto.
77         * haifa-sched.c: New file.
78         
80         * Integrate regmove pass.
81         * Makefile.in (OBJS): Add regmove.o
82         (regmove.o): Add dependencies.
83         * flow.c (find_use_as_address): No longer static.
84         * rtl.h (find_use_as_address): Declare.
85         * toplev.c (regmove_dump, flag_regmove): Define.
86         (f_options): Add -fregmove.
87         (regmove_dump_file, regmove_time): Define.
88         (fatal_insn): Close the regmove dump file.
89         (compile_file): Initialize regmove_time; open/close the regmove dump
90         file as needed.  Print regmove time as needed.
91         (rest_of_compilation): Run regmove pass if requested, dump
92         RTL after regmove if requested.
93         (main): If -O2 or more, turn on regmove.  Handle dump switches.
94         * regmove.c: New file.
95         
96 Mon Aug 11 14:15:02 1997  Jeffrey A Law  (law@cygnus.com)
98         * Integrate tlink patch from jason@cygnus.com
99         * gcc.c (SWITCH_TAKES_ARG): Add 'V', 'B' and 'b'.
100         (process_command): Increment n_switches for them.  Don't discard
101         their args.  Validate them.
102         (main): Escape " marks when creating COLLECT_GCC_OPTIONS.
103         From Rohan Lenard.
104         (process_command): Set include_prefixes from COMPILER_PATH.
105         (main): Set COLLECT_GCC_OPTIONS sooner.
106         * confiugre.in: Link ../ld/ld.new to collect-ld rather than real-ld.
107         * tlink.c, hash.c, hash.h: New files.
108         * Makefile.in (USE_COLLECT2): Always use collect2.
109         (collect2): Depend on and link in hash.o and tlink.o.
110         (tlink.o, hash.o): Add dependencies.
112 Mon Aug 11 10:04:49 1997  Jeffrey A Law  (law@cygnus.com)
114         * Integrate alias analysis changes from jfc@mit.edu
115         * Makefile.in (OBJS): Add alias.o
116         (alias.o): Add dependencies.
117         * alias.c: New file.
118         * sched.c: Remove alias analysis code.  It lives in alias.c now.
119         (sched_analyze_2): Add new arguments to true_dependence.
120         (schedule_insns): Always call init_alias_analysis.
121         * calls.c (expand_call): Note calls to malloc, calloc, and realloc;
122         mark return value from such functions as a pointer and keep track of
123         them for alias analysis.  If a return value from a function is a
124         pointer, mark it as such.
125         * combine.c (distribute_notes): Handle REG_NOALIAS.
126         * cse.c (struct write_data): Delete.  No longer needed.
127         (invalidate): Don't call set_nonvarying_address_components anymore.
128         Use true_dependence to decide if an entry should be removed from
129         the hash table.
130         (invalidate_memory): Remove WRITES argument, simplify appropriately.
131         Fix all callers.
132         (note_mem_written): Similarly for WRITE_PTR argument.
133         (invalidate_from_clobbers): Similarly for W argument.
134         (invalidate_for_call): Remove memory elements from the hash table.
135         (refers_to_mem_p, cse_rtx_addr_varies_p): Deleted.
136         (cse_rtx_varies_p): New function.  Derived from old
137         cse_rtx_addr_varies_p.
138         (cse_insn): Remove WRITES_MEMORY and INIT variables and all references.
139         Don't call note_mem_written anymore.  Stack pushes invalidate the stack
140         pointer if PUSH_ROUNDING is defined.  No longer need to call
141         cse_rtx_addr_varies_p to decide if a MEM should be invalidated.
142         (skipped_writes_memory): Remove variable.
143         (invalidate_skipped_set): Simplify and wewrite to use invalidate_memory.
144         (invalidate_skipped_block): Simplify for new alias analysis code.
145         (cse_set_around_loop): Likewise.
146         (cse_main): Call init_alias_analysis.
147         * flags.h (flag_alias_check, flag_argument_noalias): Declare.
148         * toplev.c (flag_alias_check, flag_argument_noalias): Define.
149         (f_options): Add new alias checking arguments.
150         (main): Set flag_alias_check when optimizing.
151         * local_alloc (validate_equiv_mem_from_store): Add new arguments
152         to true_dependence.
153         (memref_referenced_p): Likewise.
154         * loop.c (NUM_STORES): Increase to 30.
155         (prescan_loop): Only non-constant calls set unknown_address_altered.
156         (invariant_p): Add new arguments to true_dependence.
157         (record_giv): Initialize unrolled and shared fields.
158         (emit_iv_add_mult): Call record_base_value as needed.
159         * loop.h (struct induction): Add unrolled and shared fields.
160         * unroll.c  (unroll_loop): Call record_base_value as needed.
161         (copy_loop_body): Likewise.
162         (final_biv_value): Likewise.
163         (final_giv_value): Likewise.
164         (find_splittable_regs): Likewise.  Only create one new pseudo
165         if we have multiple address GIVs that were combined with the same
166         dst_reg GIV.  Note when a new register is created due to unrolling.
167         * rtl.c (reg_note_name): Add REG_NOALIAS.
168         * rtl.h (enum reg_note): Similarly.
169         (rtx_varies_p, may_trap_p, side_effects_p): Declare.
170         (volatile_refs_p, volatile_insn_p, remove_note): Likewise.
171         (note_stores, refers_to_regno_p, reg_overlap_mentioned_p): Likewise.
172         (true_dependence, read_dependence, anti_dependence): Likewise.
173         (output_dependence, init_alias_analysis, end_alias_analysis): Likewise.
174         (mark_user_reg, mark_reg_pointer): Likewise.
177         * Integrate reload bugfix from Wilon which enables the PA port
178         to bootstrap again.
179         * reload1.c (reload): Sum needs for both OPADDR_ADDR and and
180         OPERAND_ADDRESS when computing how many registers an insn needs.
181         (reload_reg_free_p): OPADDR_ADDR and OPERAND_ADDRESS reloads do
182         conflict.
183         (reload_reg_free_before_p): Treat OPERAND_ADDRESS reloads just like
184         OPADDR_ADDR reload.
185         (reload_reg_reaches_end_p): For RELOAD_FOR_OPADDR_ADDR insns, registers
186         in reload_reg_use_in_op_addr do not reach the end.
187         do not reach the end.
188         (reloads_conflict): RELOAD_FOR_OPADDR_ADDR conflicts with
189         RELOAD_FOR_OPERAND_ADDRESS.
191 Sun Aug 10 12:00:20 1997  Jeffrey A Law  (law@cygnus.com)
193         * gcc3 project officially starts.