ChangeLog-gcc-4.0.txt 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688
  1. Changelog of the TIGCC-local changes to GCC (4.0 branch):
  2. 2005-09-29 Kevin Kofler <Kevin@tigcc.ticalc.org>
  3. * Rebase GCC to 4.0.2 release (identical to the 20050924 snapshot except for the missing
  4. PR 23043 fix).
  5. * version.c: Update version number.
  6. * Reapply PR 23043 fix from 20050924 snapshot:
  7. 2005-09-21 Andreas Schwab <schwab@suse.de>
  8. PR rtl-optimization/23043
  9. * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
  10. when allocating a struct unoccr.
  11. * Merge PR 24109 fix (gcc4-pr24109.patch) from Fedora GCC:
  12. 2005-09-29 Jakub Jelinek <jakub@redhat.com>
  13. * c-decl.c (c_write_global_declarations_1): If any
  14. wrapup_global_declaration_2 call returned true, restart the loop.
  15. 2005-09-24 Kevin Kofler <Kevin@tigcc.ticalc.org>
  16. * Update GCC to 4.0 20050924 (post-4.0.2 snapshot).
  17. * version.c: Update version number.
  18. * Drop patch for PR 21828 (fixed upstream):
  19. 2005-06-27 Kevin Kofler <Kevin@tigcc.ticalc.org>
  20. * toplev.c (check_global_declarations): Don't ignore BSS variables for debugging info.
  21. * Merge DWARF 2 patches/backports from Fedora GCC:
  22. - gcc4-dwarf2-pr20268.patch
  23. 2005-03-30 James E. Wilson <wilson@specifixinc.com>
  24. PR debug/20268
  25. * dwarf2out.c (add_high_low_attributes): New function, extracted from
  26. gen_lexical_block_die.
  27. (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
  28. - gcc4-dwarf2-inline-details.patch
  29. 2005-07-25 James E Wilson <wilson@specifixinc.com>
  30. * dwarf2out.c (add_call_src_coords_attributes): New.
  31. (gen_inlined_subroutine_die): Call it.
  32. (maybe_emit_file, init_file_table): Add comments.
  33. (prune_unused_types_walk_attribs): Pass DW_AT_call_file through
  34. maybe_emit_file.
  35. * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION.
  36. (expand_call_inline): Set BLOCK_SOURCE_LOCATION.
  37. * tree.h (BLOCK_SOURCE_LOCATION): New.
  38. (struct tree_block): New field locus.
  39. - gcc4-dwarf2-usefbreg.patch
  40. 2005-08-10 Jakub Jelinek <jakub@redhat.com>
  41. * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument,
  42. pass it down to loc_descriptor.
  43. (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor.
  44. (containing_function_has_frame_base): Move earlier in the file.
  45. (loc_descriptor_from_tree_1): Use containing_function_has_frame_base
  46. instead of always assuming fbreg can't be used.
  47. - gcc4-dwarf2-prefer-1elt-vartracking.patch
  48. 2005-08-10 Jakub Jelinek <jakub@redhat.com>
  49. * dwarf2out.c (add_location_or_const_value_attribute): Prefer locations
  50. gathered by var-tracking in single entry loc_list over loc_descriptor_from_tree.
  51. - gcc4-dwarf2-frame_base.patch
  52. 2005-08-22 Richard Henderson <rth@redhat.com>
  53. * function.c (ARG_POINTER_CFA_OFFSET): Move ...
  54. * defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
  55. (INCOMING_FRAME_SP_OFFSET): Moved from ...
  56. * dwarf2out.c (INCOMING_FRAME_SP_OFFSET): ... here.
  57. (struct cfa_loc): Change reg to unsigned int,
  58. rearrange for better packing.
  59. (lookup_cfa_1): Remove inline marker.
  60. (cfa_equal_p): Split out of ...
  61. (def_cfa_1): ... here. Use INVALID_REGNUM.
  62. (build_cfa_loc): Handle !cfa->indirect.
  63. (frame_pointer_cfa_offset): New.
  64. (dbx_reg_number): Assert register elimination performed; do
  65. leaf register remapping.
  66. (reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
  67. (eliminate_reg_to_offset): New.
  68. (based_loc_descr): Remove can_use_fbreg argument. Use fbreg only
  69. for verifiably local stack frame addresses; re-base to CFA.
  70. (mem_loc_descriptor): Remove can_use_fbreg argument.
  71. (concat_loc_descriptor, loc_descriptor): Likewise.
  72. (containing_function_has_frame_base): Remove.
  73. (rtl_for_decl_location): Don't do register elimination or
  74. leaf register remapping here.
  75. (secname_for_decl): Split out from ..
  76. (add_location_or_const_value_attribute): ... here.
  77. (convert_cfa_to_loc_list): New.
  78. (compute_frame_pointer_to_cfa_displacement): New.
  79. (gen_subprogram_die): Use them.
  80. * tree.h (frame_base_decl): Remove.
  81. * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
  82. (prologue_stack_adjust): Remove.
  83. (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
  84. (adjust_stack_reference): Re-base memories to arg_pointer_rtx.
  85. (set_frame_base_location): Remove.
  86. (compute_bb_dataflow, emit_notes_in_bb): Don't call it.
  87. (dump_attrs_list, dump_dataflow_set): Use string concatenation.
  88. (vt_add_function_parameters): Don't eliminate_regs.
  89. (vt_initialize): Don't create frame_base_decl.
  90. * m68k.c (m68k_regno_mode_ok): Don't reject bytes in address registers if !TARGET_COLDFIRE.
  91. 2005-07-01 Kevin Kofler <Kevin@tigcc.ticalc.org>
  92. * Update GCC to 4.0 20050630 (4.0.1-pre snapshot).
  93. * version.c: Update version number.
  94. 2005-06-27 Kevin Kofler <Kevin@tigcc.ticalc.org>
  95. * toplev.c (check_global_declarations): Don't ignore BSS variables for debugging info.
  96. 2005-06-03 Kevin Kofler <Kevin@tigcc.ticalc.org>
  97. * config/m68k/m68k-ti.h (CPP_SPEC): Define to CPP_SUBTARGET_SPEC.
  98. 2005-05-17 Kevin Kofler <Kevin@tigcc.ticalc.org>
  99. * varasm.c (default_section_type_flags_1): Make sure DECL_INITIAL (decl) is non-null before
  100. using it.
  101. (asm_emit_uninitialised): Add one more check for flag_data_sections && TARGET_NO_BSS.
  102. * config/m68k/m68k-ti.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Call data_section before
  103. emitting variables.
  104. 2005-05-07 Kevin Kofler <Kevin@tigcc.ticalc.org>
  105. * dwarf2out.c (output_call_frame_info): Don't output .eh_frame section.
  106. 2005-05-05 Kevin Kofler <Kevin@tigcc.ticalc.org>
  107. * dwarf2out.c (dwarf2out_start_source_file): Use the correct file number.
  108. 2005-04-30 Kevin Kofler <Kevin@tigcc.ticalc.org>
  109. * Update GCC to 4.0.0.
  110. * version.c: Update version number to 4.0.0-tigcc-1.
  111. 2005-04-24 Kevin Kofler <Kevin@tigcc.ticalc.org>
  112. * gcc/config/m68k/m68k.c (m68k_cannot_force_const_mem): New static function.
  113. (TARGET_CANNOT_FORCE_CONST_MEM): Define to m68k_cannot_force_const_mem.
  114. 2005-04-24 Kevin Kofler <Kevin@tigcc.ticalc.org>
  115. * gcc/varasm.c (assemble_asm): Emit .loc directive. Switch to the text section before the
  116. asm and reset the stored section afterwards.
  117. * gcc/dwarf2out.c (dwarf2out_source_line): Don't crash if no current_function_decl.
  118. 2005-04-20 Kevin Kofler <Kevin@tigcc.ticalc.org>
  119. * gcc/toplev.c (set_src_pwd): Eliminate duplicate backslashes from Win32 path names.
  120. 2005-04-09 Kevin Kofler <Kevin@tigcc.ticalc.org>
  121. * gcc/dwarf2.h (enum dwarf_attribute): Add DW_AT_regparm_location.
  122. * gcc/dwarf2out.c (dwarf_attr_name): Likewise.
  123. (gen_formal_types_die, gen_subprogram_die): Emit DW_AT_regparm_location entries for
  124. register parameters.
  125. 2005-04-07 Kevin Kofler <Kevin@tigcc.ticalc.org>
  126. * gcc/config/m68k/m68k.c (m68k_output_function_prologue): Fix off-by-4 in the unwinding
  127. information for the !frame_pointer_needed case.
  128. 2005-04-03 Kevin Kofler <Kevin@tigcc.ticalc.org>
  129. * gcc/config/m68k/m68k-ti.h (DWARF2_ASM_LINE_DEBUG_INFO): Define.
  130. 2005-04-03 Kevin Kofler <Kevin@tigcc.ticalc.org>
  131. * gcc/config/m68k/m68k-ti.h (DWARF2_DEBUGGING_INFO, DWARF2_UNWIND_INFO): Define.
  132. * gcc/dwarf2out.c (add_const_value_attribute): Don't assume sizeof(float) is divisible by
  133. 4.
  134. 2005-03-24 Kevin Kofler <Kevin@tigcc.ticalc.org>
  135. * gcc/rtlanal.c (subreg_regno_offset, subreg_offset_representable_p): Special-case
  136. GET_MODE_SIZE (xmode) == 10.
  137. 2005-03-23 Kevin Kofler <Kevin@tigcc.ticalc.org>
  138. * Update GCC to 4.0-20050319.
  139. * Revert pessimization:
  140. 2005-03-11 David Edelsohn <edelsohn@gnu.org>
  141. PR rtl-optimization/20306
  142. * expr.c (emit_move_complex): Set try_int false if mode is
  143. MODE_COMPLEX_FLOAT and mov_optab exists for inner mode. Only try
  144. emit_block_move if try_int is true.
  145. 2005-03-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  146. * Update GCC to 4.0-20050305.
  147. * gcc/c-opts.c (c_common_post_options): Don't use libcall method for complex
  148. multiplication/division, as we currently have no such libcalls.
  149. 2005-02-17 Kevin Kofler <Kevin@tigcc.ticalc.org>
  150. * gcc/c-opts.c (c_common_init_options): Enable -fms-extensions by default.
  151. (c_common_handle_option): Disable it for -pedantic and -pedantic-errors.
  152. 2005-02-17 Kevin Kofler <Kevin@tigcc.ticalc.org>
  153. * gcc/opts.c (decode_options): Change default max-inline-insn-auto for -O3 (but not -O4 or
  154. higher) from 120 to 60. Enable -finline-functions by default at -O2 and set
  155. max-inline-insn-auto to 5 (as for -Os).
  156. 2005-02-16 Kevin Kofler <Kevin@tigcc.ticalc.org>
  157. * Update GCC to 4.0-20050213.
  158. * gcc/optabs.c (expand_absneg_bit, expand_copysign_bit): Disable.
  159. * gcc/real.c (REAL_MODE_FORMAT_COMPOSITE_P): Disable.
  160. * gcc/config/smapbcd.h (REAL_MODE_FORMAT_COMPOSITE_P): Define to 0.
  161. * gcc/machmode.def (BF, XF): Move...
  162. * gcc/config/m68k/m68k-modes.def (BF, XF): ... here.
  163. 2005-02-16 Kevin Kofler <Kevin@tigcc.ticalc.org>
  164. * gcc/tree-ssa-pre.c (eliminate): Honor -fno-function-cse.
  165. * gcc/tree-ssa-dom.c (optimize_stmt): Fix overconservative -fno-function-cse call sequence
  166. test.
  167. 2005-02-16 Kevin Kofler <Kevin@tigcc.ticalc.org>
  168. * gcc/config/m68k/m68k.md (unnamed argument passing peepholes): AND the least significant
  169. word with 0xFFFF to make sure the most significant word isn't off by one if it is <0.
  170. 2005-02-16 Kevin Kofler <Kevin@tigcc.ticalc.org>
  171. * gcc/real.c (real_from_integer): Cast 10 to HOST_WIDE_INT before shifting.
  172. 2005-02-13 Kevin Kofler <Kevin@tigcc.ticalc.org>
  173. * gcc/opts.c (decode_options): Don't enable flag_delete_null_pointer_checks by default.
  174. 2005-02-13 Kevin Kofler <Kevin@tigcc.ticalc.org>
  175. * gcc/config/m68k/m68k.md (unnamed peephole2s): Check REG_P before checking REGNO.
  176. (5 new unnamed peephole2s): Optimize redundant code generated by the zero_extend
  177. splitters.
  178. 2005-02-13 Kevin Kofler <Kevin@tigcc.ticalc.org>
  179. * gcc/config/m68k/m68k.c (const_method): Don't declare static.
  180. * gcc/postreload.c (reload_cse_move2add): Prototype and use it. Don't do the
  181. strict_low_part optimization for QImode, nor for long moves which can be done using
  182. moveq.
  183. 2005-02-12 Kevin Kofler <Kevin@tigcc.ticalc.org>
  184. * gcc/c.opt (-Wpointer-sign): Disable by default.
  185. 2005-02-12 Kevin Kofler <Kevin@tigcc.ticalc.org>
  186. * libcpp/internal.h (struct cpp_reader): Remove boolean lexing_mls member.
  187. * libcpp/lex.c (parse_string): Don't set it.
  188. (_cpp_clean_string): Don't check it. Always change "\r\n" into "\n\r", not "\n\n".
  189. (create_literal): Delete \r characters based on the given string length, not on the C
  190. string length. Don't use strchr.
  191. 2005-02-12 Kevin Kofler <Kevin@tigcc.ticalc.org>
  192. * gcc/c-parse.in (stmts_and_decls): Don't error about labels at end of compound statements,
  193. only pedwarn if pedantic.
  194. * libcpp/lex.c (lex_string): Pedwarn about multi-line string literals if pedantic.
  195. * libcpp/expr.c (cpp_classify_number): Pedwarn about binary (0b...) constants if pedantic.
  196. 2005-02-11 Kevin Kofler <Kevin@tigcc.ticalc.org>
  197. * gcc/config/m68k.md (unnamed peephole2s): Fix "constraints not supported in
  198. define_peephole2" warnings. Don't optimize a push into a move for operands in the range
  199. for a moveq. Use a pea or moveq instead depending on whether a stack adjust is needed
  200. anyway or not. New unnamed peephole2 for the moveq case.
  201. (unnamed peephole for stack adjust + stack push): Don't misoptimize a push into a move
  202. for operands in the range for a pea if a stack adjustment is needed anyway.
  203. 2005-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  204. * gcc/real.c: Don't include math.h and setjmp.h.
  205. (bcdpadd1ulp): Take parameter by reference, don't return it.
  206. (bcdppadd, real_value_dtof, real_from_integer): Update calls to bcdpadd1ulp.
  207. (real_value_dtof): Handle overflow and underflow.
  208. (struct arbprec_decimal): New structure (arbitrary precision decimal float).
  209. (arbprec_pack, arbprec_mul2, arbprec_div2, arbprec_mul16, arbprec_div16, arbprec_add,
  210. arbprec_add_n_times, arbprec_to_bcd): New static functions to handle arbprec_decimal
  211. objects.
  212. (real_value_htof): Use them. Don't use finite, sprintf, real_value_dtof. Remove
  213. unnecessary lvalue cast.
  214. 2005-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  215. * gcc/config/m68k.md (pushqi1_imm, pushqi1_reg, pushqi1_mem): New expanders for byte
  216. pushes.
  217. (pushqi1): Use them. Original code moved to pushqi1_mem.
  218. * gcc/config/m68k.md (unnamed define_peephole): New peephole to optimize constant argument
  219. passing after a stack adjustment (bundle 2 immediate word pushes to the stack into 1
  220. immediate longword push). Recognizes the pattern generated by my define_peephole2.
  221. 2005-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  222. * gcc/config/m68k.md (unnamed peephole2): Fix copy&paste error.
  223. * gcc/fold-const.c (real_uzerop): Fix another copy&paste error.
  224. 2005-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  225. * gcc/simplify-rtx.c (simplify_immed_subreg): Fix use of undefined behavior (vp incremented
  226. twice without a sequence point in-between).
  227. 2005-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  228. Implement correct handling of 3-sign zeros (POSITIVE_ZERO, NEGATIVE_ZERO and
  229. UNSIGNED_ZERO):
  230. * gcc/combine.c (combine_simplify_rtx): Don't optimize x-0 to x if HONOR_SIGNED_ZEROS, even
  231. if !HONOR_SIGN_DEPENDENT_ROUNDING.
  232. * gcc/fold-const.c (fold_real_zero_addition_p): Likewise.
  233. * gcc/simplify-rtx.c (simplify_binary_operation): Likewise.
  234. * gcc/fold-const.c (real_uzerop): New static function. Tests tree for UNSIGNED_ZERO.
  235. (fold): Allow folding UNSIGNED_ZERO*x to UNSIGNED_ZERO if -ffinite-math-only.
  236. (fold_binary_to_constant): Likewise.
  237. * gcc/simplify-rtx.c (simplify_binary_operation): Likewise.
  238. * gcc/simplify-rtx.c (simplify_unary_operation): Always allow simplifying -(X-Y) into Y-X,
  239. -(A+C) into -C-A and -(A+B) into -A-B, independently of HONOR_SIGNED_ZEROS.
  240. 2005-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  241. * gcc/config/m68k.md (4 new unnamed peephole2s): Optimize lea (1,%an),%am;
  242. move.w foo,-(%am), m!=7 into move.l %an,%am; move.b foo,(%an). Optimize
  243. lea (x,%an),%am; move.l foo,-(%am), x!=4, x>=-0x7ffc into lea (x-4,%an),%am;
  244. move.l foo,(%am). Optimize lea (x,%an),%am; move.w foo,-(%am), x!=2, x>=-0x7ffe into
  245. lea (x-2,%an),%am; move.w foo,(%am). Optimize lea (x,%an),%am; move.b foo,-(%am), m!=7,
  246. x!=1, x>=-0x7fff into lea (x-1,%an),%am; move.b foo,(%am).
  247. 2005-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  248. * gcc/tree.c (initializer_zerop): Don't return 1 for UNSIGNED_ZERO.
  249. 2005-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  250. * gcc/config/m68k.md (2 new unnamed peephole2s): Optimize lea (4,%an),%am;
  251. move.l foo,-(%am) into move.l %an,%am; move.l foo,(%an). Optimize lea (2,%an),%am;
  252. move.w foo,-(%am) into move.l %an,%am; move.w foo,(%an).
  253. 2005-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  254. * gcc/real.c (bcdadd): Return NAN instead of UNSIGNED_INF if adding 2 infinities with
  255. different sign, or UNSIGNED_INF+UNSIGNED_INF.
  256. 2005-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  257. * gcc/c-pretty-print.c (pp_c_expression): Add support for statement expressions (BIND_EXPR,
  258. STATEMENT_LIST).
  259. 2005-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  260. * gcc/config/m68k.md (zero_extendhisi2, zero_extendqisi2): Mark data register earlyclobber
  261. for memory operands in order to avoid inefficient andi.l code.
  262. 2005-02-10 Kevin Kofler <Kevin@tigcc.ticalc.org>
  263. * gcc/config/m68k.c (m68k_rtx_costs): Decrease cost of longword shifts for speed
  264. optimization.
  265. 2005-02-09 Kevin Kofler <Kevin@tigcc.ticalc.org>
  266. * gcc/config/smapbcd.h (REAL_VALUE_TO_STRING): Don't output trailing \n. Handle special
  267. cases properly. Output leading digit before the decimal point.
  268. 2005-02-09 Kevin Kofler <Kevin@tigcc.ticalc.org>
  269. * gcc/config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM
  270. unconditionally.
  271. * gcc/config/m68k/m68k.c (m68k_output_pic_call): Use jbsr instead of bsr for _ROM_CALL_...
  272. and _RAM_CALL_...
  273. 2005-02-08 Kevin Kofler <Kevin@tigcc.ticalc.org>
  274. * gcc/config/smapbcd.h (REAL_VALUES_EQUAL): Use !REAL_VALUE_ISNANUINF, not
  275. REAL_VALUE_ISFINITE.
  276. 2005-02-08 Kevin Kofler <Kevin@tigcc.ticalc.org>
  277. * gcc/optabs.c (expand_float): Reenable erroneously #if 0'ed libcall code.
  278. (init_optabs): Add missing ufloat initialization.
  279. 2005-02-08 Kevin Kofler <Kevin@tigcc.ticalc.org>
  280. * gcc/real.h (real_value_dtof): Round correctly.
  281. 2005-02-08 Kevin Kofler <Kevin@tigcc.ticalc.org>
  282. * gcc/real.h (real_from_string, real_from_string2): Enable prototypes.
  283. * gcc/config/smapbcd.h (REAL_VALUE_ATOF): Use real_from_string2, not REAL_VALUE_DTOF and
  284. REAL_VALUE_HTOF.
  285. (REAL_VALUE_DTOF, REAL_VALUE_HTOF): Delete. Move code to...
  286. Don't include math.h.
  287. * gcc/real.c (real_value_dtof, real_value_htof): ... here. New static functions. Remove
  288. unnecessary lvalue cast from the REAL_VALUE_DTOF code.
  289. (real_from_string): Enable. Implement using real_value_dtof and real_value_htof.
  290. (real_from_string2): Enable.
  291. Include math.h.
  292. * Revert:
  293. 2002-12-26 Kevin Kofler <Kevin@tigcc.ticalc.org>
  294. * c-lex.c (interpret_float): Don't use real_from_string, real_convert. Use
  295. REAL_VALUE_ATOF instead.
  296. 2005-02-08 Kevin Kofler <Kevin@tigcc.ticalc.org>
  297. * gcc/real.c (ereal_from_int, ereal_from_uint, REAL_DEBUG_INFO, REAL_DEBUG_SPRINTF):
  298. Delete.
  299. (real_from_integer): Implement from scratch.
  300. * gcc/real.h (ereal_from_int, ereal_from_uint): Delete prototypes.
  301. (real_from_integer): Enable prototype.
  302. * gcc/config/smapbcd.h (REAL_FROM_INT, REAL_FROM_UINT): Use real_from_integer, not
  303. ereal_from_int and ereal_from_uint.
  304. (real_from_integer): Don't define as a macro.
  305. * gcc/fold-const.c (fold_convert_const_int_from_real): Reenable overflow checks.
  306. 2005-02-08 Kevin Kofler <Kevin@tigcc.ticalc.org>
  307. * gcc/real.c (ereal_to_int): Delete.
  308. (real_to_integer2): Implement from scratch.
  309. * gcc/real.h (ereal_to_int): Delete prototype.
  310. (real_to_integer2): Enable prototype.
  311. * gcc/config/smapbcd.h (REAL_TO_INT): Use real_to_integer2, not ereal_to_int.
  312. 2005-02-08 Kevin Kofler <Kevin@tigcc.ticalc.org>
  313. * gcc/fold-const.c (fold_convert_const_int_from_real): Enable support for FIX_TRUNC_EXPR,
  314. don't call real_trunc (let REAL_VALUE_TO_INT handle it), use REAL_VALUE_ISNANUINF, not
  315. REAL_VALUE_ISNAN. Disable overflow checks for now.
  316. (fold): Use REAL_VALUE_ISNANUINF, not REAL_VALUE_ISNAN.
  317. * gcc/simplify-rtx.c (simplify_unary_operation): Likewise.
  318. (simplify_const_relational_operation): Likewise.
  319. 2005-02-08 Kevin Kofler <Kevin@tigcc.ticalc.org>
  320. * gcc/m68k/m68k.c (m68k_init_cumulative_args): Use register calling convention for local
  321. functions when possible. Partially copied from i386.c. Add fndecl parameter.
  322. (amigaos_init_cumulative_args): Add fndecl parameter. Pass it to
  323. m68k_init_cumulative_args.
  324. * gcc/m68k/m68k.h (INIT_CUMULATIVE_ARGS): Pass FNDECL to amigaos_init_cumulative_args.
  325. * gcc/m68k/m68k-protos.h (amigaos_init_cumulative_args): Add fndecl parameter to prototype.
  326. 2005-02-08 Kevin Kofler <Kevin@tigcc.ticalc.org>
  327. * gcc/m68k/m68k.c (m68k_save_reg, m68k_output_function_prologue): Handle
  328. OPTIMIZE_ROM_CALLS (save/restore %a5, load jump table).
  329. 2005-02-07 Kevin Kofler <Kevin@tigcc.ticalc.org>
  330. * gcc/m68k/m68k.md (unnamed define_peephole): New peephole to optimize constant argument
  331. passing (bundle 2 immediate word pushes to the stack into 1 immediate longword push).
  332. 2005-02-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  333. * gcc/m68k/m68k-ti.c (m68k_output_function_epilogue): Don't output junk nops for barriers.
  334. * gcc/m68k/m68k-ti.h (CAN_DEBUG_WITHOUT_FP): Define.
  335. 2005-02-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  336. * gcc/c-decl.c (build_compound_literal): New method for -fglobal-compound-literals.
  337. * gcc/c-typeck.c (default_function_array_conversion, build_unary_op): Revert
  338. flag_global_compound_literals hacks.
  339. * gcc/varasm.c (default_selection_section): Disable compound literal handling.
  340. (assemble_variable): Always emit mergeable compound literals into their own sections.
  341. (default_section_type_flags1): Add compound literal handling.
  342. 2005-02-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  343. * gcc/gimplify.c (gimplify_call_expr): Switch order of gimplification if -fno-function-cse.
  344. * gcc/cfgexpand.c (expand_gimple_basic_block): Restore function calls if -fno-function-cse.
  345. * gcc/tree-ssa-dom.c (optimize_stmt): Honor -fno-function-cse.
  346. 2005-02-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  347. * gcc/builtins.def (BUILT_IN_ER_THROW): New.
  348. * gcc/builtins.c (expand_builtin_er_throw): New.
  349. (expand_builtin): Call it.
  350. 2005-02-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  351. * Revert (parts of larger patches, changelog entries pruned accordingly):
  352. 2004-11-09 Kazu Hirata <kazu@cs.umass.edu>
  353. * fold-const.c (pedantic_non_lvalue): Make it static.
  354. * tree.h: Remove the corresponding prototype.
  355. 2004-01-17 Joseph S. Myers <jsm@polyomino.org.uk>
  356. * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
  357. true unconditionally.
  358. * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
  359. Remove.
  360. (build_unary_op, build_modify_expr): Don't handle extended
  361. lvalues.
  362. (build_conditional_expr): Call non_lvalue instead of pedantic_non_lvalue.
  363. (build_c_cast): Don't conditional use of non_lvalue on pedantic.
  364. * fold-const.c (fold): Don't check pedantic directly for
  365. COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are
  366. passed to pedantic_non_lvalue.
  367. 2003-11-06 Joseph S. Myers <jsm@polyomino.org.uk>
  368. * c-typeck.c (pedantic_lvalue_warning): Deprecate compound
  369. expressions as lvalues.
  370. 2003-11-04 Joseph S. Myers <jsm@polyomino.org.uk>
  371. * c-typeck.c (pedantic_lvalue_warning): Deprecate use of
  372. conditional expressions as lvalues.
  373. 2003-10-22 Joseph S. Myers <jsm@polyomino.org.uk>
  374. * c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of
  375. deprecation of casts as lvalues.
  376. 2005-02-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  377. * libcpp/lex.c (lex_string): Fix infinite loop with multi-line strings (use code from
  378. _cpp_skip_block_comment).
  379. (create_literal): Delete \r characters.
  380. * libcpp/internal.h (struct cpp_reader): Add boolean lexing_mls member.
  381. * libcpp/lex.c (lex_string): Set it.
  382. (_cpp_clean_line): Check it. Switch \r and \n instead of converting \r to \n if true.
  383. 2005-02-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  384. * gcc/builtins.def: Disable builtin_calloc, which conflicts with TIGCCLIB.
  385. * gcc/c-opts.c (c_common_handle_option): Don't warn about -I-.
  386. * gcc/config/i386/xm-mingw32.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
  387. * gcc/c-incpath.c (add_path): Convert / to \ if HAVE_DOS_BASED_FILE_SYSTEM, not the other
  388. way round. Strip trailing \.
  389. * gcc/loop.c (scan_loop): Fix hard register variables as asm inputs. Patch by Ian Lance
  390. Taylor, 2004-05-13, taken from the GCC mailing list:
  391. http://gcc.gnu.org/ml/gcc/2004-05/msg00678.html
  392. * Revert:
  393. 2003-12-17 Eric Botcazou <ebotcazou@libertysurf.fr>
  394. PR c/12085
  395. * c-typeck.c (build_function_call): Issue an error if a
  396. function is called through an incompatible prototype.
  397. 2005-02-02 - 2005-02-06 Kevin Kofler <Kevin@tigcc.ticalc.org>
  398. * Import GCC 4.0 20050130 snapshot.
  399. * Merge changes from GCC 3.3.3 (see ChangeLog-gcc-3.3.txt).
  400. * Preprocessor patches have moved to files with new names:
  401. gcc/cppexp.c -> libcpp/expr.c
  402. gcc/cpphash.h -> libcpp/internal.h
  403. gcc/cppinit.c -> libcpp/init.c, gcc/c-incpath.c
  404. gcc/cpplex.c -> libcpp/lex.c, libcpp/include/cpplib.h (prototype), gcc/c-lex.c
  405. gcc/cpplib.c -> libcpp/directives.c
  406. gcc/cpplib.h -> libcpp/include/cpplib.h
  407. gcc/cppmacro.c -> libcpp/macro.c
  408. gcc/cppmain.c -> gcc/c-ppoutput.c
  409. * Some more patches have moved to other files:
  410. gcc/c-common.c -> gcc/c-cppbuiltin.c, gcc/builtins.c
  411. gcc/c-opts.c -> gcc/c-opts.c, gcc/c.opt
  412. gcc/c-typeck.c -> gcc/c-typeck.c, gcc/c-decl.c
  413. gcc/emit-rtl.c (gen_lowpart_common, constant_subword) ->
  414. gcc/simplify-rtx.c (simplify_immed_subreg) (rewritten)
  415. gcc/toplev.c -> gcc/toplev.c, gcc/common.opt, gcc/opts.c
  416. gcc/config/m68k/m68k-coff.h -> gcc/config.gcc, gcc/config/m68k/m68k-none.h
  417. gcc/config/m68k/m68k.h (mul/div/shift costs) -> gcc/config/m68k/m68k.c
  418. gcc/config/m68k/m68k.md (PIC call patch) -> gcc/config/m68k/m68k.c (m68k_output_pic_call)
  419. gcc/config/m68k/m68k-ti.h (PROMOTE_PROTOTYPES, ASM_FILE_START) ->
  420. gcc/config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES, TARGET_ASM_FILE_START,
  421. m68k_asm_file_start),
  422. gcc/config/m68k/m68k-protos.h (m68k_asm_file_start prototype)
  423. * Patches have been updated to follow the GCC 4.0 conventions where appropriate (ISO C90,
  424. renamed identifiers, ...).
  425. * Dropped attrib.c patch, as this looks already fixed (see PR 14587).
  426. * Dropped reversion of PR 2001 patch (bb-reorder.c, function.c, function.h, stmt.c) which
  427. was only applied to the 3.3 branch.
  428. * Dropped combine.c backport which is already in 4.0.
  429. * Dropped expr.c (is_zeros_p) patch, as this function is no more.
  430. * Dropped final.c (alter_subreg) paradoxical subreg patch, as this is already fixed.
  431. * Dropped PR 7871 patch to flow.c, as this bug is already fixed in 4.0.
  432. * Dropped flow.c (regno_uninitialized) patch, as this function is no more.
  433. * Dropped the libfuncs.h, optabs.c and expr.c patches which added *bf* libfuncs, as they
  434. are not needed any more thanks to genopinit.c and the new init_optab.
  435. * Dropped backport of PR 11823 patch (stmt.c) which is already in 4.0.
  436. * Dropped toplev.c patch to disable copy_loop_headers for -Os, as this is already done in
  437. 4.0 for the equivalent tree-ssa pass (and the old one is no more).
  438. * Dropped varasm.c (decode_rtx_const) patch, as this function is no more.
  439. * Dropped varasm.c (categorize_decl_for_section) flag_zero_initialized_in_bss patch, as
  440. this is already fixed in 4.0.
  441. * Dropped varasm.c (const_hash_1) patch which added an unneeded sanity check.
  442. * Dropped unroll.c patches, as the old unroller is no longer.
  443. * Dropped config/m68k/m68k.c patch to disable XFmode flavor setting (not needed anymore).
  444. * Dropped config/m68k/m68k.c backports (output_move_const_into_data_reg NOTB/NOTW/NEGW
  445. patch, output_andsi3 64-bit cross patch) which are already in 4.0.
  446. * Dropped obsolete config/m68k/m68k.h attribute support patch (already #if 0ed and moved to
  447. target macros a few GCC releases ago).
  448. * Dropped config/m68k/m68k-protos.h patch because the prototype for
  449. extended_address_operand is auto-generated anyway.
  450. * gcc/c-decl.c (struct c_parm, build_c_parm): Add asmspec.
  451. * gcc/config/m68k/m68k-protos.h (amigaos_init_cumulative_args,
  452. amigaos_function_arg_advance, amigaos_function_arg): Prototype here.
  453. * Dropped REAL_VALUE_TRUNCATE->real_value_truncate patches in gcc/fold-const.c and
  454. gcc/simplify-rtx.c, which use real_convert now.
  455. * gcc/config/smapbcd.h (real_convert, real_from_integer, real_isneg): Define.
  456. * gcc/real.c (real_compare): Implement.
  457. * gcc/real.h (real_compare): Declare.
  458. * config-guess: Always use i386 for mingw32.
  459. * gcc/builtins.c (expand_builtin, expand_builtin_*, fold_builtin_*, integer_valued_real_p,
  460. fold_trunc_transparent_mathfn, mathfn_built_in, expand_errno_check,
  461. builtin_mathfn_code): Disable math builtins. Disable mem and string builtins except the
  462. ones needed internally: memcpy, memset. Also disable ctype builtins and
  463. builtin_fork_or_exec.
  464. * gcc/builtins.def: Disable ctype builtins.
  465. * gcc/c-incpath.c (register_include_chains): Don't use environment variables.
  466. * gcc/convert.c (strip_float_extension): Don't use exact_real_truncate and
  467. real_value_truncate.
  468. * gcc/emit-rtl.c (init_emit_once): Use real_arithmetic instead of REAL_EXP and SET_REAL_EXP
  469. to compute 1/2 (dconsthalf). Don't initialize dconstpi and dconste.
  470. (dconstpi, dconste): Don't declare.
  471. * gcc/real.h (dconstpi, dconste): Likewise.
  472. * gcc/expr.c (emit_block_move_via_libcall, emit_block_move_libcall_fn, expand_assignment,
  473. clear_storage_via_libcall, clear_storage_libcall_fn): Use mem* instead of b*.
  474. Drop patches changing the sizes for b* functions to ushort, it's all size_t now.
  475. * gcc/fold-const.c (const_binop): Use REAL_VALUES_IDENTICAL instead of real_identical.
  476. * gcc/simplify-rtx.c (simplify_binary_operation): Likewise.
  477. * gcc/fold-const.c (fold_inf_compare): Don't use real_maxval.
  478. (fold_relational_const): Use REAL_VALUE_ISNANUINF instead of real_isnan.
  479. * gcc/function.h (function_arg_regno_p): Prototype here.
  480. * gcc/genmodes.c (emit_real_format_for_mode): Don't emit struct real_format.
  481. (emit_mode_adjustments): Don't emit code using REAL_MODE_FORMAT.
  482. * gcc/optabs.c (expand_unop): Don't try negating floating point values by flipping the sign
  483. bit.
  484. (expand_abs_nojump): Don't try computing abs by clearing the sign bit.
  485. (copysign): Disable.
  486. * gcc/output.h (assemble_real): Conditionalize prototype on REAL_WIDTH instead of
  487. REAL_VALUE_TYPE_SIZE.
  488. * gcc/simplify-rtx.c (simplify_unary_operation): Don't simplify SQRT, we don't have
  489. real_sqrt nor builtin_sqrt.
  490. * gcc/simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
  491. simplify_immed_subreg): Use SMAP BCD representation directly instead of real_to_target
  492. and real_from_target.
  493. * gcc/tree-ssa-ccp.c (ccp_fold_builtin): Do nothing.
  494. * gcc/tree-pretty-print.c (dump_generic_note): Use REAL_VALUE_TO_STRING instead of
  495. real_to_decimal.
  496. * gcc/varasm.c (output_constant_pool): Pass fnname to output_constant_pool1.
  497. (output_constant_pool1): Add fnname parameter.
  498. * gcc/config/m68k/m68k.c (m68k_output_pic_call): Use plain bsr now. Guaranteed to be
  499. PC-relative, and now (latest GNU as) optimized to a byte where possible.
  500. (m68k_output_mi_thunk): Use plain bra for labels under -mpcrel now. See above.
  501. * gcc/config/m68k/m68k.md (indirect_jump): Likewise.
  502. * gcc/config/m68k/m68k-ti.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Cast ROUNDED to unsigned
  503. to avoid format mismatches.
  504. * Revert (parts of larger patches, changelog entries pruned accordingly):
  505. 2003-08-04 Roger Sayle <roger@eyesopen.com>
  506. * c-common.c (built_in_attribute): Don't define/undefine DEF_FN_ATTR.
  507. (c_attrs_initialized): Delete.
  508. (c_common_nodes_and_builtins): Don't test c_attrs_initialized,
  509. always call c_init_attributes.
  510. (c_init_attributes): Don't define/undefine DEF_FN_ATTR. Don't
  511. set c_attrs_initialized when done.
  512. (c_common_insert_default_attributes): Delete.
  513. * c-common.h (c_common_insert_default_attributes): Delete prototype.
  514. * c-decl.c (c_insert_default_attributes): Delete.
  515. * c-tree.h (c_insert_default_attributes): Delete prototype.
  516. * attribs.c (decl_attributes): Don't call insert_default_attributes
  517. langhook. Update function description comment.
  518. * langhooks.h (lang_hooks): Remove insert_default_attributes field.
  519. * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Delete.
  520. * c-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define.
  521. * system.h: Poison LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES macro.
  522. 2003-08-02 Roger Sayle <roger@eyesopen.com>
  523. * builtin-attrs.def: Remove DEF_FN_ATTR construct and the last
  524. few functions that define default attributes using it.
  525. * c-common.c (c_common_insert_default_attributes): Do nothing.
  526. * libcpp/files.c (ssize_t): Define for Win32.