aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/config/i386/i386.c
Commit message (Collapse)AuthorAgeFilesLines
* [GCC] Update with latest retpoline fixes from Intel.Caroline Tice2018-01-291-57/+212
| | | | | | | | | | | | Intel has updated their retpoline patches since we created our original patch. This CL updates our retpoline changes to match the latest from Intel. Bug: None Test: Tested extensively in ChromeOS. Built x86 platform & kernel images in Android. Change-Id: Id1a18cb1f1f4461832a017cb5c5d59e5400d9d08
* [GCC] Commit retpoline patch code, for fixing security issues.Caroline Tice2018-01-081-318/+554
| | | | | | | | | | | | This applies the Intel GCC code patches, to allow compiling with appropriate flags for mitigating the indirect branch variant of the speculative execution security flaw. Bug: None Test: This is already in place in ChromeOS and has been tested on the ChromeOS kernels. Change-Id: Ideffb433b697f1fe7e4ca2c1eaa968160abfcc8b
* Unify ChromeOS and Android versions of GCC.Caroline Tice2016-02-261-6/+0
| | | | | | | | This CL updates Android's GCC to match ChromeOS's GCC (with appropriate patches applied in both places to make sure no cherry-picked changes are lost). Change-Id: I390140c449b0e5df9ee78a06268319c8c510302f
* Merge "[4.9] Disable inlining of memcpy for x86 with 'rep movs'."Dan Albert2016-01-041-1/+1
|\
| * [4.9] Disable inlining of memcpy for x86 with 'rep movs'.Alexander Ivchenko2015-09-251-1/+1
| | | | | | | | | | | | | | | | | | | | On big length 'rep movs' are less efficient than libcall of highly-optimized Bionic memcpy. Change-Id: I9435b9e438e0e40c28c505c43ec7f9797384afd6 Signed-off-by: Andrew Senkevich <andrew.senkevich@intel.com> Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
* | Default to TLS guard for x86 stack-protector.Than McIntosh2015-11-171-3/+2
|/ | | | | | | | | Change the default guard flavor for -fstack-protector on x86 from global to TLS. The original default was intended to provide compatibility with pre-4.2. versions of Android, which is less of concern now. Bug: 25183510 Change-Id: I71931e778efed2ba0fa2a6740f8d5510776c113f
* Reapplied the patch 525b640e8dc9e6063897a7ce8034283Alexander Ivchenko2015-09-141-0/+6
| | | | | | | | | | | | | | | | | ... with peeling limit set to 400 instead of 200 as it used to be. [4.9] Another backport from trunk of additional slm tuning. 2014-11-21 Evgeny Stupachenko <evstupac@gmail.com> * config/i386/i386.c (ix86_option_override_internal): Increase PARAM_MAX_COMPLETELY_PEELED_INSNS. Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com> Signed-off-by: Egor Kochetov <egor.kochetov@intel.com> (cherry picked from commit 1f170f4a426b1ed354345de5aaba634036854e43) Change-Id: Ie395a6602c8305530ebc02f9006d84f98365857a
* Synchronize with google/gcc-4_9 to r224707 (from r214835)Yiran Wang2015-06-291-98/+251
| | | | Change-Id: I3d6f06fc613c8f8b6a82143dc44b7338483aac5d
* [4.9] Several improvements in code generation for x86. Backport from trunk.Alexander Ivchenko2015-03-171-24/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2014-11-21 Evgeny Stupachenko <evstupac@gmail.com> PR target/60451 * config/i386/i386.c (expand_vec_perm_even_odd_pack): New. (expand_vec_perm_even_odd_1): Add new expand for V8HI mode, replace for V16QI, V16HI and V32QI modes. (ix86_expand_vec_perm_const_1): Add new expand. 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com> * tree-vect-data-refs.c (vect_grouped_store_supported): New check for stores group of length 3. (vect_permute_store_chain): New permutations for stores group of length 3. * tree-vect-stmts.c (vect_model_store_cost): Change cost of vec_perm_shuffle for the new permutations. 2014-11-28 Evgeny Stupachenko <evstupac@gmail.com> * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift permutations to loads group of size 3. 2014-12-18 Bin Cheng <bin.cheng@arm.com> PR tree-optimization/62178 * tree-ssa-loop-ivopts.c (cheaper_cost_with_cand): New function. (iv_ca_replace): New function. (try_improve_iv_set): New parameter try_replace_p. Break local optimal fixed-point by calling iv_ca_replace. (find_optimal_iv_set_1): Pass new argument to try_improve_iv_set. Change-Id: I5dca8236d3807cedc5e09d7eda65f0ccec9f5cb2 Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
* Cherry-pick: Increase PARAM_MAX_COMPLETELY_PEELED_INSNS when branch is costlyUros Bizjak2015-02-111-6/+0
| | | | | | | | | | | Author: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Sat Nov 22 19:02:12 2014 +0000 * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200. * config/i386/i386.c (ix86_option_override_internal): Do not increase PARAM_MAX_COMPLETELY_PEELED_INSNS. Change-Id: I202e14a29f2436872910301efec863afdd4127e7
* [4.9] Another backport from trunk of additional slm tuning.Alexander Ivchenko2014-12-031-0/+6
| | | | | | | | | | 2014-11-21 Evgeny Stupachenko <evstupac@gmail.com> * config/i386/i386.c (ix86_option_override_internal): Increase PARAM_MAX_COMPLETELY_PEELED_INSNS. Change-Id: I529a9297cb8d230a5821d73d5b462d433a8c2108 Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
* Merge "[gcc-4.9] Merge svn r214745 from google/gcc-4_9 branch. Merge gcc-4_9 ↵Andrew Hsieh2014-09-031-6/+9
|\ | | | | | | source r214745 from google/gcc-4_9 branch."
| * [gcc-4.9] Merge svn r214745 from google/gcc-4_9 branch.Rong Xu2014-09-021-6/+9
| | | | | | | | | | | | Merge gcc-4_9 source r214745 from google/gcc-4_9 branch. Change-Id: Ie6fa0fd72f4b4eec3adc4db4bb922e652d1c2605
* | Merge "[4.8, 4.9] Backport of additional SLM tuning."Andrew Hsieh2014-09-031-5/+27
|\ \ | |/ |/|
| * [4.8, 4.9] Backport of additional SLM tuning.Alexander Ivchenko2014-08-061-5/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Six patches from trunk, reg-tested via 'make check': 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com> * tree-vect-data-refs.c (vect_grouped_load_supported): New check for loads group of length 3. (vect_permute_load_chain): New permutations for loads group of length 3. * tree-vect-stmts.c (vect_model_load_cost): Change cost of vec_perm_shuffle for the new permutations. 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com> * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for Silvermont. 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com> * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition. * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag. * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles for TARGET_SLOW_PSHUFB 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com> * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost. * config/i386/i386.c (intel_cost): Ditto. 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com> * config/i386/i386.c (ix86_reassociation_width): Add alternative for vector case. * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New. * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New. * tree-vect-data-refs.c (vect_shift_permute_load_chain): New. Introduces alternative way of loads group permutaions. (vect_transform_grouped_load): Try alternative way of permutations. 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com> * config/i386/sse.md (*ssse3_palignr<mode>_perm): New. * config/i386/predicates.md (palignr_operand): New. Indicates if permutation is suitable for palignr instruction. Change-Id: I5e505735ce3dc0ec3c2a1151713a119b24d712fe Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
* | [gcc-4.9] Merge svn r213650 from google/gcc-4_9 branchRong Xu2014-08-061-1/+1
|/ | | | | | | Merge svn r213650 from google/gcc-4_9 branch. Tested with arm,x86,mips,arm64,x86_64,mips64 build in liunux/windows. Change-Id: I0c07f67d516074172aa393003eee664d01f2e0f2
* [4.9] Switch gcc-4.9 to use google/gcc-4_9 branch.Rong Xu2014-07-291-16/+346
| | | | | | | | | | | | | | This source drop uses svn version r212828 of google/gcc-4.9 branch. We also cherry-picked r213062, r213063 and r213064 to fix windows build issues. All gcc-4.9 patches before July 3rd are ported to google/gcc-4.9. The following prior commits has not been merged to google branch yet. (They are included in this commit). e7af147f979e657fe2df00808e5b4319b0e088c6, baf87df3cb2683649ba7e9872362a7e721117c23, and c231900e5dcc14d8296bd9f62b45997a49d4d5e7. Change-Id: I4bea3ea470387ff751c2be4cb0d4a12059b9299b
* [4.9] Refresh GCC 4.9 to the 20140514 snapshot.Ben Cheng2014-05-171-7/+15
| | | | | | For critical bug fixes including devirtualization and codegen. Change-Id: I8138d3dc408fc12db5eecb01d2753d39219712f2
* [4.9] GCC 4.9.0 official release refreshBen Cheng2014-04-221-3/+3
| | | | Change-Id: Ic99a7da8b44b789a48aeec93b33e93944d6e6767
* Initial checkin of GCC 4.9.0 from trunk (r208799).Ben Cheng2014-03-251-0/+47138
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba