Commit Graph

114310 Commits

Author SHA1 Message Date
Olivier Hainque
6588d71129 collect2.c (main): In AIX specific computations for vector insertions...
* collect2.c (main): In AIX specific computations for vector
        insertions, use CONST_CAST2 to cast from char ** to const char **.

From-SVN: r182836
2012-01-03 11:36:25 +00:00
Richard Guenther
f3321fd715 re PR debug/51650 (LTO ICE in dwarf2out_finish, at dwarf2out.c:22501 while building libxul)
2012-01-03  Richard Guenther  <rguenther@suse.de>

	PR debug/51650
	* dwarf2out.c (dwarf2out_finish): Always create a DIE for
	the context of a limbo DIE when it does not already exist.

	* g++.dg/lto/pr51650-3_0.C: New testcase.

From-SVN: r182835
2012-01-03 11:30:27 +00:00
Paolo Carlini
da89f7f38e re PR c++/15867 (-Wredundant-decls and explicit template specialization)
/cp
2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/15867
	* decl.c (duplicate_decls): With -Wredundant-decls don't warn for
	declaration followed by specialization.

/testsuite
2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/15867
	* g++.dg/warn/Wredundant-decls-spec.C: New.

From-SVN: r182833
2012-01-03 09:33:33 +00:00
Jakub Jelinek
a973020052 re PR tree-optimization/51719 (ICE: verify_gimple failed: LHS in noreturn call with -fpartial-inlining -fprofile-use and exceptions)
PR tree-optimization/51719
	* value-prof.c (gimple_ic): When indirect call isn't noreturn,
	but direct call is, clear direct call's lhs and don't add fallthrough
	edge from dcall_bb to join_bb and PHIs.

	* g++.dg/tree-prof/pr51719.C: New test.

From-SVN: r182832
2012-01-03 10:09:41 +01:00
Andreas Krebbel
be5de7a158 s390.md ("*cmp<mode>_ccs"): Fix comment mentioning the instructions emitted by the pattern.
2012-01-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
	the instructions emitted by the pattern.
	("*TDC_insn_<mode>"): Add comment.

From-SVN: r182831
2012-01-03 09:03:35 +00:00
Richard Guenther
8b3c295192 re PR c/51730 (autoconf 2.60 through 2.67 stdbool.h check fails with GCC 4.7)
2012-01-03  Richard Guenther  <rguenther@suse.de>

	PR middle-end/51730
	* fold-const.c (fold_comparison): Properly canonicalize
	tree offset and HOST_WIDE_INT bit position.

	* gcc.dg/fold-compare-6.c: New testcase.

From-SVN: r182830
2012-01-03 08:59:21 +00:00
Uros Bizjak
96fda42cb4 ia64.c (expand_vec_perm_broadcast): Use correct operands for extzv pattern.
* config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
	operands for extzv pattern.

From-SVN: r182829
2012-01-03 09:10:27 +01:00
Jakub Jelinek
b848354bf9 re PR c++/51669 (ICE verify-gimple with openmp)
PR c++/51669
	* semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
	on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.

	* g++.dg/gomp/pr51669.C: New test.

From-SVN: r182828
2012-01-03 08:49:48 +01:00
Hans-Peter Nilsson
32a9b8e01a gfortran.h (struct gfc_expr): Add missing "struct" qualifier for member base_expr.
* gfortran.h (struct gfc_expr): Add missing "struct"
	qualifier for member base_expr.

From-SVN: r182826
2012-01-03 04:49:22 +00:00
GCC Administrator
e237144a6b Daily bump.
From-SVN: r182825
2012-01-03 00:18:43 +00:00
Balaji V. Iyer
c40b252811 Added myself under Write after Approval Maintainer.
From-SVN: r182821
2012-01-02 14:52:53 -08:00
Jakub Jelinek
341d3f6e9c re PR driver/48306 (presence of gcc subdir with . in PATH causes breakdown)
* make-relative-prefix.c (make_relative_prefix_1): Avoid
	stack overflow if PATH contains just a single entry and
	HOST_EXECUTABLE_SUFFIX needs to be used.

	PR driver/48306
	* make-relative-prefix.c: Include sys/stat.h.
	(make_relative_prefix_1): If access succeeds, check also stat
	if nstore is a regular file.

