* 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
PR debug/47283
* cfgexpand.c (expand_debug_expr): Instead of generating
(mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
etc. handling.
* g++.dg/debug/pr47283.C: New test.
From-SVN: r169057
2011-01-20 Richard Guenther <rguenther@suse.de>
PR middle-end/47370
* tree-inline.c (remap_gimple_op_r): Recurse manually for
the pointer operand of MEM_REFs.
* gcc.dg/torture/pr47370.c: New testcase.
From-SVN: r169055
PR tree-optimization/46130
* ipa-split.c (consider_split): If return_bb contains non-virtual
PHIs other than for retval or if split_function would not adjust it,
refuse to split.
* gcc.dg/pr46130-1.c: New test.
* gcc.dg/pr46130-2.c: New test.
From-SVN: r169052
Fix PR c++/47291
gcc/
PR c++/47291
* dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
(gen_scheduled_generic_parms_dies): New functions.
(gen_struct_or_union_type_die): Schedule template parameters DIEs
generation for the end of CU compilation.
(dwarf2out_finish): Generate template parameters DIEs here.
gcc/testsuite/
PR c++/47291
* g++.dg/debug/dwarf2/template-params-10.C: New test.
From-SVN: r169036
2011-01-19 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/36104 part two
* include/bits/hashtable.h: Revert to non-nested macro usage.
* include/bits/hashtable_policy.h: Same.
From-SVN: r169021
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
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
PR c++/47303
* decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
or DECL_EXTERNAL.
* g++.dg/template/anonunion1.C: New test.
From-SVN: r169000