1. 25 Feb, 1999 1 commit
    • sh.h (PASS_IN_REG_P): For TARGET_HITACHI, don't pass structures in registers. · 9ab70a9b
      	* sh.h (PASS_IN_REG_P):  For TARGET_HITACHI, don't pass structures
      	in registers.
      	* expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition.
      	* function.c (assign_parms): Honour PRETEND_OUTGOING_VARARGS_NAMED.
      	* calls.c (expand_call): Likewise.
      	* sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs /
      	stdarg arguments.
      	* sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi.
      	(FUNCTION_ARG):  For TARGET_HITACHI, don't pass unnamed
      	arguments in registers.
      	(PRETEND_OUTGOING_VARARGS_NAMED): Define.
      	* va-sh.h (entire file): If __HITACHI__ is defined, use sh[123]
      	flavour varargs.
      
      From-SVN: r25440
      J"orn Rennecke committed
  2. 21 Feb, 1999 1 commit
  3. 10 Feb, 1999 1 commit
    • function.c (assign_stack_temp_for_type): Clear best_p when an exact match is found. · d16790f2
              * function.c (assign_stack_temp_for_type): Clear best_p
              when an exact match is found.
              * i386.h (LOCAL_ALIGNMENT): Define.
              * function.c (assign_stack_local, assign_outer_stack_local): Use it.
              (assign_stack_temp_for_type): New function based on assign_stack_temp.
              (assign_stack_temp): Call it.
              (assign_temp): Use assign_stack_temp_for_type, not assign_stack_temp.
              * stmt.c: Use assign_temp, not assign_stack_temp.
              * tm.texi: Document LOCAL_ALIGNMENT.
      
      From-SVN: r25143
      John Wehle committed
  4. 27 Jan, 1999 1 commit
  5. 21 Jan, 1999 2 commits
    • expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use move_by_pieces. · fbe1758d
      	* expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use
      	move_by_pieces.
      	(MOVE_MAX_PIECES): Define maximum number of bytes to move at once.
      	(USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults.
      	(USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults.
      	(move_by_pieces): Use new macros.
      	(emit_block_move): Use new macros.
      	(clear_by_pieces): Use new macros.
      	(clear_storage): Use new macros.
      	(emit_push_insn): Use new macros.
      	(expand_expr): Use new macros.
      	* config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT):
      	Define.
      	(USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define.
      	(MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE.
      	(MOVE_MAX_PIECES): move 8 bytes on SH4.
      	* tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT,
      	USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT,
      	USE_STORE_PRE_DECREMENT): Describe new macros.
      
      From-SVN: r24801
      Andrew MacLeod committed
    • varasm.c (output_constant_pool): Use floor_log2 instead of exact_log2 for ASM_OUTPUT_ALIGN. · 0003feb2
      Thu Jan 21 14:13:31 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
              * varasm.c (output_constant_pool): Use floor_log2 instead of
      	exact_log2 for ASM_OUTPUT_ALIGN.
      	* stor-layout.c (layout_type): Do machine-dependent extra alignment.
      	* emit-rtl.c (operand_subword): Handle case when a subword outside
      	the operand.
      	* tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of
      	the macros.
      
      From-SVN: r24800
      Vladimir N. Makarov committed
  6. 06 Jan, 1999 1 commit
  7. 04 Dec, 1998 1 commit
  8. 25 Nov, 1998 2 commits
  9. 24 Nov, 1998 1 commit
    • cse.c (fold_rtx): Make autoincrement addressing mode tests be runtime selectable. · 940da324
              * cse.c (fold_rtx): Make autoincrement addressing mode tests be
              runtime selectable.
              * expr.c (move_by_pieces): Similarly.
              (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
              * flow.c (find_auto_inc): Similarly.
              (try_pre_increment): Similarly.
              * loop.c (strength_reduce): Similarly.
              * regclass.c (auto_inc_dec_reg_p): Similarly.
              * regmove.c (try_auto_increment): Similarly.
              (fixup_match_1): Similarly.
              * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
              (HAVE_PRE_DECREMENT): Similarly.
              (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
              sponding changes to all target header files.
      
      From-SVN: r23837
      Jeffrey A Law committed
  10. 19 Nov, 1998 1 commit
    • expr.c (STACK_BYTES): Delete unused macro. · c795bca9
      	* expr.c (STACK_BYTES): Delete unused macro.
      	* calls.c: Provide default for PREFERRED_STACK_BOUNDARY.
      	(STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
      	(expand_call): Likewise.
      	(emit_library_call): Likewise.
      	(emit_library_call_value): Likewise.
      	* function.c: Provide default for PREFERRED_STACK_BOUNDARY.
      	(STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
      	* explow.c: Provide default for PREFERRED_STACK_BOUNDARY.
      	(round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
      	(allocate_dynamic_stack_space): Likewise.
      	* tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro.
      	(STACK_BOUNDARY): Update description to reflect the new situation.
      
      From-SVN: r23730
      Bernd Schmidt committed
  11. 26 Oct, 1998 1 commit
  12. 16 Oct, 1998 1 commit
    • flow.c (life_analysis_1): Do not clobber regs_ever_live after reload. · 6764d250
              * flow.c (life_analysis_1): Do not clobber regs_ever_live after
              reload.  Never perform rescans of the insn chain after reload.
              (propagate_block): Do not delete insn or create new autoinc addressing
              modes after reload.
              * jump.c (jump_optimize): Unconditionally use the code that was
              previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
              * reload1.c (reload): When reloading is finished, delete all
              REG_DEAD and REG_UNUSED notes.
              (emit_reload_insns): Delete all code that was conditional on
              PRESERVE_DEATH_INFO_REGNO_P.
              (no_longer_dead_regs): Delete variable.
              (reload_cse_delete_death_notes): Delete function.
              (reload_cse_no_longer_dead): Delete function.
              (reload_cse_regs_1): Delete all code to handle deletion of death
              notes.
              (reload_cse_noop_set_p): Likewise.
              (reload_cse_simplify_set): Likewise.
              (reload_cse_simplify_operands): Likewise.
              (reload_cse_move2add): Likewise.
              * reorg.c (used_spill_regs): Delete declaration.
              (max_label_num_after_reload): Delete declaration.
              (find_dead_or_set_registers): Don't assume that spill regs are
              dead at a CODE_LABEL.
              * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
              even after reload.
              * sched.c (sched_analyze_insn): Likewise.
              (update_flow_info): Likewise.
              * haifa-sched.c (sched_analyze_insn): Likewise.
              (update_flow_info): Likewise.
              * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
              * toplev.c (max_label_num_after_reload): Delete variable.
              (rest_of_compilation): Don't set max_label_num_after_reload.
              Call life_analysis after reload_cse_regs if optimizing.
              * config/gmicro/gmicro.h: Delete comment referring to
              PRESERVE_DEATH_INFO_REGNO_P.
              * config/i386/i386.h: Likewise.
              * config/m88k/m88k.h: Likewise.
              * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
              * config/sh/sh.h: Likewise.
      Accurate REG_DEAD notes after reload.
      
      Co-Authored-By: Jeffrey A Law <law@cygnus.com>
      
      From-SVN: r23120
      Bernd Schmidt committed
  13. 03 Oct, 1998 1 commit
  14. 01 Oct, 1998 2 commits
  15. 30 Sep, 1998 2 commits
  16. 15 Sep, 1998 1 commit
    • tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused. · 71038426
      	* tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
      	(BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
      	(BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
      	(BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
      	* c-decl.c (init_decl_processing): Update accordingly.
      	* expr.c (expand_builtin): Likewise.
      	* cp/decl.c (init_decl_processing): Likewise.
      	* rtl.h (global_rtl): Add cfa entry.
      	(virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
      	(LAST_VIRTUAL_REGISTER): Update.
      	* emit-rtl.c (global_rtl): Add cfa entry.
      	(init_emit): Initialize it.
      	* function.c (cfa_offset): New.
      	(instantiate_virtual_regs): Initialize it.
      	(instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
      	(expand_function_end): Call expand_eh_return.
      	* tm.texi (ARG_POINTER_CFA_OFFSET): New.
      	* except.c (current_function_eh_stub_label): Kill.
      	(current_function_eh_old_stub_label): Likwise; update all references.
      	(expand_builtin_set_return_addr_reg): Kill.
      	(expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
      	(expand_builtin_set_eh_regs): Kill.
      	(eh_regs): Produce a third reg for the actual handler address.
      	(eh_return_context, eh_return_stack_adjust): New.
      	(eh_return_handler, eh_return_stub_label): New.
      	(init_eh_for_function): Initialize them.
      	(expand_builtin_eh_return, expand_eh_return): New.
      	* except.h: Update prototypes.
      	* flow.c (find_basic_blocks_1): Update references to the stub label.
      	* function.h (struct function): Kill stub label elements.
      	* libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
      	register number is one that would be in the previous window.
      	Provide a dummy definition for non-windowed targets.
      	(get_reg_addr): New function.
      	(get_reg, put_reg, copy_reg): Use it.
      	(__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
      	generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
      	* alpha.c (alpha_eh_epilogue_sp_ofs): New.
      	(alpha_init_expanders): Initialize it.
      	(alpha_expand_epilogue): Use it.
      	* alpha.h: Declare it.
      	* alpha.md (eh_epilogue): New.
      	* m68h.h (ARG_POINTER_CFA_OFFSET): New.
      	* sparc.h (ARG_POINTER_CFA_OFFSET): New.
      
      From-SVN: r22436
      Richard Henderson committed
  17. 02 Sep, 1998 1 commit
  18. 30 Aug, 1998 1 commit
  19. 25 Aug, 1998 1 commit
  20. 19 Aug, 1998 3 commits
  21. 13 Jul, 1998 1 commit
  22. 08 Jul, 1998 1 commit
  23. 02 Jul, 1998 1 commit
    • expr.h (STACK_SIZE_MODE): New macro. · 39403d82
              * expr.h (STACK_SIZE_MODE): New macro.
              * explow.c (allocate_dynamic_stack_space): Use it for
              mode of allocate_stack pattern increment operand.
              * tm.texi (STACK_SAVEAREA_MODE, STACK_SIZE_MODE): Document.
              * md.texi (stack_save_block, ...): Reflect use of macro.
              * rs6000.h (PROMOTE_MODE): Always promote to word_mode.
              (PROMOTE_FUNCTION_ARGS): Define.
              (PROMOTE_FUNCTION_RETURN): Define.
              (FUNCTION_VALUE): Promote to word_mode if smaller.
              Convert to gen_rtx_FOO.
              * rs6000.md (call_indirect): Store doubleword in 64-bit mode.
              Convert to gen_rtx_FOO.
      
      From-SVN: r20893
      David Edelsohn committed
  24. 30 Jun, 1998 1 commit
  25. 29 Jun, 1998 1 commit
  26. 27 Jun, 1998 1 commit
  27. 26 Jun, 1998 1 commit
  28. 17 Jun, 1998 1 commit
  29. 02 Jun, 1998 1 commit
    • expr.c (expand_builtin_setjmp): Handle BUILTIN_SETJMP_FRAME_VALUE. · 0bc02db4
              * expr.c (expand_builtin_setjmp): Handle BUILTIN_SETJMP_FRAME_VALUE.
              * i960.h (SETUP_FRAME_ADDRESSES, BUILTIN_SETJMP_FRAME_VALUE): Define.
              * i960.md (ret, flush_register_windows): Define.
              (nonlocal_goto): Likewise.  Nested function nonlocal gotos don't
              work yet.
              * tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Document new macro.
      
      From-SVN: r20192
      Mike Stump committed
  30. 22 May, 1998 1 commit
    • final.c (JUMP_TABLES_IN_TEXT_SECTION): Provide a default value. · 75197b37
              * final.c (JUMP_TABLES_IN_TEXT_SECTION): Provide a default value.
              (shorten_branches, final_scan_insn): Test value of
              JUMP_TABLES_IN_TEXT_SECTION instead of just testing whether it
              is defined.
              * tm.texi (JUMP_TABLES_IN_TEXT_SECTION): Corresponding changes.
              * arm/coff.h: Define JUMP_TABLES_IN_TEXT_SECTION to 1.
              coff.h: Likewise.
              * i386/386bsd.h: Likewise.
              * i386/freebsd-elf.h: Likewise.
              * i386/freebsd.h: Likewise.
              * i386/netbsd.h: Likewise.
              * i386/ptx4-i.h: Likewise.
              * i386/sysv4.h: Likewise.
              * pa/pa.h: Likewise.
              * rs6000/linux.h: Likewise.
              * rs6000/rs6000.h: Likewise.
              * sh/sh.h: Likewise.
              * sparc/sp64-elf.h: Likewise.
              * v850/v850.h: Likewise.
              * rs6000/sysv4.h: Define JUMP_TABLES_IN_TEXT_SECTION to 0.
              * i386/linux.h: Define JUMP_TABLES_IN_TEXT_SECTION to (flag_pic).
      
      From-SVN: r19940
      Bernd Schmidt committed
  31. 20 May, 1998 1 commit
    • * Global CSE and constant/copy propagation. · 7506f491
              * Makefile.in (OBJS): Add gcse.o
              (STAGESTUFF): Add *.gcse.
              (gcse.o): Add dependencies.
              (mostlyclean): Remove *.gcse and */*.gcse.
              * gcse.c: New file.
              * loop.c (loop_optimize): Move call to init_alias_analysis.
              * recog.c (validate_replace_src): New function.
              * toplev.c (gcse_dump): New global variable.
              (flag_gcse, gcse_time): Likewise.
              (compile_file): Initialize gcse_time and clean out the gcse dump
              file if necessary.
              (rest_of_compilation): Call gcse_main as requested.  Dump RTL
              after gcse if requested.
              (main): Enable gcse for -O2 and above.  Handle -dG.  Enable gcse
              dumps for -da.
              * gcc.texi: Add gcse related internal documentation.
              * invoke.texi: Note new command line options for gcse.
              * tm.texi: Document AVOID_CCMODE_COPIES.
              * mips.h (AVOID_CCMODE_COPIES): Define.
      
      Co-Authored-By: Jeffrey A Law <law@cygnus.com>
      
      From-SVN: r19901
      Doug Evans committed
  32. 17 May, 1998 1 commit
    • gcc.c (SWITCH_CURTAILS_COMPILATION): Definition. · 88117d44
              * gcc.c (SWITCH_CURTAILS_COMPILATION): Definition.
              (DEFAULT_SWITCH_CURTAILS_COMPILATION): True for options -S and -c.
              (process_command): If HAVE_EXECUTABLE_SUFFIX is defined then scan
              command line arguments to see if an executable is not being
              created, and if so - do not append the suffix.
              * tm.texi (SWITCH_CURTAILS_COMPILATION): Add description of new
              driver macro.
      
      From-SVN: r19824
      Nick Clifton committed
  33. 11 May, 1998 1 commit
  34. 06 May, 1998 1 commit