From-SVN: r182820
2012-01-02 23:18:21 +01:00
Jakub Jelinek
a4f436ffbb re PR bootstrap/51725 (segfault in stage 3 when compiling gcc/opts.c for sparc64-linux)
PR bootstrap/51725
	* cselib.c (add_mem_for_addr): Call canonical_cselib_val
	on mem_elt first.

From-SVN: r182819
2012-01-02 23:17:02 +01:00
Jason Merrill
ab807569b6 DR 1359 PR c++/51675
DR 1359
	PR c++/51675
	* method.c (walk_field_subobs): Don't check for uninitialized
	fields in a union.
	(synthesized_method_walk): Check here.

From-SVN: r182810
2012-01-02 12:53:28 -05:00
Jason Merrill
d28c2dcd71 DR 325 PR c++/51666
DR 325
	PR c++/51666
	* parser.c (cp_parser_cache_defarg): Split out...
	(cp_parser_parameter_declaration): ...from here.
	(cp_parser_save_nsdmi): Use it.
	(cp_parser_cache_group): Remove CPP_COMMA support.

From-SVN: r182809
2012-01-02 12:53:16 -05:00
Dodji Seketeli
358b9253c1 PR c++/51462 - ICE in cx_check_missing_mem_inits
gcc/cp/

	PR c++/51462
	* semantics.c (cx_check_missing_mem_inits): Don't assert in case
	of error.

gcc/testsuite/

	PR c++/51462
	* g++.dg/cpp0x/constexpr-99.C: New test.

From-SVN: r182806
2012-01-02 18:00:13 +01:00
Paolo Carlini
7d510a821a re PR c++/20140 (template function complains about "char-array initialized from wide string")
/cp
2012-01-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/20140
	* typeck2.c (digest_init_r): Use copy_init when initializing
	an array of chars.

/testsuite
2012-01-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/20140
	* g++.dg/template/init9.C: New.

From-SVN: r182805
2012-01-02 16:15:49 +00:00
Sandra Loosemore
842322d3aa invoke.texi (-flto and related options): Copy-edit.
2012-01-02  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi (-flto and related options): Copy-edit.

From-SVN: r182804
2012-01-02 10:46:39 -05:00
Richard Sandiford
21e8e84df7 mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
gcc/
	* config/mips/mips.md (loadgp_newabi_<mode>): Add missing
	earlyclobber.

From-SVN: r182803
2012-01-02 14:01:29 +00:00
Jakub Jelinek
0604604691 sse.md (*avx2_gatherdi<mode>_3, [...]): New patterns.
* config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
	New patterns.

