summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [AVX-512] Teach X86InstrInfo::getLargestLegalSuperClass to inflate to ↵Craig Topper2016-08-012-40/+62
| | | | | | | | FR32X/FR64X if AVX512 is supported and VR128X/VR256X if VLX is supported. Had to update a stack folding test to clobber the other 16 registers since this now made them get used instead of spilling. llvm-svn: 277321
* [AVX512] Replace scalar fp arithmetic intrinsics with native IR in an AVX512 ↵Craig Topper2016-08-011-24/+40
| | | | | | | | test. The intrinsics aren't lowered to AVX512 instructions. The intrinsics really should be removed and autoupgraded. llvm-svn: 277320
* [AVX-512] Use FR32X/FR64X/VR128X/VR256X register classes in addRegisterClass ↵Craig Topper2016-08-011-15/+30
| | | | | | if AVX512(for FR32X/FR64) or VLX(for VR128X/VR256) is supported. This is a minimal requirement to be able to allocate all 32 registers. llvm-svn: 277319
* [X86] Move mask register handling into the main switch of ↵Craig Topper2016-08-011-22/+6
| | | | | | getLoadStoreRegOpcode. No functional change intended. llvm-svn: 277318
* Revert r277313 and r277314.Sean Silva2016-08-0111-262/+27
| | | | | | | | | | | | | | | They seem to trigger an LSan failure: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/15140/steps/check-llvm%20asan/logs/stdio Revert "Add the tests for r277313" This reverts commit r277314. Revert "CodeExtractor : Add ability to preserve profile data." This reverts commit r277313. llvm-svn: 277317
* Move this test to x86-specific directory.Sean Silva2016-08-012-0/+3
| | | | | | | | | No bots have yelled yet, but this test references an x86 intrinsic. Also, it invokes llc on x86 IR. Fixup to r277315. llvm-svn: 277316
* Fix - CodeExtractor : Inherit Target Dependent Attributes from the parent ↵Sean Silva2016-08-012-1/+56
| | | | | | | | | | | | | | | | | | | function. When extracting a set of blocks make sure to inherit all of the target dependent attributes to make sure that the function will be valid for lowering. One example is the "target-features" attribute for x86, if the extracted region has functionality that relies on a specific feature it will fail to be lowered. This also allows for extracted functions to be valid for inlining, at least back into the parent function, as the target attributes are tested when inlining for compatibility. Patch by River Riddle! Differential Revision: https://reviews.llvm.org/D22713 llvm-svn: 277315
* Add the tests for r277313Sean Silva2016-08-012-0/+67
| | | | | | Forgot to `git add` them. llvm-svn: 277314
* CodeExtractor : Add ability to preserve profile data.Sean Silva2016-08-019-27/+195
| | | | | | | | | | | Added ability to estimate the entry count of the extracted function and the branch probabilities of the exit branches. Patch by River Riddle! Differential Revision: https://reviews.llvm.org/D22744 llvm-svn: 277313
* Fix a bug in lit var def: remove extra spaceXinliang David Li2016-08-011-2/+2
| | | | llvm-svn: 277312
* [X86][SSE] Regenerate frem testsSimon Pilgrim2016-07-311-22/+21
| | | | llvm-svn: 277311
* [X86][SSE] Regenerate fpext testsSimon Pilgrim2016-07-311-31/+73
| | | | llvm-svn: 277310
* Fix the MemorySSA updating API to enable people to create memory accesses ↵Daniel Berlin2016-07-313-4/+46
| | | | | | before removing old ones llvm-svn: 277309
* Comment fixes to MemorySSA.hDaniel Berlin2016-07-312-2/+4
| | | | llvm-svn: 277308
* Add more gcc compatibility names to clang's cpuid.hDimitry Andric2016-07-311-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Some cpuid bit defines are named slightly different from how gcc's cpuid.h calls them. Define a few more compatibility names to appease software built for gcc: * `bit_PCLMUL` alias of `bit_PCLMULQDQ` * `bit_SSE4_1` alias of `bit_SSE41` * `bit_SSE4_2` alias of `bit_SSE42` * `bit_AES` alias of `bit_AESNI` * `bit_CMPXCHG8B` alias of `bit_CX8` While here, add the misssing 29th bit, `bit_F16C` (which is how gcc calls this bit). Reviewers: joerg, rsmith Subscribers: bruno, cfe-commits Differential Revision: https://reviews.llvm.org/D22010 llvm-svn: 277307
* [X86] Simplify code for determing GR or FR reg classes by querying for super ↵Craig Topper2016-07-311-49/+10
| | | | | | classes instead of manually listing individual classes. llvm-svn: 277306
* [AVX512] Always use EVEX encodings for 128/256-bit move instructions in ↵Craig Topper2016-07-313-163/+155
| | | | | | getLoadStoreRegOpcode if VLX is supported. llvm-svn: 277305
* [AVX512] Add VLX packed move instructions to the execution dependency fix ↵Craig Topper2016-07-3113-262/+252
| | | | | | pass and update tests. llvm-svn: 277304
* [AVX512] Move FR32X/FR64X handling in getLoadStoreRegOpcode into the main ↵Craig Topper2016-07-311-15/+11
| | | | | | switch. No functional change intended. llvm-svn: 277303
* [AVX512] Stop treating VR512 specially in getLoadStoreRegOpcode and use the ↵Craig Topper2016-07-312-7/+5
| | | | | | regular switch which already tried to handle it, but was unreachable. This has the added benefit of enabling aligned loads/stores if the stack is aligned. llvm-svn: 277302
* [AVX512] Add X86::VR512RegClassID to X86RegisterInfo::getLargestLegalSuperClass.Craig Topper2016-07-312-11/+12
| | | | llvm-svn: 277301
* Fix ASan alloca_constant_size.cc test on FreeBSD.Dimitry Andric2016-07-311-0/+2
| | | | | | | On FreeBSD <alloca.h> does not exist: alloca(3) is defined in <stdlib.h> instead. llvm-svn: 277300
* [X86] Improve 64-bit shifts on 32-bit targets (PR14593)Simon Pilgrim2016-07-314-127/+72
| | | | | | | | As discussed on PR14593, this patch adds support for lowering to SHLD/SHRD from the patterns generated by DAGTypeLegalizer::ExpandShiftWithKnownAmountBit. Differential Revision: https://reviews.llvm.org/D23000 llvm-svn: 277299
* [COFF] Expose iterators for ImportAddressTableRVADavid Majnemer2016-07-312-2/+21
| | | | | | Patch by Bandzi Michal! llvm-svn: 277298
* XFAIL one sanitizer symbolizer test for FreeBSDDimitry Andric2016-07-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Summary: Due to a QoI issuse in FreeBSD's libcxxrt-based demangler, one sanitizer symbolizer test consistently appears to fail: Value of: DemangleSwiftAndCXX("foo") Actual: "float" Expected: "foo" This is because libcxxrt's __cxa_demangle() incorrectly demangles the "foo" identifier to "float". It should return an error instead. For now, XFAIL this particular test for FreeBSD, until we can fix libcxxrt properly (which might take some time to coordinate with upstream). Reviewers: rnk, zaks.anna, emaste Subscribers: emaste, llvm-commits, kubabrecka Differential Revision: https://reviews.llvm.org/D23001 llvm-svn: 277297
* [COFF] Remove a duplicate import_directory_table_entry definitionDavid Majnemer2016-07-313-18/+14
| | | | | | | | We had import_directory_table_entry and coff_import_directory_table_entry, remove one. Also, factor out the logic which determins if a descriptor is a terminator. llvm-svn: 277296
* [bugpoint] Add a -Os optionDavid Majnemer2016-07-311-2/+6
| | | | llvm-svn: 277295
* [compiler-rt] Add support for interception redirect exports.Etienne Bergeron2016-07-311-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: On windows, an export can be redirected to an other DLL. This patch is adding the required support to the internal GetProcAddress implementation. This case was encountered by instrumenting chromium (win 64-bits) using this GN configuration: ``` is_component_build = true is_debug = false enable_nacl = false is_clang = true is_asan = true clang_base_path = "d:\src\llvm\ninja64" clang_use_chrome_plugins = false clang_version = "4.0.0" ``` The operating system is win7 (x64). Visual Studio: 2015 Professional Reviewers: rnk Subscribers: llvm-commits, chrisha Differential Revision: https://reviews.llvm.org/D22880 llvm-svn: 277294
* [X86] Add tests for the lowering SHLD/SHRD from manual pattern similar to ↵Simon Pilgrim2016-07-312-0/+136
| | | | | | | | those generated by ExpandShiftWithKnownAmountBit Test for add(v,v) as well as shl(v,1) llvm-svn: 277293
* [AVX-512] Don't let ExeDependencyFix pass convert VPANDD/Q to VPANDPS/PD ↵Craig Topper2016-07-317-35/+77
| | | | | | | | unless DQI instructions are supported. Same for ANDN, OR, and XOR. Thanks to Igor Breger for pointing out my mistake. llvm-svn: 277292
* [X86] Add tests for the lowering SHLD/SHRD from manual patternsSimon Pilgrim2016-07-312-0/+132
| | | | | | As discussed on D23000 llvm-svn: 277291
* Fixed "copy-paste" mistake from revision 255245.Amjad Aboud2016-07-311-1/+1
| | | | llvm-svn: 277290
* AVX-512: Removed AssertZext node before TRUNCATEElena Demikhovsky2016-07-312-42/+38
| | | | | | | | Removed AssertZext node, which was inserted between X86ISD::SETCC and "truncate to i1". Differential Revision: https://reviews.llvm.org/D22850 llvm-svn: 277289
* [ADT] Add 'consume_front' and 'consume_back' methods to StringRef whichChandler Carruth2016-07-312-0/+56
| | | | | | | | | | | are very handy when parsing text. They are essentially a combination of startswith and a self-modifying drop_front, or endswith and drop_back respectively. Differential Revision: https://reviews.llvm.org/D22723 llvm-svn: 277288
* [NFC] Rearrange an example-file so the c++14 specific example is on top.Faisal Vali2016-07-311-10/+12
| | | | | | This makes it easier to add C++1z examples to the bottom, just before the #endif. llvm-svn: 277287
* Reapply r276069 with workaround for MSVC 2013Hubert Tong2016-07-3010-47/+102
| | | | llvm-svn: 277286
* [HexagonConstPropagation] Remove dead code.Davide Italiano2016-07-301-22/+0
| | | | llvm-svn: 277285
* [HexagonBitSimplify] Remove dead code.Davide Italiano2016-07-301-18/+0
| | | | llvm-svn: 277284
* [ARMConstantIslandPass] Remove dead code.Davide Italiano2016-07-301-20/+0
| | | | llvm-svn: 277283
* [Support] Add doxygen @code tags to example code in Error comments.Lang Hames2016-07-301-5/+11
| | | | llvm-svn: 277282
* [SLPVectorizer][X86] Added vXi8/vXi16 sitofp/uitofp testsSimon Pilgrim2016-07-302-38/+484
| | | | | | Dropped useless 2i32-2f32 test llvm-svn: 277281
* Strip trailing whitespaceSimon Pilgrim2016-07-301-6/+5
| | | | llvm-svn: 277280
* [X86] Use peekThroughOneUseBitcasts helper functionSimon Pilgrim2016-07-301-5/+2
| | | | llvm-svn: 277279
* [X86][SSE] Regenerate vshift testsSimon Pilgrim2016-07-306-92/+511
| | | | llvm-svn: 277278
* Correcting some sphinx formatting issues so that the attribute documentation ↵Aaron Ballman2016-07-301-103/+103
| | | | | | builds again. llvm-svn: 277277
* [Profile] Add a new test caseXinliang David Li2016-07-301-0/+35
| | | | | | | The end-end test checks that cs-profile counter update is obtained as expected. llvm-svn: 277276
* [SLPVectorizer][X86] Added SITOFP/UITOFP vectorization testsSimon Pilgrim2016-07-302-0/+528
| | | | llvm-svn: 277275
* [X86][AVX] Added signum example test functions from PR13248Simon Pilgrim2016-07-301-0/+379
| | | | | | | These are good examples of missed combine opportunities with zero/all bit vector compare results llvm-svn: 277274
* [analyzer] Update APIs taking user-facing strings.Devin Coughlin2016-07-301-6/+22
| | | | | | | | | | | Add new APIs that require localized strings and remove two APIs that were incorrectly marked as requiring a user-facing string. A patch by Kulpreet Chilana! Differential Revision: https://reviews.llvm.org/D22926 llvm-svn: 277273
* [X86][X87] Add vector arithmetic tests for targets with sse disabledSimon Pilgrim2016-07-301-0/+351
| | | | | | To make sure the X86_64 target isn't doing anything stupid llvm-svn: 277272
OpenPOWER on IntegriCloud