| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* target.h (init_libfuncs): New hook.
* target-def.h: Default TARGET_INIT_BUILTINS and
TARGET_INIT_LIBFUNCS to hook_void_void. Add
TARGET_INIT_LIBFUNCS to TARGET_INITIALIZER.
* builtins.c (default_init_builtins): Delete.
* expr.h (default_init_builtins): Delete prototype.
* doc/tm.texi: Document TARGET_INIT_LIBFUNCS and US_SOFTWARE_GOFAST.
Tweak documentation of TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL.
Remove documentation of INIT_TARGET_OPTABS, MULSI3_LIBCALL,
DIVSI3_LIBCALL, UDIVSI3_LIBCALL, MODSI3_LIBCALL, UMODSI3_LIBCALL,
MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, MODDI3_LIBCALL,
and UMODDI3_LIBCALL,
* Makefile.in (optabs.o): Depends on target.h.
* defaults.h: Provide default for FLOAT_LIB_COMPARE_RETURNS_BOOL.
* optabs.c: Include target.h.
(prepare_float_lib_cmp): No need for #ifdef around use of
FLOAT_LIB_COMPARE_RETURNS_BOOL.
(set_optab_libfunc): New function.
(init_optabs): Delete use of all *_LIBCALL defines.
Call targetm.init_libfuncs not INIT_TARGET_OPTABS.
* optabs.h: Prototype set_optab_libfunc.
* config.gcc: Remove all references to pa/long_double.h,
ia64/hpux_longdouble.h, and gofast.h.
(mips-*-*): When --enable-gofast, just add US_SOFTWARE_GOFAST
to tm_defines; don't set INIT_SUBTARGET_OPTABS or change tm_file.
* config/alpha/alpha.c, config/c4x/c4x.c, config/cris/cris.c
* config/frv/frv.c, config/h8300/h8300.c, config/i860/i860.c
* config/ia64/ia64.c, config/ip2k/ip2k.c, config/m68hc11/m68hc11.c
* config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
* config/sparc/sparc.c, config/vax/vax.c:
Provide a definition for TARGET_INIT_LIBFUNCS. Where
necessary, include optabs.h, libfuncs.h, and/or config/gofast.h.
* config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.h
* config/avr/avr.h, config/cris/cris.h, config/frv/frv.h
* config/h8300/h8300.h, config/i860/i860.h, config/ip2k/ip2k.h
* config/iq2000/iq2000.h, config/m68hc11/m68hc11.h, config/mips/mips.h
* config/rs6000/aix.h, config/rs6000/sysv4.h, config/sparc/elf.h
* config/sparc/lite.h, config/sparc/netbsd-elf.h, config/sparc/sol2.h
* config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h
* config/vax/elf.h: Don't define or use INIT_TARGET_OPTABS,
INIT_SUBTARGET_OPTABS, or any *_LIBCALL macros.
* config/ia64/hpux.h: Redefine INTEL_EXTENDED_IEEE_FORMAT to 0.
Set TARGET_INIT_LIBFUNCS and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
* config/pa/pa-hpux.h: Define LONG_DOUBLE_TYPE_SIZE,
HPUX_LONG_DOUBLE_LIBRARY, and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
* config/ia64/hpux_longdouble.h, config/pa/long_double.h: Delete.
* config/rs6000/xcoff.h: Don't define RS6000_ITRUNC nor RS6000_UITRUNC.
* config/sparc/sparc.h: Default SUN_CONVERSION_LIBFUNCS and
SUN_INTEGER_MULTIPLY_64 to 0.
* config/sparc/sol2.h: Redefine SUN_CONVERSION_LIBFUNCS and
SUN_INTEGER_MULTIPLY_64 to 1.
* config/sparc/elf.h: Redefine SUN_CONVERSION_LIBFUNCS and
SUN_INTEGER_MULTIPLY_64 to 0.
* config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/sp86x-elf.h:
Define US_SOFTWARE_GOFAST.
* config/vax/vax.h: Default TARGET_ELF to 0.
* config/vax/elf.h: Redefine TARGET_ELF to 1.
* config/gofast.h: Don't define any macros here. Provide one
static function, gofast_maybe_init_libfuncs, which does what
INIT_GOFAST_LIBFUNCS used to do but only if US_SOFTWARE_GOFAST
is already defined. Do not clear negation libfuncs. Do
not mess with HFmode, XFmode, or TFmode libfuncs.
* config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME.
From-SVN: r72009
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
(FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING.
* config/ia64/ia64.c (ia64_hpux_function_arg_padding):
Likewise.
* config/m68hc11/m68hc11.c (m68hc11_function_arg_padding):
Likewise.
* config/rs6000/rs6000.c (function_arg_padding): Likewise.
* config/sparc/sparc.c (function_arg_padding): Likewise.
From-SVN: r71406
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2003-09-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
PR optimization/10914
* expr.h (get_condition, canonicalize_condition): Declaration changed.
* cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition
and canonicalize_condition calls.
* gcse.c (fis_get_condition, delete_null_pointer_checks_1,
delete_null_pointer_checks): Ditto.
* ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto.
* predict.c (estimate_probability, expected_value_to_br_prob): Ditto.
* loop.c (check_dbra_loop, get_condition_for_loop): Ditto.
(canonicalize_condition, get_condition): Allow to return comparisons
of cc mode registers.
* loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow
cc mode registers comparison in condition.
From-SVN: r71398
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* targhooks.c: New file.
* targhooks.h: New file.
* Makefile.in: Add targhooks.o support.
(function.o): Depend on$(TARGET_H).
(stmt.o): Likewise.
(combine.o): Depend on $(TREE_H) and $(TARGET_H).
* builtins.c (apply_args_size, expand_builtin_apply_args_1,
expand_builtin_apply): Convert to calls.struct_value_rtx hook.
(expand_builtin_saveregs): Convert to
calls.expand_builtin_saveregs hook.
* c-decl.c (start_decl): Handle new calls.promote_prototypes hook
here, instead of ...
(get_parm_info) ... here.
(store_parm_decls_oldstyle): Convert to calls.promote_prototypes
hook.
(finish_function): Handle calls.promote_prototypes hook here too.
* c-typeck.c (convert_arguments): Convert to
calls.promote_prototypes hook.
(c_convert_parm_for_inlining): Likewise.
* calls.c (initialize_argument_information): Convert to
calls.promote_function_args hook.
(expand_call): Convert to calls.struct_value_rtx,
calls.strict_argument_naming,
calls.pretend_outgoing_varargs_named, and
calls.promote_function_return hooks. Pass fndecl to
aggregate_value_p. Initialize CUMULATIVE_ARGS before calling
hooks, so they can use that.
(emit_library_call_value_1): Likewise.
* combine.c (setup_incoming_promotions): Convert to
calls.promote_function_args hook.
* emit-rtl.c: Convert to calls.struct_value_rtx hook.
* expr.c (expand_assignment): Pass call to aggregate_value_p.
(expand_expr): Likewise.
* expr.h: Remove support for SETUP_INCOMING_VARARGS,
STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
RETURN_IN_MEMORY macro defaults.
* final.c (profile_function): Convert to calls.struct_value_rtx
hook.
* function.c (aggregate_value_p): Accept function type tree as
second parameter; try to deduce fntype from it. Convert to
calls.return_in_memory hook.
(assign_parms): Convert to calls.setup_incoming_varargs,
calls.strict_argument_naming, calls.promote_function_args,
calls.pretend_outgoing_varargs_named hooks. Pass fndecl to
aggregate_value_p.
(expand_function_start): Likewise. Convert to
calls.struct_value_rtx hook.
(expand_function_end): Convert to calls.promote_function_return hook.
(allocate_struct_function): Pass fndecl to aggregate_value_p.
* hard-reg-set.h: Update comments to new hook names.
* integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p.
* reg-stack.c (stack_result): Likewise.
* rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete.
* stmt.c (expand_value_return): Convert to
calls.promote_function_return hook.
* target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS,
TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY,
TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS,
TARGET_STRICT_ARGUMENT_NAMING,
TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS.
* target.h: Likewise.
* tree.h (aggregate_value_p): Also takes a tree to deduce function
attributes from (for target hooks).
* doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN,
PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM,
STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING,
EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS,
STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert
to hooks.
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function
to aggregate_value_p.
* config/arm/arm.c (arm_init_cumulative_args,
arm_output_mi_thunk): Likewise.
* config/i386/i386.c (ix86_return_pops_args, x86_this_parameter):
Likewise.
* config/mips/mips.c (mips_save_reg_p, mips_expand_prologue,
mips_can_use_return_insn): Likewise.
* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
* config/s390/s390.c (s390_output_mi_thunk): Likewise.
* config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to
aggregate_value_p.
* config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass
function to aggregate_value_p.
* objc/objc-act.c (generate_struct_by_value_array): Pass NULL to
aggregate_value_p.
* config/sh/sh-protos.h (sh_builtin_saveregs): Remove.
(sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg,
sh_function_arg_advance, sh_pass_in_reg_p): New. * config/sh/sh.c
(sh_handle_renesas_attribute, sh_promote_prototypes,
sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs,
sh_setup_incoming_varargs, sh_strict_argument_naming,
sh_pretend_outgoing_varargs_named): New decls.
(targetm): Add new hooks.
(calc_live_regs): Save MACL and MACH if the function has the
renesas attribute.
(sh_expand_prologue): Support renesas attribute.
(sh_builtin_saveregs): Make static.
(sh_build_va_list): Support renesas attribute.
(sh_va_start): Likewise.
(sh_va_arg): Likewise.
(sh_promote_prototypes): New.
(sh_function_arg): New, moved from sh.h. Support renesas
attribute.
(sh_function_arg_advance): Likewise.
(sh_return_in_memory): Likewise.
(sh_strict_argument_naming): Likewise.
(sh_pretend_outgoing_varargs_named): Likewise.
(sh_struct_value_rtx): New.
(sh_attribute): Add renesas attribute.
(sh_handle_renesas_attribute): New.
(sh_attr_renesas_p, sh_cfun_attr_renesas_p): New.
(sh_ms_bitfield_layout_p): Support renesas attribute also.
(sh_output_mi_thunk): Pass function to aggregate_value_p. *
config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for
-mhitachi.
(STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to
target hooks.
(sh_args): Add renesas_abi flag.
(INIT_CUMULATIVE_ARGS): Set it. Pass fndecl to aggregate_value_p.
(FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c.
(PASS_IN_REG_P): Support renesas attribute. Pass DF and TF on the
stack for the renesas abi.
(STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS,
PROMOTE_PROTOTYPES): Moved to sh.c. * config/sh/sh.md (call): Set
call cookie to indicate renesas calls.
* decl.c (finish_function): Pass fndecl to aggregate_value_p.
* misc.c (default_pass_by_ref): Convert to calls.return_in_memory
hook.
From-SVN: r71048
|
|
|
|
|
|
|
|
|
|
| |
* expr.c (expand_assignment): Remove an unused argument
SUGGEST_REG.
* expr.h: Update the prototype.
* function.c: Update the callers.
* stmt.c: Likewise.
From-SVN: r69379
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/tm.texi (BLOCK_REG_PADDING): Describe.
* expr.h (struct locate_and_pad_arg_data): Add where_pad.
(emit_group_load, emit_group_store): Adjust declarations.
Remove most occurrences of #ifdef TREE_CODE.
* expr.c (emit_group_load): Add "type" param, and use
BLOCK_REG_PADDING to determine need for a shift. Optimize non-
aligned accesses if !SLOW_UNALIGNED_ACCESS.
(emit_group_store): Likewise.
(emit_push_insn, expand_assignment, store_expr, expand_expr): Adjust
emit_group_load and emit_group_store calls.
* calls.c (store_unaligned_arguments_into_pseudos): Tidy. Use
BLOCK_REG_PADDING to determine whether we need endian_correction.
(load_register_parameters): Localize vars. Handle shifting of
small values to the correct end of regs. Adjust emit_group_load
call.
(expand_call, emit_library_call_value_1): Adjust emit_group_load
and emit_group_store calls.
* function.c (assign_parms): Set mem alignment for stack slots.
Adjust emit_group_store call. Store values at the "wrong" end
of regs to the stack. Use BLOCK_REG_PADDING.
(locate_and_pad_parm): Save where_pad.
(expand_function_end): Adjust emit_group_load call.
* stmt.c (expand_value_return): Adjust emit_group_load call.
* Makefile.in (calls.o): Depend on $(OPTABS_H).
* config/rs6000/linux64.h (TARGET_LITTLE_ENDIAN): Redefine as 0.
(AGGREGATE_PADDING_FIXED, AGGREGATES_PAD_UPWARD_ALWAYS): Define.
(MUST_PASS_IN_STACK): Define.
(BLOCK_REG_PADDING): Define.
* config/rs6000/rs6000.h (struct rs6000_args): Remove orig_nargs.
(PAD_VARARGS_DOWN): Define in terms of FUNCTION_ARG_PADDING.
* config/rs6000/rs6000.c (init_cumulative_args): Don't set orig_nargs.
(function_arg_padding): !AGGREGATE_PADDING_FIXED compatibility code.
Act on AGGREGATES_PAD_UPWARD_ALWAYS.
From-SVN: r69318
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* except.c: Convert prototypes to ISO C90.
* except.h: Likewise.
* emit-rtl.c: Likewise.
* et-forest.c: Likewise.
* et-forest.h: Likewise.
* except.c: Likewise.
* explow.c: Likewise.
* expmed.c: Likewise.
* expr.c: Likewise.
* expr.h: Likewise.
From-SVN: r68674
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cp:
* cp/decl.c, cp/pt.c, cp/search.c, cp/tree.c: Don't use the PTR
macro.
gcc:
* bitmap.c, builtins.c, c-incpath.c, cgraph.c, config/frv/frv.c,
config/mips/mips.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c,
dwarf2out.c, dwarfout.c, except.c, expr.c, expr.h, fold-const.c,
function.c, gcc.c, genoutput.c, gensupport.c, global.c,
haifa-sched.c, hashtable.c, ifcvt.c, integrate.c, local-alloc.c,
loop.c, mips-tdump.c, mips-tfile.c, mkdeps.c, protoize.c,
read-rtl.c, recog.h, reload1.c, sbitmap.c, ssa-dce.c,
stringpool.c, tlink.c, tree.c, varasm.c, varray.c: Don't use
the PTR macro.
From-SVN: r68043
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alloc-pool.c: Convert to ISO C90 prototypes.
* alloc-pool.h: Likewise.
* alias.c: Likewise.
* attribs.c: Likewise.
* bb-reorder.c: Likewise.
* bitmap.h: Likewise.
* bitmap.c: Likewise.
* builtins.c: Likewise.
* tree.h: Convert prototypes of attribs.c to ISO C90.
* basic-block.h: Convert prototypes of bb-reorder.c to ISO C90.
* rtl.h: Convert prototypes of alias.c and builtins.c to ISO C90.
* expr.h: Convert prototypes of builtins.c to ISO C90.
From-SVN: r67975
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* expr.h (EXPAND_MEMORY): New.
* expr.c (expand_expr): Check it.
* stmt.c (expand_asm_operands): Provide it when the constraint
requires a memory. Warn for memory input constraints without
a memory operand.
* gcc.dg/20011029-2.c: Fix the array reference.
* gcc.dg/asm-7.c: New.
From-SVN: r67645
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2003-06-03 Aldy Hernandez <aldyh@redhat.com>
* function.c (assign_parms): Split complex arguments.
* doc/tm.texi (SPLIT_COMPLEX_ARGS): Document.
* expr.h (SPLIT_COMPLEX_ARGS): Define.
(split_complex_types): Protoize.
(split_complex_values): Protoize.
* calls.c (expand_call): Split complex arguments on architectures
that require it.
(split_complex_values): New.
(split_complex_types): New.
* config/rs6000/rs6000.c (rs6000_libcall_value): New.
(rs6000_function_value): Handle complex values on AIX.
(rs6000_complex_function_value): New.
* config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize.
* config/rs6000/rs6000.h (LIBCALL_VALUE): Call function.
(SPLIT_COMPLEX_ARGS): New.
From-SVN: r67367
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* builtins.c (expand_builtin_memcpy): Remove endp argument and endp
!= 0 handling. Pass 0 to store_by_pieces.
(expand_builtin_mempcpy): Add endp argument. Don't call
expand_builtin_memcpy, call store_by_pieces resp. move_by_pieces
directly. If ignoring result, only do expand_call.
(expand_builtin_stpcpy): Likewise. Call expand_builtin_mempcpy
otherwise.
(expand_builtin_strncpy, expand_builtin_memset): Adjust
store_by_pices callers.
(expand_builtin): Adjust expand_builtin_memcpy and
expand_builtin_mempcpy callers.
* expr.c (can_move_by_pieces): New function.
(move_by_pieces): Add endp argument, return to resp. memory at end
or one byte earlier depending on endp.
(store_by_pieces): Likewise.
(emit_block_move): Adjust call to move_by_pieces.
(emit_push_insn): Adjust move_by_pieces caller.
* expr.h (can_move_by_pieces): New prototype.
(store_by_pieces): Adjust prototypes.
* rtl.h (move_by_pieces): Adjust prototype.
* config/mips/mips.c (expand_block_move): Adjust move_by_pieces
caller.
* gcc.c-torture/execute/builtins/string-4.c (main_test): Remove
mempcpy test with post-increments.
* gcc.c-torture/execute/string-opt-3.c: New test.
* gcc.dg/string-opt-1.c: New test.
From-SVN: r67358
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* expr.h (assemble_static_space): Update prototype.
* output.h (assemble_zeros, output_constant): Likewise.
* elfos.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): Make it 64bit clean
* alpha.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASK_OUTPUT_LOCAL): Make
it 64bit clean.
* elf.h (ASM_OTUPUT_SKIP): Likewise.
* unicosmk.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMM): Likewise.
* arm.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
Expect HOST_WIDE_INT operand.
* aout.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
Expect HOST_WIDE_INT operand.
* unknown-elf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
Expect HOST_WIDE_INT operand.
* avr.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): Expect
HOST_WIDE_INT operand.
* c4x.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP,
ASM_OUTPUT_BSS): Expect HOST_WIDE_INT operand.
* aout.h (ASM_OTUPUT_SKIP): Likewise.
* cris.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
* darwin.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON): Likewise.
* dsp16xx.h (ASM_OTUPUT_SKIP): Likewise.
* frv.h (ASM_OTUPUT_SKIP): Likewise.
* h8300.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_LOCAL): Likewise.
* 370.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
Make it 64bit
clean.
* att.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand.
* bsd.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
Make it 64bit clean.
* darwin.h (ASM_OUTPUT_SKIP): Make it 64bit clean..
* sco5.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Expect
HOST_WIDE_INT operand
* svr3gas.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
Expect HOST_WIDE_INT operand
* sysv3.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand
* i960.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON,
ASM_OUTPUT_ALIGNED_LOCAL): Expect HOST_WIDE_INT operand
* ip2k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
Likewise.
* m32r.h (ASM_OUTPUT_COMMON): Likewise.
* 3b1.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
Likewise.
* amix.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
* crds.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
* hp320.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
ASM_OUTPUT_SKIP): Likewise.
* m68k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP):
Likewise.
* m68kelf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
ASM_OUTPUT_SKIP): Likewise.
* m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
ASM_OUTPUT_SKIP): Likewise.
* mot3300.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
* netbsd-elf.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
ASM_OUTPUT_SKIP): Likewise.
* sgs.h (ASM_OUTPUT_SKIP): Likewise.
* tower-as.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON,
ASM_OUTPUT_SKIP): Likewise.
* m88k.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP):
Likewise.
* mcore.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_BSS, ASM_OUTPUT_SKIP): Likewise.
* iris.h (ASM_OUTPUT_LOCAL): Likewise.
* mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise.
* ns32k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL,
ASM_OUTPUT_SKIP): Make it 64bit clean.
* pa-pro-end.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL):
Make it 64bit clean.
* pa.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL,
ASM_OUTPUT_SKIP): Make it 64bit clean.
* hpux.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): Make it
64bit clean.
* romp.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
HOST_WIDE_INT argument
* s390.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT argument.
* sh.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect
HOST_WIDE_INT argument
* sol2.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
* sparc.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): HOST_WIDE_INT argument
* svr3.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument
* vax.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL):
HOST_WIDE_INT argument
* vaxv.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
* xtensa.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument
* varasm.c (asm_output_bss, asm_output_aligned_bss,
asm_emit_uninitialized, assemble_zeros, assemble_static_space):
HOST_WIDE_INT argument
From-SVN: r66713
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* expr.c (move_block_from_reg): Remove "size" parm. Localize vars.
Move code handling pieces not larger than a word to..
* function.c (assign_parms): ..here, but use change_address instead
of adjust_address and operand_subword, and expand_binop instead of
expand_shift. Adjust calls to move_block_from_reg.
* expr.h (move_block_from_reg): Update declaration.
(copy_blkmode_from_reg): Formatting.
* Makefile.in (function.o): Add $(OPTABS_H) to deps.
* config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust
move_block_from_reg calls.
* config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
* config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
* config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
* config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise.
* config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
* config/pa/pa.c (hppa_builtin_saveregs): Likewise.
* config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise.
* config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
* config/sh/sh.c (sh_builtin_saveregs): Likewise.
From-SVN: r66623
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expand_expr.
* stmt.c (force_label_rtx): New function, based on logic
formerly found in expand_expr.
* expr.h: Prototype it.
* expr.c (expand_expr <LABEL_DECL>): Use force_label_rtx if
appropriate.
* varasm.c (decode_addr_const <LABEL_DECL>): Use force_label_rtx.
* print-tree.c (debug_tree): Free the table after we're done
with it. Use putc.
treelang:
* Make-lang.in: Set -Wno-error for treelang/lex.o.
From-SVN: r66579
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to struct locate_and_pad_arg_data.
* calls.c (struct arg_data): Move offset, slot_offset, size and
alignment_pad to struct locate_and_pad_arg_data. Update all refs.
(initialize_argument_information): Adjust call to locate_and_pad_parm.
Delete alignment_pad var. Don't calculate slot_offset here.
(emit_library_call_value_1): Delete alignment_pad, offset and size
vars. Use struct locate_and_pad_arg_data instead. Adjust refs.
Adjust call to locate_and_pad_parm. Don't tweak arg size for
partial in-regs here. Formatting fixes.
* expr.h (struct locate_and_pad_arg_data): New struct.
(locate_and_pad_parm): Adjust declaration.
* function.c (assign_parms): Localize vars. Use "locate" instead of
other arg location vars. Don't invoke FUNCTION_ARG or
FUNCTION_INCOMING_ARG unless pretend_named is different from
named_arg. Heed MUST_PASS_IN_STACK and set up "partial" before
calling locate_and_pad_parm. Adjust locate_and_pad_parm call.
Use slot_offset for stack home of reg parms. Correct test for
parm passed in memory. Formatting fixes.
(locate_and_pad_parm): Add "partial" to params. Replace offset_ptr
arg_size_ptr and alignment pad with "locate". Set slot_offset here.
Correct initial_offset_ptr handling. Localize vars. Always pad
locate->offset even when in_regs.
From-SVN: r66383
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* c-decl.c (finish_decl): When prototype with asmspec is found
for built-in, adjust built_in_decls as well as expr.c decls.
* expr.c (init_block_move_fn, init_block_clear_fn): New functions.
(emit_block_move_libcall_fn, clear_storage_libcall_fn): Use it.
* expr.c (init_block_move_fn, init_block_clear_fn): New prototypes.
* gcc.c-torture/execute/string-opt-asm-1.c: New test.
* gcc.c-torture/execute/string-opt-asm-2.c: New test.
From-SVN: r66181
|
|
|
|
|
|
|
|
| |
* expr.c (highest_pow2_factor): Return unsigned.
* expr.h (offset_address): Likewise.
* emit-rtl.c (offset_address): POW2 argument now unsigned.
From-SVN: r65589
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2003-03-13 Ansgar Esztermann <ansgar@thphy.uni-duesseldorf.de>
* Makefile.in (dojump.o): New target.
* dojump.c: New file.
(init_pending_stack_adjust): Moved here from expr.c.
(clear_pending_stack_adjust): Likewise.
(do_pending_stack_adjust): Likewise.
(jumpifnot): Likewise.
(jumpif): Likewise.
(do_jump): Likewise.
(do_jump_by_parts_greater): Likewise.
(do_jump_by_parts_greater_rtx): Likewise.
(do_jump_by_parts_equality): Likewise.
(do_jump_by_parts_equality_rtx): Likewise.
(compare_from_rtx): Likewise.
(do_compare_rtx_and_jump): Likewise.
(do_compare_and_jump): Likewise.
* expr.c (init_pending_stack_adjust): Removed to dojump.c.
(clear_pending_stack_adjust): Likewise.
(do_pending_stack_adjust): Likewise.
(jumpifnot): Likewise.
(jumpif): Likewise.
(do_jump): Likewise.
(do_jump_by_parts_greater): Likewise.
(do_jump_by_parts_greater_rtx): Likewise.
(do_jump_by_parts_equality): Likewise.
(do_jump_by_parts_equality_rtx): Likewise.
(compare_from_rtx): Likewise.
(do_compare_rtx_and_jump): Likewise.
(do_compare_and_jump): Likewise.
(placeholder_list): Made declaration extern.
* expr.h (placeholder_list): Declare.
From-SVN: r64309
|
|
|
|
| |
From-SVN: r63886
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* calls.c (store_one_arg): Revert 1999-02-16 change. Revert
2000-12-17 change. Pass EXPAND_STACK_PARM to expand_expr.
* expr.h (enum expand_modifier): Define EXPAND_STACK_PARM.
(enum block_op_methods): Reorder for better store_expr optimization.
* expr.c (store_expr): Test bit 1 of "want_value" for call param
stores, test bit 0 for original want_value meaning. Pass
BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set. Adjust
recursive calls, and calls to expand_param.
(expand_expr): Handle EXPAND_STACK_PARM modifier. When cse
expected, set target to 0 rather than to subtarget. Formatting.
From-SVN: r63337
|
|
|
|
| |
From-SVN: r61538
|
|
|
|
|
|
|
| |
* expr.h (MUST_PASS_IN_STACK): Move implementation...
* calls.c (default_must_pass_in_stack): ... here.
From-SVN: r61514
|
|
|
|
|
|
|
|
| |
* expr.h (emit_conditional_add): Add PARAMS to declaration.
* gengtype-lex.l (malloc, realloc): Move defines after include of
system.h. Remove duplicate include of system.h.
From-SVN: r61336
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* i386.md (adddi3_carry_rex64, subdi3_carry_rex64): Name pattern.
(addhi3_carry, addqi3_carry, subhi3_carry, subqi3_carry): New patterns.
(add??cc): New expanders.
* i386.c (expand_int_addcc): New function.
* i386-protos.h (expand_int_addcc): Declare.
* alias.c (memory_modified_1): New static function.
(memory_modified): New static varaible.
(memory_modified_in_insn_p): New global function.
* rtl.h (memory_modified_in_insn_p): Declare.
* rtlanal.c (modified_between_p, modified_in_p): Be smart about memory
references.
* expr.h (emit_conditional_add): Declare.
From-SVN: r61038
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* expr.c (gen_group_rtx, emit_group_move): New functions.
* expr.h (gen_group_rtx, emit_group_move): Prototype.
* function.c (expand_function_start): Use gen_group_rtx to create a
PARALLEL rtx to hold the return value when the real return rtx is a
PARALLEL.
(expand_function_end): Use emit_group_move to move the return value
from a PARALLEL to the real return registers.
* rtl.h (REG_FUNCTION_VALUE_P): Allow function values to be returned
in PARALLELs.
From-SVN: r59554
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dbxout.c: Follow spelling conventions.
* defaults.h: Likewise.
* df.c: Likewise.
* diagnostic.h: Likewise.
* doloop.c: Likewise.
* dwarf2out.c: Likewise.
* dwarfout.c: Likewise.
* emit-rtl.c: Likewise.
* except.c: Likewise.
* explow.c: Likewise.
* expmed.c: Likewise.
* expr.c: Likewise.
* expr.h: Likewise.
* flags.h: Likewise.
* flow.c: Likewise.
* fold-const.c: Likewise.
* function.c: Likewise.
* function.h: Likewise.
* gcc.c: Likewise.
* gcov-io.h: Likewise.
* gcov.c: Likewise.
* gcse.c: Likewise.
* genattrtab.c: Likewise.
* genconfig.c: Likewise.
* genrecog.c: Likewise.
* ggc-page.c: Likewise.
* ggc.h: Likewise.
* global.c: Likewise.
* gthr-win32.h: Likewise.
* integrate.c: Likewise.
* jump.c: Likewise.
* langhooks.c: Likewise.
* langhooks.h: Likewise.
* line-map.h: Likewise.
* local-alloc.c: Likewise.
* longlong.h: Likewise.
* loop.c: Likewise.
* loop.h: Likewise.
From-SVN: r57406
|
|
|
|
|
|
|
|
|
|
|
| |
* emit-rtl.c (set_mem_size): New function.
* expr.h (set_mem_size): Declare.
* config/rs6000/rs6000.c (expand_block_move_mem): Exterminate.
(expand_block_move): Instead, use adjust_address and
replace_equiv_address to generate proper aliasing info.
Move common code out of conditionals. Localize vars.
From-SVN: r57047
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* expr.h (enum block_op_methods): New.
(emit_block_move): Update prototype.
* expr.c (block_move_libcall_safe_for_call_parm): New.
(emit_block_move_via_loop): New.
(emit_block_move): Use them. New argument METHOD.
(emit_push_insn): Always respect the given alignment.
(expand_assignment): Update call to emit_block_move.
(store_expr, store_field, expand_expr): Likewise.
* builtins.c (expand_builtin_apply): Likewise.
(expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
* function.c (expand_function_end): Likewise.
* config/sh/sh.c (sh_initialize_trampoline): Likewise.
* config/sparc/sparc.c (sparc_va_arg): Likewise.
* calls.c (expand_call, emit_library_call_value_1): Likewise.
(save_fixed_argument_area): Use emit_block_move with
BLOCK_OP_CALL_PARM instead of move_by_pieces.
(restore_fixed_argument_area): Likewise.
(store_one_arg): Fix alignment parameter to emit_push_insn.
From-SVN: r56661
|
|
|
|
|
|
|
|
| |
* explow.c (int_expr_size): New fn.
* expr.c (expand_expr) [CONSTRUCTOR]: Use it.
* expr.h: Declare it.
From-SVN: r56009
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and add BITPOS argument.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Rename from
set_mem_attributes and add BITPOS argument. Subtract it from
OFFSET when same is adjusted.
(set_mem_attributes): New wrapper function.
* expr.c (expand_assignment): Use set_mem_attributes_minus_bitpos;
remove offset adjustment hack.
* expr.h (set_mem_attributes_minus_bitpos): Declare.
From-SVN: r55846
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* builtins.c (std_expand_builtin_va_start): Remove unused
first argument.
(expand_builtin_va_start): Call EXPAND_BUILTIN_VA_START and
std_expand_builtin_va_start with just two arguments.
* expr.h: Update prototypes.
* alpha-protos.h, alpha.h, alpha.c, arc-protos.h, arc.h,
arc.c, d30v-protos.h, d30v.h, d30v.c, i386-protos.h, i386.h,
i386.c, i960-protos.h, i960.h, i960.c, m88k-protos.h, m88k.h,
m88k.c, mips-protos.h, mips.h, mips.c, mn10300-protos.h,
mn10300.h, mn10300.c, pa-protos.h, pa.h, pa.c,
rs6000-protos.h, rs6000.h, rs6000.c, s390-protos.h, s390.h,
s390.c, sh-protos.h, sh.h, sh.c, sparc-protos.h, sparc.h,
sparc.c, stormy16-protos.h, stormy16.h, stormy16.c,
xtensa-protos.h, xtensa.h, xtensa.c: Remove unused first
argument from all implementations of EXPAND_BUILTIN_VA_START
and all uses of std_expand_builtin_va_start.
From-SVN: r55495
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-06-16 Aldy Hernandez <aldyh@redhat.com>
* gcc.c-torture/execute/simd-1.c: New.
* gcc.dg/simd-1.c: New.
* doc/extend.texi (Vector Extensions): Document that we can
specify simd types not specifically supported by the hardware.
Document that simd types can be used as function arguments.
Document that signness does make a difference in SIMD types.
Misc cleanups and revisions to the "vector extensions" section.
* simplify-rtx.c (simplify_subreg): Simplify subregs of vector
constants.
* expr.c (vector_mode_valid_p): New.
* expr.h: Add vector_mode_valid_p.
* defaults.h (VECTOR_MODE_SUPPORTED_P): Set default.
* emit-rtl.c (immed_double_const): Do not abort on vectors.
* c-common.c (type_for_mode): Always build vector nodes regardless
of VECTOR_MODE_SUPPORTED_P.
(handle_mode_attribute): Error if we can't emulate a nonexisting
vector mode.
(handle_vector_size_attribute): Same.
* optabs.c (expand_binop): Open-code vector operations.
(expand_unop): Open-code vector unops.
(expand_vector_binop): New.
(expand_vector_unop): New.
* c-typeck.c (build_binary_op): Allow vectors in binops.
Allow vectors in conditional operatiors.
(build_unary_op): Allow vectors in unary minus.
* config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Conditionalize on
TARGET_ALTIVEC.
From-SVN: r54727
|
|
|
|
| |
From-SVN: r54232
|
|
|
|
|
|
|
|
|
|
|
|
| |
* emit-rtl.c: Likewise.
* errors.h: Likewise.
* except.c: Likewise.
* explow.c: Likewise.
* expmed.c: Likewise.
* expr.c: Likewise.
* expr.h: Likewise.
From-SVN: r54197
|
|
|
|
|
|
|
|
|
|
|
| |
* expmed.c (const_mult_add_overflow_p): New.
* expr.h: Declare it.
* loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
Don't eliminate the biv if the giv has a constant multiplier and
the rhs argument of the comparison does satisfy the predicate.
Use expand_mult_add to compute the replacement constant.
From-SVN: r54075
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
argument types; build trap.
* builtins.c (expand_builtin_va_arg): Give warnings not errors for
promoted argument types; build trap.
(expand_builtin_trap): New.
(expand_builtin): Use it.
* stmt.c (expand_nl_goto_receivers): Likewise.
* expr.h (expand_builtin_trap): Declare.
* libfuncs.h (LTI_abort, abort_libfunc): New.
* optabs.c (init_optabs): Init abort_libfunc.
* gcc.dg/va-arg-1.c: Expect warnings, not errors.
From-SVN: r51643
|
|
|
|
| |
From-SVN: r51409
|
|
|
|
|
|
|
| |
* expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
(SUB_PARM_SIZE): Cast DEC to ssizetype.
From-SVN: r51379
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR c++/4574
* expr.h (expand_and): Add mode argument.
* expmed.c (expand_and): Add mode argument.
(expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
* expr.c (store_field, expand_expr, do_store_flag): Likewise.
* except.c (expand_builtin_extract_return_addr): Likewise.
* config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
* config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
* config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
* config/c4x/c4x.md: Use GEN_INT (x) instead of
gen_rtx (CONST_INT, VOIDmode, x).
* gcc.dg/20020220-1.c: New test.
From-SVN: r49938
|
|
|
|
|
|
|
| |
PR c/5615
* expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
From-SVN: r49904
|
|
|
|
|
|
|
|
| |
* emit-rtl.c (widen_memory_access): New.
* expr.h (widen_memory_access): Declare it.
* config/alpha/alpha.c (get_aligned_mem): Use it.
From-SVN: r47913
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* attribs.c (handle_no_check_memory_usage_atribute): Deleted.
(c_com): Delete its reference.
* builtins.c: Delete memory checking code.
* calls.c, expr.c, function.c, stmt.c: Likewise.
* builtins.c (expand_builtin_arg_info): Remove reference to
EXPAND_MEMORY_USE_* modifiers.
* explow.c (expr_size): Likewise.
* expr.c (expand_expr, expand_increment): Likewise.
* expr.h (ARGS_SIZE_RTX): Likewise.
* function.c (assign_parms, expand_pending_sizeso): Likewise.
* c-decl.c (duplicate_decls): Don't handle DECL_NO_CHECK_MEMORY_USAGE.
* expr.c (in_check_memory_usage): Delete.
(get_push_address, get_memory_usage_from_modifier): Delete.
(expand_assigment): Use EXPAND_WRITE on destination.
(expand_expr): Delete ro_modifier.
* expr.h (expand_modifier): Delete EXPAND_MEMORY_* entries and
add EXPAND_WRITE.
(memory_use_mode): Delete.
* flags.h (flag_check_memory_usage): Deleted.
(flag_prefix_function_name): Likewise.
* function.c (expand_function_start): Don't set
current_function_check_memory_usage.
* function.h (check_memory_usage): Delete.
* libfuncs.h, optabs.c: Delete chkr_* stuff.
* stmt.c (expand_asm_opernd): Change EXPAND_MEMORY_USE_WO to
EXPAND_WRITE.
* toplev.c (flag_check_memory_usage): Deleted.
(flag_prefix_function_name): Likewise.
(f_options, process_options): Delete references to above.
* tree.h (DECL_NO_CHECK_MEMORY_USAGE): Deleted.
* varasm.c (CHKR_PREFIX): Deleted.
(make_decl_rtl): Remove flag_prefix_function_name handling.
(assemble_name): Likewise.
* doc/extend.texi: Remove no_check_memory_usage attribute.
* doc/invoke.texi: Remove -fcheck-memory-usage
and -fprefix-function-name.
* cp/decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
From-SVN: r47697
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* rtl.h (mem_attrs): Rename decl to expr; adjust all users.
(MEM_EXPR): Rename from MEM_DECL; adjust all users.
* emit-rtl.c (set_mem_expr): Rename from set_mem_decl.
* expr.h, final.c, reload1.c: Adjust users.
* alias.c (nonoverlapping_component_refs_p): New.
(decl_for_component_ref, adjust_offset_for_component_ref): New.
(nonoverlapping_memrefs_p): Use them.
* emit-rtl.c (component_ref_for_mem_expr): New.
(set_mem_attributes): Use it.
(set_mem_offset): New.
* expr.c (expand_assignment): Call set_mem_attributes for
inner references; adjust the memory offset as needed.
* print-rtl.c (print_mem_expr): New.
(print_rtx): Use it.
From-SVN: r47534
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.in (c-lang.o): Depends on langhooks-def.h.
(expr.o, varasm.o): Depends on langhooks.h.
* c-common.c (c_safe_from_p): Always declare.
(c_expand_expr): Refine when declared.
* c-lang.c (c-common.h): Now include.
(LANG_HOOKS_SAFE_FROM_P): Define new hook.
(c_init): Don't set lang_safe_from_expr.
* expr.c (langhooks.h): Now include.
(lang_safe_from_p): No longer define.
(safe_from_p): Use lang hook.
(expand_expr): Set IGNORE if VOID_TYPE result of VIEW_CONVERT_EXPR too.
(expand_expr, case VIEW_CONVERT_EXPR): Pass ro_modifier down.
* expr.h (lang_expand_constant, lang_safe_from_p): Delete.
* langhooks-def.h (lhd_return_tree, lhd_safe_from_p): New decls.
(LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
* langhooks.c (lhd_return_tree, lhd_safe_from_p): New functions.
* langhooks.h (struct lang_hooks): New fields expand_constant
and safe_from_p.
* output.h (output_constant): Size arg is HOST_WIDE_INT.
* stmt.c (expand_decl_init): No longer need to expand constant
for CONST_DECL.
* stor-layout.c (put_pending_size): Don't check for SAVE_EXPR.
* toplev.c (lang_expand_constant): Delete var.
* tree.c (save_expr): Don't put another SAVE_EXPR around simple
operations on SAVE_EXPR.
* varasm.c (langhooks.h): Now include.
(compare_constant_1): Use lang_hooks, not lang_expand_constant.
(record_constant_1, output_addressed_constants): Likewise.
(initializer_constant_valid_p, output_constant): Likewise.
(output_constant_def): Process no-defer of string constant.
(output_addressed_constants, case ADDR_EXPR): Use handled_component_p.
(output_constant): Strip more conversions.
Track our size and pad for the rest.
(array_size_for_constructor): Remove code for non-byte STRING_CST.
(output_constructor): SIZE now HOST_WIDE_INT.
* cp/Make-lang.in (cp-lang.o): Depends on c-common.h.
* cp/cp-lang.c (c-common.h): Include.
(LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
* cp/decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
* cp/expr.c (init_cplus_expand): Don't set lang_expand_constant.
From-SVN: r47376
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P.
* emit-rtl.c (change_address): Fix typo in default alignment.
(adjust_address_1): Use mode of NEW, not MODE, when setting size.
* expr.c (highest_pow2_factor, case WITH_RECORD_EXPR): New case.
* rtl.h (REGNO_PTR_FRAME_P): New macro.
* expr.c (store_field): Pass tree instead of max size; callers changed.
Change handling of alignment.
Only copy to_rtx if is TARGET.
(expand_expr_unaligned): Delete; callers now use expand_expr.
(emit_cmp_insn): No longer take ALIGN parm; all callers changed.
(expand_assignment): Change handling of alignment.
Only copy to_rtx if was original.
(get_inner_reference): No longer return alginment; callers changed.
(expand_expr, case COMPONENT_REF): Change handling of alignment.
(expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned.
(compare_from_rtx): Delete ALIGN parm; all callers changed.
(do_compare_rtx_and_jump): Likewise.
* expr.h: Reflect above changes.
* tree.h: Likewise.
* dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter
to get_inner_reference.
* except.c: Remove ALIGN parameter in call to emit_cmp_and_jump_insns.
* explow.c: Likewise.
* loop.c: Likewise.
* optabs.c: Likewise.
(prepare_cmp_insn): Now static; remove ALIGN parm. Callers changed.
(emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed.
* fold-const.c: Remove PALIGN in calls to get_inner_reference.
* function.c (assign_stack_temp_for_type): No longer static.
* optabs.h (emit_cmp_insn): Remove ALIGN parm.
(prepare_cmp_insn): Delete declaration.
* rtl.h (assign_stack_temp_for_type): Add declaration.
* config/d30v/d30v.c: Reflect above changes.
* config/i860/i860.c, config/ia64/ia64.c: Likewise.
* config/rs6000/rs6000.c, config/sh/sh.c: Likewise.
* ada/trans.c, ada/utils2.c: Remove PALIGN parameter to
get_inner_reference.
From-SVN: r47075
|
|
|
|
| |
From-SVN: r46989
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* expmed.c (extract_bit_field): No longer pass in alignment.
(extract_fixed_bit_field, extract_split_bit_field): Likewise.
(store_bit_field, store_fixed_bit_field, store_split_bit_field):
Likewise.
* expr.c (store_constructor, store_constructor_field): Likewise.
(store_field, emit_group_load, emit_group_store): Likewise.
* expr.h (emit_group_load, emit_group_store): Delete ALIGN parm.
(store_bit_field, extract_bit_field): Likewise.
* calls.c, expr.c, function.c: Change calls to above functions.
* ifcvt.c, stmt.c: Likewise.
From-SVN: r46926
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expression.
* emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGINGP_P if T is a
constant expression.
(set_mem_decl): New function.
* expr.h (set_mem_decl): New declaration.
* final.c (get_decl_from_op): Don't use ORIGINAL_REGNO if not pseudo.
(output_asm_operand_names): Add tab.
* reload1.c (alter_reg): Set decl of MEM from REG_DECL.
From-SVN: r46733
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* alias.c (can_address_p): No longer static.
* emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed.
Return 0 if all parameters are default values.
(set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P.
(adjust_address_1): Try harder to compute a size.
* expr.c (expand_assignment, store_constructor): If can't address,
set MEM_KEEP_ALIAS_SET_P.
(store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P.
(store_field): Likewise.
(store_constructor): Simplify call to store_constructor_field.
* expr.h (can_address_p): New declaration.
* gensupport.c (gen_rtx_CONST_INT): New function.
* rtl.h (MEM_KEEP_ALIAS_SET_P): New macro.
(MEM_SIZE): Get size from mode, if not set and not BLKmode.
(MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P.
From-SVN: r46487
|