Age | Commit message (Collapse) | Author | Files | Lines |
|
(big-endian))
2011-01-26 Steve Ellcey <sje@cup.hp.com>
PR target/46997
* config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
(*mux2): Ditto.
(vec_extract_evenodd_help): Ditto.
(vec_extract_evenv4hi): Ditto.
(vec_extract_oddv4hi): Ditto.
(vec_interleave_lowv2si): Ditto.
(vec_interleave_highv2si): Ditto.
(vec_extract_evenv2si): Ditto.
(vec_extract_oddv2si: Ditto.
(vec_pack_trunc_v2si): Ditto.
From-SVN: r169296
|
|
PR target/47237
* cgraph.h (cgraph_local_info): New field can_change_signature.
* ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
signature can change.
(ipcp_estimate_growth): Call sequence simplify only if calle signature
can change.
(ipcp_insert_stage): Only compute args_to_skip if signature can change.
(cgraph_function_versioning): We can not change signature of functions
that don't allow that.
* lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
(lto_input_node): Likewise.
* ipa-inline.c (compute_inline_parameters): Compute local.can_change_signature.
* ipa-split.c (visit_bb): Never split away APPLY_ARGS.
* tree-sra.c (ipa_sra_preliminary_function_checks): Give up on functions
that can not change signature.
* i386.c (ix86_function_regparm, ix86_function_sseregparm,
init_cumulative_args): Do not use local calling conventions for functions
that can not change signature.
From-SVN: r169290
|
|
toolchain)
gcc/ChangeLog:
PR target/40125
* config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
t-dlldir{,-x} fragment for build and add it to tmake_file.
(i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
* Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
* config/i386/t-dlldir: New file.
(SHLIB_DLLDIR): Define.
* config/i386/t-dlldir-x: New file.
(SHLIB_DLLDIR): Define.
* config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
(SHLIB_INSTALL): Use it.
libgcc/ChangeLog:
PR target/40125
* configure.ac: Call ACX_NONCANONICAL_TARGET.
(toolexecdir): Calculate and AC_SUBST.
(toolexeclibdir): Likewise.
* Makefile.in (target_noncanonical): Import.
(toolexecdir): Likewise.
(toolexeclibdir): Likewise.
* configure: Regenerate.
From-SVN: r169274
|
|
2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
PR target/47246
* config/arm/arm.c (thumb2_legitimate_index_p): Change the
lower bound of the allowed Thumb-2 coprocessor load/store
index range to -256. Add explaining comment.
From-SVN: r169271
|
|
2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
* config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
sjlj_except_unwind_info.
From-SVN: r169242
|
|
to 8-byte alignment)
PR target/45701
* config/arm/arm.c (any_sibcall_uses_r3): New function.
(arm_get_frame_offsets): Use it.
2011-01-25 Yao Qi <yao@codesourcery.com>
PR target/45701
* gcc.target/arm/pr45701-1.c: New test.
* gcc.target/arm/pr45701-2.c: New test.
* gcc.target/arm/pr45701-3.c: New test.
From-SVN: r169240
|
|
* config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
* config/rx/rx.c (rx_function_value): Likewise.
(rx_promote_function_mode): Likewise.
(gen_safe_add): Place an outsized immediate value inside an UNSPEC
in order to make it legitimate.
* config/rx/rx.md (adddi3_internal): If the second operand is a
MEM make sure that the first operand is the same as the result
register.
(addsi3_unspec): Delete.
(subdi3): Do not accept immediate operands.
(subdi3_internal): Likewise.
* gcc.target/rx/builtins.c: Allow -fipa-cp-clone.
(saturate_add): Delete.
(exchange): Delete.
(main): Do not run saturate_add.
(set_interrupts): Delete.
From-SVN: r169232
|
|
2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/46519
* config/i386/i386.c: Include sbitmap.h and fibheap.h.
(block_info): Add scanned and prev.
(move_or_delete_vzeroupper_2): Return if the basic block
has been scanned and the upper 128bit state is unchanged
from the last scan.
(move_or_delete_vzeroupper_1): Return true if the exit
state is changed.
(move_or_delete_vzeroupper): Visit basic blocks using the
work-list based algorithm based on vt_find_locations in
var-tracking.c.
* config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
From-SVN: r169173
|
|
* config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
* config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
-mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
then define __v850e1__.
* doc/invoke.texi: Document -mv850es.
From-SVN: r169170
|
|
It turns out that the middle-end will happily take care of
doing the swapping and splitting of compound fp comparisons.
No need for us to replicate that here.
From-SVN: r169169
|
|
From-SVN: r169167
|
|
* config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
* config/s390/s390.c (s390_register_move_cost,
s390_memory_move_cost): New.
(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
From-SVN: r169135
|
|
From-SVN: r169133
|
|
From-SVN: r169132
|
|
* config/rx/rx.md (cstoresf4): Pass comparison operator to
rx_split_fp_compare.
From-SVN: r169129
|
|
* config/rx/rx.md (UNSPEC_CONST): New.
(deallocate_and_return): Wrap the amount popped off the stack in
an UNSPEC_CONST in order to stop it being rejected by
-mmax-constant-size.
(pop_and_return): Add a "(return)" rtx.
(call): Drop the immediate operand.
(call_internal): Likewise.
(call_value): Likewise.
(call_value_internal): Likewise.
(sibcall_internal): Likewise.
(sibcall_value_internal): Likewise.
(sibcall): Likewise. Generate an explicit call using
sibcall_internal.
(sibcall_value): Likewise.
(mov<>): FAIL if a constant operand is not legitimate.
(addsi3_unpsec): New pattern.
* config/rx/rx.c (rx_print_operand_address): Handle UNPSEC
CONSTs.
(ok_for_max_constant): New function.
(gen_safe_add): New function.
(rx_expand_prologue): Use gen_safe_add.
(rx_expand_epilogue): Likewise.
(rx_is_legitimate_constant): Use ok_for_max_constant. Handle
UNSPEC CONSTs.
From-SVN: r169128
|
|
2011-01-21 Kai Tietz <kai.tietz@onevision.com>
PR bootstrap/47215
* decl.c (java_init_decl_processing): Remove
va_list_type_node related type initializations.
2011-01-21 Kai Tietz <kai.tietz@onevision.com>
PR bootstrap/47215
* config/i386/i386.c (ix86_local_alignment): Handle
case for va_list_type_node is nil.
(ix86_canonical_va_list_type): Likewise.
From-SVN: r169080
|
|
From-SVN: r169078
|
|
and __CMODEL_LARGE__.
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
From-SVN: r169077
|
|
2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/arm.md (define_attr type): Rename f_load
and f_store to f_fpa_load and f_fpa_store. Update.
(write_conflict): Deal with rename fallout.
(*push_fp_multi): Likewise.
* config/arm/fpa.md (f_load): Use f_fpa_load.
(f_store): Use f_fpa_store.
(*movsf_fpa): Likewise.
(*movdf_fpa): Likewise.
(*movxf_fpa): Likewise.
(*thumb2_movsf_fpa): Likewise.
(*thumb2_movdf_fpa): Likewise.
(*thumb2_movxf_fpa): Likewise.
* config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
f_loadd and f_stored.
(*thumb2_movdi_vfp): Likewise.
(*thumb2_movsf_vfp): Fix attribute to f_loads.
(*thumb2_movsi_vfp): Likewise.
* config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
Use f_loads instead of f_load.
* config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
From-SVN: r169071
|
|
* config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
* config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
* config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
(xtensa_mode_dependent_address_p): New function.
(constantpool_address_p): Make static. Change return type to bool.
Change argument type to const_rtx. Use CONST_INT_P predicate.
From-SVN: r169060
|
|
From-SVN: r169028
|
|
* config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
(LINK_SHLIB_SPEC): Don't use %(link_path).
(SUBTARGET_EXTRA_SPECS): Remove link_path.
From-SVN: r169026
|
|
* config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
(NO_SHARED_LIB_SUPPORT): Remove.
(LINK_SHLIB_SPEC): Remove one conditional definition.
From-SVN: r169025
|
|
* config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
%{call_shared}.
* config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
* config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
* config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
%{call_shared} and conditionals on these options not being passed.
* config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
%{call_shared}.
From-SVN: r169024
|
|
From-SVN: r169017
|
|
From-SVN: r169015
|
|
Via expander, pre- and post-reload patterns. The pre-reload
pattern is defined to allow lower_subregs totally split the
DImode values.
From-SVN: r169014
|
|
Now that we properly track the life of MDR, we can emit
the RETF instruction if MDR has not been modified. This
insn is 3-4 cycles faster since the return address is
already loaded.
From-SVN: r169013
|
|
There's little reason to greatly complicate things by splitting
the pic_load patterns and using complex rtl to make it work out.
Instead, use the %= marker to generate unique numbers and emit
the entire load_pic sequence at once.
At the same time, collect all references to outgoing_args_size
into mn10300_frame_size, and all computations of register save
area size into mn10300_initial_offset.
From-SVN: r169012
|
|
For addition and logicals, define an operation-plus-flags update pattern
in preparation for compare elimination. In addition, clean up the way
we compare and validate CC_MODEs. Define NEG in terms of NOT; this is
smaller and allows a non-clobbering destination alternative.
From-SVN: r169010
|
|
Note that the mulsidi3_internal pattern is structured so
as to let the lower-subregs pass fully split the result.
From-SVN: r169008
|
|
Note that nothing uses the "z" constraint yet except the one
move pattern; this merely defines the register class properly.
From-SVN: r169007
|
|
Allow REG+REG and POST_MODIFY addressing for AM33. Fix AM33 base and
index register classes. Remove a bunch of register class combinations
that aren't really useful after this cleanup.
From-SVN: r169006
|
|
Handles output reloads for QI/HImode properly; previously we were
only handing input reloads properly.
Handles reloads involving the stack pointer better; note that the
AM33 allows copying SP to DATA_REGS as well as ADDRESS and EXTENDED.
From-SVN: r169005
|
|
Use the "D" and "A" constraints, and the enabled attribute to
unify all ofthe integer move patterns. Delete the fake double
word move patterns; let the middle-end generate subregs as required.
Unfortunately, this somehow exposes a register pressure problem
with the udivmod pattern. This is properly fixed with subsequent
patches that expose the MDR register.
In the meantime it is highly desirable to to preserve bisect-ability
of the patch series, so disable this pattern for AM30.
From-SVN: r169004
|
|
(big-endian))
PR target/46997
* ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
(a64_expand_widen_sum): Ditto.
* vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
(vec_extract_evenodd_help): Ditto.
(vec_extract_evenv4hi): Ditto.
(vec_extract_oddv4hi): Ditto.
(vec_extract_evenv2si): Ditto.
(vec_extract_oddv2si): Ditto.
(vec_extract_evenv2sf): Ditto.
(vec_extract_oddv2sf): Ditto.
(vec_pack_trunc_v4hi: Ditto.
(vec_pack_trunc_v2si): Ditto.
(vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
(vec_interleave_highv8qi): Ditto.
(mix1_r): Ditto.
(vec_extract_oddv8qi): Ditto.
(vec_interleave_lowv4hi): Ditto.
(vec_interleave_highv4hi): Ditto.
(vec_interleave_lowv2si): Ditto.
(vec_interleave_highv2si): Ditto.
From-SVN: r168970
|
|
* doc/extend.texi: Mention __float128 support on hppa HP-UX.
* config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
* config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
(pa_c_mode_for_suffix): New.
(TARGET_EXPAND_BUILTIN): Define.
(TARGET_C_MODE_FOR_SUFFIX): Define.
(pa_builtins): Define.
(pa_init_builtins): Register __float128 type and init new support
builtins.
* config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
* config/pa/quadlib.c (_U_Qfcopysign): New.
From-SVN: r168969
|
|
PR tree-optimization/47179
* config/spu/spu.c (spu_ref_may_alias_errno): New function.
(TARGET_REF_MAY_ALIAS_ERRNO): Define.
From-SVN: r168961
|
|
2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/cortex-a9.md (cortex-a9-neon.md): Actually
include.
(cortex_a9_dp): Handle neon types correctly.
From-SVN: r168950
|
|
The formulation of the pre-reload pattern allows the lower_subreg
pass to properly split the patterns. This also required re-writing
rx_source_operand and related predicates to accept subregs.
From-SVN: r168929
|
|
A standalone __builtin_rx_sat isn't implementable due to needing
to keep the flags live before reload. Instead provide a saturating
add pattern, which hopefully will be pattern-matched by high-level
optimizations.
From-SVN: r168928
|
|
The patterns represented with ashift 1 canonically need to have
the ashift as the first operand of the logical operation.
Leave insv represented as a zero_extract store.
Implement a variable store to a 1 bit field as tst+bmne.
Implement a variable store of a condition into a 1 bit field with bmcc.
From-SVN: r168927
|
|
From-SVN: r168926
|
|
SET should always have VOIDmode. A number of places used
SImode or QImode for the mode of the SET rtx itself.
From-SVN: r168925
|
|
All arithmetic should only clobber the flags by default;
setting the flags to a useful value should be done by a
separate pattern.
From-SVN: r168924
|
|
From-SVN: r168923
|
|
This was delayed until all compare+operate patterns were converted.
From-SVN: r168922
|
|
This will allow elimination of the compare.
From-SVN: r168921
|
|
This will allow elimination of the compare.
From-SVN: r168920
|