2016-10-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR middle-end/22141
* Makefile.in (OBJS): Add gimple-ssa-store-merging.o.
* common.opt (fstore-merging): New Optimization option.
* opts.c (default_options_table): Add entry for
OPT_ftree_store_merging.
* fold-const.h (can_native_encode_type_p): Declare prototype.
* fold-const.c (can_native_encode_type_p): Define.
* params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Define.
(PARAM_MAX_STORES_TO_MERGE): Likewise.
* timevar.def (TV_GIMPLE_STORE_MERGING): New timevar.
* passes.def: Insert pass_tree_store_merging.
* tree-pass.h (make_pass_store_merging): Declare extern
prototype.
* gimple-ssa-store-merging.c: New file.
* doc/invoke.texi (Optimization Options): Document
-fstore-merging.
(--param documentation): Document store-merging-allow-unaligned
and max-stores-to-merge.
2016-10-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Jakub Jelinek <jakub@redhat.com>
Andrew Pinski <pinskia@gmail.com>
PR middle-end/22141
PR rtl-optimization/23684
* gcc.c-torture/execute/pr22141-1.c: New test.
* gcc.c-torture/execute/pr22141-2.c: Likewise.
* gcc.target/aarch64/ldp_stp_1.c: Adjust for -fstore-merging.
* gcc.target/aarch64/ldp_stp_4.c: Likewise.
* gcc.dg/store_merging_1.c: New test.
* gcc.dg/store_merging_2.c: Likewise.
* gcc.dg/store_merging_3.c: Likewise.
* gcc.dg/store_merging_4.c: Likewise.
* gcc.dg/store_merging_5.c: Likewise.
* gcc.dg/store_merging_6.c: Likewise.
* gcc.dg/store_merging_7.c: Likewise.
* gcc.target/i386/pr22141.c: Likewise.
* gcc.target/i386/pr34012.c: Add -fno-store-merging to dg-options.
* g++.dg/init/new17.C: Likewise.
Co-Authored-By: Andrew Pinski <pinskia@gmail.com>
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r241649
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| addr-const1.C | Loading commit data... | |
| aggr1.C | Loading commit data... | |
| aggr10.C | Loading commit data... | |
| aggr11.C | Loading commit data... | |
| aggr12.C | Loading commit data... | |
| aggr13.C | Loading commit data... | |
| aggr2.C | Loading commit data... | |
| aggr3.C | Loading commit data... | |
| aggr4.C | Loading commit data... | |
| aggr5.C | Loading commit data... | |
| aggr6.C | Loading commit data... | |
| aggr7.C | Loading commit data... | |
| aggr8.C | Loading commit data... | |
| aggr9.C | Loading commit data... | |
| array0.C | Loading commit data... | |
| array1.C | Loading commit data... | |
| array10.C | Loading commit data... | |
| array11.C | Loading commit data... | |
| array12.C | Loading commit data... | |
| array13.C | Loading commit data... | |
| array14.C | Loading commit data... | |
| array15.C | Loading commit data... | |
| array16.C | Loading commit data... | |
| array17.C | Loading commit data... | |
| array18.C | Loading commit data... | |
| array19.C | Loading commit data... | |
| array2.C | Loading commit data... | |
| array20.C | Loading commit data... | |
| array21.C | Loading commit data... | |
| array22.C | Loading commit data... | |
| array23.C | Loading commit data... | |
| array24.C | Loading commit data... | |
| array25.C | Loading commit data... | |
| array26.C | Loading commit data... | |
| array27.C | Loading commit data... | |
| array28.C | Loading commit data... | |
| array3.C | Loading commit data... | |
| array30.C | Loading commit data... | |
| array31.C | Loading commit data... | |
| array32.C | Loading commit data... | |
| array33.C | Loading commit data... | |
| array34.C | Loading commit data... | |
| array35.C | Loading commit data... | |
| array36.C | Loading commit data... | |
| array37.C | Loading commit data... | |
| array38.C | Loading commit data... | |
| array39.C | Loading commit data... | |
| array4.C | Loading commit data... | |
| array40.C | Loading commit data... | |
| array41.C | Loading commit data... | |
| array42.C | Loading commit data... | |
| array43.C | Loading commit data... | |
| array44.C | Loading commit data... | |
| array45.C | Loading commit data... | |
| array46.C | Loading commit data... | |
| array5.C | Loading commit data... | |
| array6.C | Loading commit data... | |
| array7.C | Loading commit data... | |
| array8.C | Loading commit data... | |
| array9.C | Loading commit data... | |
| assign1.C | Loading commit data... | |
| attrib1.C | Loading commit data... | |
| base1.C | Loading commit data... | |
| bitfield1.C | Loading commit data... | |
| bitfield2.C | Loading commit data... | |
| bitfield3.C | Loading commit data... | |
| bitfield4.C | Loading commit data... | |
| bitfield5.C | Loading commit data... | |
| brace1.C | Loading commit data... | |
| brace2.C | Loading commit data... | |
| brace3.C | Loading commit data... | |
| brace4.C | Loading commit data... | |
| brace5.C | Loading commit data... | |
| brace6.C | Loading commit data... | |
| byval1.C | Loading commit data... | |
| call1.C | Loading commit data... | |
| cleanup1.C | Loading commit data... | |
| cleanup2.C | Loading commit data... | |
| cleanup3.C | Loading commit data... | |
| complex1.C | Loading commit data... | |
| const1.C | Loading commit data... | |
| const10.C | Loading commit data... | |
| const11.C | Loading commit data... | |
| const12.C | Loading commit data... | |
| const2.C | Loading commit data... | |
| const3.C | Loading commit data... | |
| const4.C | Loading commit data... | |
| const5.C | Loading commit data... | |
| const6.C | Loading commit data... | |
| const7.C | Loading commit data... | |
| const8.C | Loading commit data... | |
| const9.C | Loading commit data... | |
| constant1.C | Loading commit data... | |
| copy1.C | Loading commit data... | |
| copy2.C | Loading commit data... | |
| copy3.C | Loading commit data... | |
| copy4.C | Loading commit data... | |
| copy5.C | Loading commit data... | |
| copy6.C | Loading commit data... | |
| copy7.C | Loading commit data... | |
| ctor1.C | Loading commit data... | |
| ctor10.C | Loading commit data... | |
| ctor11.C | Loading commit data... | |
| ctor2.C | Loading commit data... | |
| ctor3.C | Loading commit data... | |
| ctor4-1.C | Loading commit data... | |
| ctor4.C | Loading commit data... | |
| ctor5.C | Loading commit data... | |
| ctor6.C | Loading commit data... | |
| ctor7.C | Loading commit data... | |
| ctor8.C | Loading commit data... | |
| ctor9.C | Loading commit data... | |
| delete1.C | Loading commit data... | |
| delete2.C | Loading commit data... | |
| dso_handle1.C | Loading commit data... | |
| dso_handle2.C | Loading commit data... | |
| dtor1.C | Loading commit data... | |
| dtor2.C | Loading commit data... | |
| dtor3.C | Loading commit data... | |
| dtor4.C | Loading commit data... | |
| elide1.C | Loading commit data... | |
| elide2.C | Loading commit data... | |
| elide3.C | Loading commit data... | |
| elide4.C | Loading commit data... | |
| elide5.C | Loading commit data... | |
| empty1.C | Loading commit data... | |
| enum1.C | Loading commit data... | |
| enum2.C | Loading commit data... | |
| error1.C | Loading commit data... | |
| error2.C | Loading commit data... | |
| explicit1.C | Loading commit data... | |
| explicit2.C | Loading commit data... | |
| explicit3.C | Loading commit data... | |
| explicit4.C | Loading commit data... | |
| float1.C | Loading commit data... | |
| for1.C | Loading commit data... | |
| for2.C | Loading commit data... | |
| for3.C | Loading commit data... | |
| global1.C | Loading commit data... | |
| goto1.C | Loading commit data... | |
| goto2.C | Loading commit data... | |
| goto3.C | Loading commit data... | |
| init-ref1.C | Loading commit data... | |
| init-ref2.C | Loading commit data... | |
| init-ref3.C | Loading commit data... | |
| init-ref4.C | Loading commit data... | |
| inline1.C | Loading commit data... | |
| lifetime1.C | Loading commit data... | |
| lifetime2.C | Loading commit data... | |
| lifetime3.C | Loading commit data... | |
| member1.C | Loading commit data... | |
| mutable1.C | Loading commit data... | |
| new1.C | Loading commit data... | |
| new10.C | Loading commit data... | |
| new11.C | Loading commit data... | |
| new12.C | Loading commit data... | |
| new13.C | Loading commit data... | |
| new14.C | Loading commit data... | |
| new15.C | Loading commit data... | |
| new16.C | Loading commit data... | |
| new17.C | Loading commit data... | |
| new18.C | Loading commit data... | |
| new19.C | Loading commit data... | |
| new2.C | Loading commit data... | |
| new20.C | Loading commit data... | |
| new21.C | Loading commit data... | |
| new22.C | Loading commit data... | |
| new23.C | Loading commit data... | |
| new24.C | Loading commit data... | |
| new25.C | Loading commit data... | |
| new26.C | Loading commit data... | |
| new27.C | Loading commit data... | |
| new28.C | Loading commit data... | |
| new29.C | Loading commit data... | |
| new3.C | Loading commit data... | |
| new30.C | Loading commit data... | |
| new31.C | Loading commit data... | |
| new32.C | Loading commit data... | |
| new33.C | Loading commit data... | |
| new34.C | Loading commit data... | |
| new35.C | Loading commit data... | |
| new36.C | Loading commit data... | |
| new37.C | Loading commit data... | |
| new38.C | Loading commit data... | |
| new39.C | Loading commit data... | |
| new4.C | Loading commit data... | |
| new40.C | Loading commit data... | |
| new41.C | Loading commit data... | |
| new42.C | Loading commit data... | |
| new43.C | Loading commit data... | |
| new44.C | Loading commit data... | |
| new45.C | Loading commit data... | |
| new46.C | Loading commit data... | |
| new47.C | Loading commit data... | |
| new5.C | Loading commit data... | |
| new6.C | Loading commit data... | |
| new7.C | Loading commit data... | |
| new8.C | Loading commit data... | |
| new9.C | Loading commit data... | |
| no-elide1.C | Loading commit data... | |
| null1.C | Loading commit data... | |
| placement1.C | Loading commit data... | |
| placement2.C | Loading commit data... | |
| placement3.C | Loading commit data... | |
| placement4.C | Loading commit data... | |
| placement5.C | Loading commit data... | |
| pm1.C | Loading commit data... | |
| pm2.C | Loading commit data... | |
| pm3.C | Loading commit data... | |
| pmf1.C | Loading commit data... | |
| pr20039.C | Loading commit data... | |
| pr25811-3.C | Loading commit data... | |
| pr25811-4.C | Loading commit data... | |
| pr25811.C | Loading commit data... | |
| pr29043.C | Loading commit data... | |
| pr29571.C | Loading commit data... | |
| pr42556.C | Loading commit data... | |
| pr42844.C | Loading commit data... | |
| pr43453.C | Loading commit data... | |
| pr43719.C | Loading commit data... | |
| pr43890.C | Loading commit data... | |
| pr44086.C | Loading commit data... | |
| pr48859.C | Loading commit data... | |
| pr55497.C | Loading commit data... | |
| pr58811.C | Loading commit data... | |
| pr60572.C | Loading commit data... | |
| pr64527.C | Loading commit data... | |
| pr66857.C | Loading commit data... | |
| pr69658.C | Loading commit data... | |
| pr70501.C | Loading commit data... | |
| pr71516.C | Loading commit data... | |
| ptrfn1.C | Loading commit data... | |
| ptrfn2.C | Loading commit data... | |
| ptrfn3.C | Loading commit data... | |
| ptrmem1.C | Loading commit data... | |
| ptrmem2.C | Loading commit data... | |
| ptrmem3.C | Loading commit data... | |
| ptrmem4.C | Loading commit data... | |
| ref1.C | Loading commit data... | |
| ref10.C | Loading commit data... | |
| ref11.C | Loading commit data... | |
| ref12.C | Loading commit data... | |
| ref13.C | Loading commit data... | |
| ref14.C | Loading commit data... | |
| ref15.C | Loading commit data... | |
| ref16.C | Loading commit data... | |
| ref17.C | Loading commit data... | |
| ref18.C | Loading commit data... | |
| ref19.C | Loading commit data... | |
| ref2.C | Loading commit data... | |
| ref20.C | Loading commit data... | |
| ref21.C | Loading commit data... | |
| ref22.C | Loading commit data... | |
| ref3.C | Loading commit data... | |
| ref4.C | Loading commit data... | |
| ref5.C | Loading commit data... | |
| ref6.C | Loading commit data... | |
| ref7.C | Loading commit data... | |
| ref8.C | Loading commit data... | |
| ref9.C | Loading commit data... | |
| reference1.C | Loading commit data... | |
| reference2.C | Loading commit data... | |
| reference3.C | Loading commit data... | |
| save1.C | Loading commit data... | |
| self1.C | Loading commit data... | |
| static-init1.C | Loading commit data... | |
| static-init2.C | Loading commit data... | |
| static-init3.C | Loading commit data... | |
| static1.C | Loading commit data... | |
| static2.C | Loading commit data... | |
| static3.C | Loading commit data... | |
| static4.C | Loading commit data... | |
| string1.C | Loading commit data... | |
| struct1.C | Loading commit data... | |
| struct2.C | Loading commit data... | |
| struct3.C | Loading commit data... | |
| switch1.C | Loading commit data... | |
| synth1.C | Loading commit data... | |
| synth2.C | Loading commit data... | |
| synth3.C | Loading commit data... | |
| synth4.C | Loading commit data... | |
| uninitialized1.C | Loading commit data... | |
| union1.C | Loading commit data... | |
| union2.C | Loading commit data... | |
| value1.C | Loading commit data... | |
| value10.C | Loading commit data... | |
| value2.C | Loading commit data... | |
| value3.C | Loading commit data... | |
| value4.C | Loading commit data... | |
| value5.C | Loading commit data... | |
| value6.C | Loading commit data... | |
| value7.C | Loading commit data... | |
| value8.C | Loading commit data... | |
| value9.C | Loading commit data... | |
| vbase1.C | Loading commit data... | |
| vector1.C | Loading commit data... | |
| void1.C | Loading commit data... | |
| volatile1.C | Loading commit data... | |
| volatile2.C | Loading commit data... |