From-SVN: r182802
2012-01-02 14:59:32 +01:00
Richard Sandiford
0d8f5d625f expr.h (move_by_pieces_ninsns): Declare.
gcc/
	* expr.h (move_by_pieces_ninsns): Declare.
	* expr.c (move_by_pieces_ninsns): Make external.
	* config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
	(mips_store_by_pieces_p): Likewise.
	* config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
	(STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
	* config/mips/mips.c (mips_move_by_pieces_p): New function.
	(mips_store_by_pieces_p): Likewise.

gcc/testsuite/
	* gcc.dg/memcpy-4.c: Add nomips16 attribute for MIPS targets.
	Increase copy to 5 bytes.  Look for at least two "mem/s/u"s,
	rather than a specific number.

From-SVN: r182801
2012-01-02 13:56:36 +00:00
Jakub Jelinek
9f929ce61f passes.c (register_one_dump_file): Free full_name.
* passes.c (register_one_dump_file): Free full_name.

	* reload1.c (reload): Don't allocate reg_max_ref_width
	here.
	(calculate_elim_costs_all_insns): Free offsets_at and
	offsets_known_at at the end and clear the pointers.

From-SVN: r182800
2012-01-02 14:34:52 +01:00
Georg-Johann Lay
ce23293b0a avr.opt (-mbranch-cost): Fix double definition of this option introduced in r180739.
* config/avr/avr.opt (-mbranch-cost): Fix double definition of
	this option introduced in r180739.

From-SVN: r182798
2012-01-02 13:09:42 +00:00
Georg-Johann Lay
884f56d1e1 re PR target/51345 ([avr] Devices with 8-bit SP need their own multilib(s))
contrib/
	PR target/51345
	* gcc_update (files_and_dependencies): Add
	gcc/config/avr/t-multilib, gcc/config/avr/multilib.h.
	
libgcc/
	PR target/51345
	* config/avr/lib1funcs.S: Remove FIXME comments.
	(SPEED_DIV): Depend on __AVR_HAVE_8BIT_SP__.
gcc/	
	PR target/51345
	* config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
	(tmake_file target=avr): Add avr/t-multilib.

	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
	to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
	* config/avr/genmultilib.awk: New file.
	* config/avr/t-multilib: New auto-generated file.
	* config/avr/multilib.h: New auto-generated file.
	* config/avr/t-avr (AVR_MCUS): New variable.
	(genopt.sh): Use it.
	(s-mlib): Depend on t-multilib.
	(t-multilib, multilib.h): New dependencies.
	(s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
	(MULTILIB_OPTIONS): Remove.
	(MULTILIB_MATCHES): Remove.
	(MULTILIB_DIRNAMES): Remove.
	(MULTILIB_EXCEPTIONS): Remove:
	* config/avr/genopt.sh: Don't use hard coded file name;
	pass AVR_MCUS from t-avr instead.

From-SVN: r182797
2012-01-02 12:51:57 +00:00
Paul Thomas
94fae14bf8 re PR fortran/51529 ([OOP] gfortran.dg/class_to_type_1.f03 is miscompiled: Uninitialized variable used)
2012-01-02  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/51529
	* trans-array.c (gfc_array_allocate): Null allocated memory of
	newly allocted class arrays.

	PR fortran/46262
	PR fortran/46328
	PR fortran/51052
	* interface.c(build_compcall_for_operator): Add a type to the
	expression.
	* trans-expr.c (conv_base_obj_fcn_val): New function.
	(gfc_conv_procedure_call): Use base_expr to detect non-variable
	base objects and, ensuring that there is a temporary variable,
	build up the typebound call using conv_base_obj_fcn_val.
	(gfc_trans_class_assign): Pick out class procedure pointer
	assignments and do the assignment with no further prcessing.
	(gfc_trans_class_array_init_assign, gfc_trans_class_init_assign
	gfc_trans_class_assign): Move to top of file.
	* gfortran.h : Add 'base_expr' field to gfc_expr.
	* resolve.c (get_declared_from_expr): Add 'types' argument to
	switch checking of derived types on or off.
	(resolve_typebound_generic_call): Set the new argument.
	(resolve_typebound_function, resolve_typebound_subroutine):
	Set 'types' argument for get_declared_from_expr appropriately.
	Identify base expression, if not a variable, in the argument
	list of class valued calls. Assign it to the 'base_expr' field
	of the final expression. Strip away all references after the
	last class reference.


2012-01-02  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/46262
	PR fortran/46328
	PR fortran/51052
	* gfortran.dg/typebound_operator_7.f03: New.
	* gfortran.dg/typebound_operator_8.f03: New.

From-SVN: r182796
2012-01-02 12:46:08 +00:00
Georg-Johann Lay
9ecd3a64a9 avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
* config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".

From-SVN: r182795
2012-01-02 12:33:44 +00:00
Georg-Johann Lay
8c57e5473e Implement light-weight DImode support.
gcc/
	Implement light-weight DImode support.
	* config/avr/avr-dimode.md: New file.
	* config/avr/avr.md: Include it.
	(adjust_len): Add plus64, compare64.
	(HIDI): Remove code iterator.
	(code_stdname): New code attribute.
	(rotx, rotsmode): Remove DI.
	(rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
	as code iterator.
	* config/avr/avr-protos.h (avr_have_dimode): New.
	(avr_out_plus64, avr_out_compare64): New.
	* config/avr/avr.c (avr_out_compare): Handle DImode.
	(avr_have_dimode): New variable definition and initialization.
	(avr_out_compare64, avr_out_plus64): New functions.
	(avr_out_plus_1): Use simplify_unary_operation to negate xval.
	(adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
	(avr_compare_pattern): Skip DImode comparisons.

libgcc/
	Implement light-weight DImode support.
	* config/avr/t-avr (LIB1ASMFUNCS): Add _adddi3, _adddi3_s8,
	_subdi3, _cmpdi2, _cmpdi2_s8, _rotldi3.
	* config/avr/lib1funcs.S (__adddi3, __adddi3_s8, __subdi3,
	__cmpdi2, __cmpdi2_s8, __rotldi3): New functions.

From-SVN: r182794
2012-01-02 12:30:56 +00:00
Richard Sandiford
5f595f1675 re PR target/51729 (dspr2-MULT.c and dspr2-MULTU.c fail for MIPS)
gcc/testsuite/
	PR target/51729
	* gcc.target/mips/dspr2-MULT.c: Remove -ffixed-hi -ffixed-lo.
	XFAIL.
	* gcc.target/mips/dspr2-MULTU.c: Likewise.

From-SVN: r182793
2012-01-02 11:33:35 +00:00
Richard Sandiford
e3763a5b44 pr46309.c: Add -mtune=octeon2 for MIPS.
gcc/testsuite/
	* gcc.dg/pr46309.c: Add -mtune=octeon2 for MIPS.

From-SVN: r182792
2012-01-02 11:11:45 +00:00
Richard Sandiford
c77233981a constexpr-rom.C: Look for .rdata rather than rodata for MIPS.
gcc/testsuite/
	* g++.dg/cpp0x/constexpr-rom.C: Look for .rdata rather than rodata
	for MIPS.

From-SVN: r182791
2012-01-02 11:03:43 +00:00
Richard Sandiford
2da60e960b io_real_boz_3.f90: Require fortran_real_16.
gcc/testsuite/
	* gfortran.dg/io_real_boz_3.f90: Require fortran_real_16.
	* gfortran.dg/io_real_boz_4.f90: Likewise.
	* gfortran.dg/io_real_boz_5.f90: Likewise.

From-SVN: r182789
2012-01-02 11:00:30 +00:00
Richard Guenther
d18ede3732 re PR bootstrap/51686 ("make install-strip-gcc" didn't install liblto-plugin* files)
2012-01-02  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/51686
	* Makefile.def (install-strip-gcc): Depend on install-strip-lto-plugin.
	* Makefile.in: Regenerate.

From-SVN: r182788
2012-01-02 10:59:04 +00:00
Richard Sandiford
ccd0ce1148 devirt2.C: Add -mno-abicalls for MIPS.
gcc/testsuite/
	* g++.dg/opt/devirt2.C: Add -mno-abicalls for MIPS.

From-SVN: r182787
2012-01-02 10:57:23 +00:00
Revital Eres
8b61e8631a SMS: Prevent the creation of reg-moves for definitions with MODE_CC
From-SVN: r182786
2012-01-02 10:54:00 +00:00
Richard Guenther
ba768e1850 re PR other/51679 (spurious parenthesis for -fassociative-math in manual and man page)
2012-01-02  Richard Guenther  <rguenther@suse.de>

	PR other/51679
	* invoke.texi (fassociative-math): Remove spurious paranthesis.

From-SVN: r182785
2012-01-02 10:46:01 +00:00
Eric Botcazou
6a521d169d * gnatvsn.ads (Current_Year): Bump to 2012.
From-SVN: r182783
2012-01-02 10:30:54 +00:00
Tobias Burnus
5a155783a3 re PR fortran/51682 (Coarray ICEs when compiling with -fdefault-integer-8)
2012-01-02  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51682
        * trans-intrinsic.c (trans_this_image, trans_image_index,
        trans_num_images, conv_intrinsic_cobound): Fold_convert the
        caf_num_images/caf_this_images variables to the correct int kind.

2012-01-02  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51682
        * gfortran.dg/coarray/image_index_3.f90: New.

From-SVN: r182781
2012-01-02 10:54:37 +01:00
GCC Administrator
6e7ff14fe1 Daily bump.
From-SVN: r182780
2012-01-02 00:18:49 +00:00
Paolo Carlini
11cc5f49dd re PR c++/16603 (Incorrect enumerator type before enumeration's closing brace)
/cp
2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/16603
	* decl.c (build_enumerator): Don't call perform_integral_promotions
	on the value.

/testsuite
2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/16603
	* g++.dg/parse/enum8.C: New.

From-SVN: r182776
2012-01-01 22:33:31 +00:00
Paolo Carlini
9f88ff5a1f re PR c++/51379 ([C++0x] [DR 799] reinterpret_cast is not particularly useful)
/cp
2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51379
	* typeck.c (build_reinterpret_cast_1): Implement resolution of
	DR 799.

/testsuite
2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51379
	* g++.dg/conversion/reinterpret4.C: New.
	* g++.dg/conversion/reinterpret1.C: Adjust.

From-SVN: r182775
2012-01-01 20:21:36 +00:00
Paolo Carlini
b81e8df838 constexpr-delegating2.C: Add missing piece.
2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp0x/constexpr-delegating2.C: Add missing piece.

From-SVN: r182774
2012-01-01 20:02:02 +00:00
Jakub Jelinek
66f1b195f6 gcc.c (process_command): Update copyright notice dates.
gcc/
	* gcc.c (process_command): Update copyright notice dates.
	* gcov.c (print_version): Likewise.
	* gcov-dump.c (print_version): Likewise.
	* mips-tfile.c (main): Likewise.
	* mips-tdump.c (main): Likewise.
gcc/fortran/
	* gfortranspec.c (lang_specific_driver): Update copyright notice
	dates.
gcc/java/
	* jcf-dump.c (version): Update copyright notice dates.
libmudflap/
	* mf-runtime.c (__mf_usage): Update copyright notice dates.
libjava/
	* gnu/gcj/convert/Convert.java (version): Update copyright notice
	dates.
	* gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise.
libjava/classpath/
	* gnu/java/rmi/registry/RegistryImpl.java (version): Update
	copyright notice dates.
	* tools/gnu/classpath/tools/orbd/Main.java (run): Likewise.

From-SVN: r182773
2012-01-01 20:09:46 +01:00
Fabien Chêne
5135baed7d crash25.C: Adjust.
gcc/testsuite/ChangeLog

2011-12-31  Fabien Chene  <fabien@gcc.gnu.org>

	* g++.old-deja/g++.brendan/crash25.C: Adjust.
	* g++.old-deja/g++.brendan/crash56.C: Likewise.
	* g++.old-deja/g++.jason/access14.C: Likewise.
	* g++.old-deja/g++.jason/access8.C: Likewise.
	* g++.old-deja/g++.jason/access1.C: Likewise.
	* g++.old-deja/g++.other/access3.C: Likewise.
	* g++.old-deja/g++.other/access5.C: Likewise.
	* g++.old-deja/g++.law/unsorted1.C: Likewise.
	* g++.old-deja/g++.law/visibility22.C: Likewise.
	* g++.old-deja/g++.law/visibility26.C: Likewise.
	* g++.old-deja/g++.mike/p2746.C: Likewise.
	* g++.dg/debug/using1.C: Likewise.
	* g++.dg/lookup/using51.C: Likewise.
	* g++.dg/inherit/using5.C: Likewise.
	* g++.dg/inherit/pr30297.C: Likewise.
	* g++.dg/inherit/access8.C: Likewise.
	* g++.dg/torture/pr39362.C: Likewise.
	* g++.dg/template/crash13.C: Likewise.
	* g++.dg/template/using10.C: Likewise.

gcc/cp/ChangeLog

2011-12-31  Fabien Chene  <fabien@gcc.gnu.org>

	* parser.c (cp_parser_using_declaration): Add a warning about
	deprecated access declarations when no errors were encountered
	while parsing the access declaration. Save the first token in
	order to emit the warning at the right place.

From-SVN: r182772
2012-01-01 18:26:23 +01:00
Thomas Koenig
b4cbc46c32 backport: re PR fortran/51502 (Potentially wrong code generation due to wrong implict_pure check)
2012-01-01  Thomas König  <tkoenig@gcc.gnu.org>

	Backport from trunk
	PR fortran/51502
	* lib/gcc-dg.exp (scan-module-absence):  New function.
	* gfortran.dg/implicit_pure_2.f90:  New test.

From-SVN: r182771
2012-01-01 16:27:45 +00:00
Ira Rosen
f2c74cc43a re PR tree-optimization/51704 (ICE: vector VEC(vec_void_p,base) index domain error, in vinfo_for_stmt at tree-vectorizer.h:620 with -O3 -fno-tree-copy-prop -fno-tree-fre)
PR tree-optimization/51704
        * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
        a use is inside the basic block or loop before accessing its
        vect info.

From-SVN: r182769
2012-01-01 13:52:13 +00:00
Paolo Carlini
1d2314ed1c re PR c++/51723 ([C++0x] delegating constructor ICE)
2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51723
	* g++.dg/cpp0x/constexpr-delegating2.C: New.

From-SVN: r182768
2012-01-01 13:31:48 +00:00
Jan Hubicka
06f1716bd7 re PR rtl-optimization/51069 (ICE in verify_loop_structure, at cfgloop.c:1559)
PR rtl-optimization/51069
	* cfgloopmanip.c (remove_path): Removing path making irreducible
	region unconditional makes BB part of the region.
	* gcc.c-torture/compile/pr51069.c: New testcase.

From-SVN: r182767
2012-01-01 12:07:34 +00:00
GCC Administrator
41d2ea5798 Daily bump.
From-SVN: r182765
2012-01-01 00:18:59 +00:00
Jakub Jelinek
45a5b21a77 re PR tree-optimization/51683 (__builtin_memcpy etc. with constant first argument optimized away by ccp)
PR tree-optimization/51683
	* tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
	calls with side-effects.
	* tree-ssa-ccp.c (ccp_fold_stmt): Likewise.

	* gcc.dg/pr51683.c: New test.

From-SVN: r182761
2012-01-01 00:53:57 +01:00
Alexandre Oliva
6f2ffb4b99 cselib.h (cselib_add_permanent_equiv): Declare.
* cselib.h (cselib_add_permanent_equiv): Declare.
(canonical_cselib_val): New.
* cselib.c (new_elt_loc_list): Rework to support value
equivalences.  Adjust all callers.
(preserve_only_constants): Retain value equivalences.
(references_value_p): Retain preserved values.
(rtx_equal_for_cselib_1): Handle value equivalences.
(cselib_invalidate_regno): Use canonical value.
(cselib_add_permanent_equiv): New.
* alias.c (find_base_term): Reset locs lists while recursing.
* var-tracking.c (val_bind): New.  Don't add equivalences
present in cselib table, compared with code moved from...
(val_store): ... here.
(val_resolve): Use val_bind.
(VAL_EXPR_HAS_REVERSE): Drop.
(add_uses): Do not create MOps for addresses.  Do not mark
non-REG non-MEM expressions as requiring resolution.
(reverse_op): Record reverse as a cselib equivalence.
(add_stores): Use it.  Do not create MOps for addresses.
Do not require resolution for non-REG non-MEM expressions.
Simplify support for reverse operations.
(compute_bb_dataflow): Drop reverse support.
(emit_notes_in_bb): Likewise.
(create_entry_value): Rename to...
(record_entry_value): ... this.  Use cselib equivalences.
(vt_add_function_parameter): Adjust.

From-SVN: r182760
2011-12-31 20:02:48 +00:00