summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for ↵Aaron Ballman2015-02-1570-166/+165
| | | | | | requiring the macro. NFC; Clang edition. llvm-svn: 229339
* Partial revert of r229336; this wasn't intended to go in.Aaron Ballman2015-02-157-214/+62
| | | | llvm-svn: 229338
* Format: Modernize using variadic templates.Benjamin Kramer2015-02-156-147/+53
| | | | | | | | | | | Introduces a subset of C++14 integer sequences in STLExtras. This is just enough to support unpacking a std::tuple into the arguments of snprintf, we can add more of it when it's actually needed. Also removes an ancient macro hack that leaks a macro into the global namespace. Clean up users that made use of the convenient hack. llvm-svn: 229337
* Removing LLVM_EXPLICIT, as MSVC 2012 was the last reason for requiring the ↵Aaron Ballman2015-02-1527-83/+235
| | | | | | macro. NFC; Clang edition. llvm-svn: 229336
* Removing LLVM_EXPLICIT, as MSVC 2012 was the last reason for requiring the ↵Aaron Ballman2015-02-1518-65/+55
| | | | | | macro. NFC; LLVM edition. llvm-svn: 229335
* os.remove shouldn't fail, if file doesn't existIsmail Pazarbasi2015-02-151-2/+14
| | | | | | | | | | | | | | | Summary: os.remove might throw an exception (of type OSError), if given file doesn't exist. Catch the exception, and ignore it //iff// errno is ENOENT. Rethrow the exception, if errno is not ENOENT. Reviewers: emaste Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6362 llvm-svn: 229334
* Since MSVC 1800 is our lowest common denominator, we don't need an explicit ↵Aaron Ballman2015-02-151-3/+2
| | | | | | check for it in these macros any longer; NFC. llvm-svn: 229333
* CommandLine: Use variadic templates to simplify opt constructors.Benjamin Kramer2015-02-151-295/+20
| | | | llvm-svn: 229332
* llvm-pdbdump: Fix warning caused by missing sentinel value.Zachary Turner2015-02-151-3/+3
| | | | llvm-svn: 229331
* llvm-pdbdump: Add flags controlling the type of values to dump.Zachary Turner2015-02-1566-267/+386
| | | | llvm-svn: 229330
* Unbreak the build.Benjamin Kramer2015-02-151-1/+1
| | | | llvm-svn: 229329
* FoldingSet: Replace faux variadics with real variadics. NFC.Benjamin Kramer2015-02-151-25/+3
| | | | llvm-svn: 229328
* Make pushCleanup a variadic template. NFC.Benjamin Kramer2015-02-151-46/+5
| | | | llvm-svn: 229327
* Format: Make FormatToken's isOneOf a variadic templateBenjamin Kramer2015-02-151-20/+3
| | | | llvm-svn: 229326
* Analyzer: Replace a set of particularly ugly faux variadics.Benjamin Kramer2015-02-153-106/+14
| | | | llvm-svn: 229325
* Remove LLVM_HAS_VARIADIC_TEMPLATES and all the faux variadic workarounds ↵Benjamin Kramer2015-02-156-734/+2
| | | | | | | | guarded by it. We no longer support compilers without variadic template support. llvm-svn: 229324
* Update the docs to require at least MSVC 2013.Benjamin Kramer2015-02-156-15/+11
| | | | llvm-svn: 229323
* Revert 229175Philip Reames2015-02-151-3/+1
| | | | | | This change is a logical suspect in 22587 and 22590. Given it's of minimal importanance and I can't get clang to build on my home machine, I'm reverting so that I can deal with this next week. llvm-svn: 229322
* Added (still inefficient) shuffle test case for PR21138Simon Pilgrim2015-02-151-0/+23
| | | | llvm-svn: 229321
* Reapply r229185(cbieneman) -- Raising minimum required Visual Studio version ↵NAKAMURA Takumi2015-02-153-12/+4
| | | | | | | | to 2013. This is based on the discussions on: [LLVMdev] [RFC] Raising LLVM minimum required MSVC version to 2013 for trunk llvm-svn: 229320
* [ADCE] Convert another loop for a range-based forHal Finkel2015-02-151-2/+2
| | | | | | We can use a range-based for for the operands loop too; NFC. llvm-svn: 229319
* [ADCE] Use inst_range and range-based forsHal Finkel2015-02-151-14/+13
| | | | | | Convert a few loops to range-based fors; NFC. llvm-svn: 229318
* [ADCE] Fix formatting of pointer typesHal Finkel2015-02-151-2/+2
| | | | | | We prefer to put the * with the variable, not with the type; NFC. llvm-svn: 229317
* [ADCE] Fix capitalization of another local variableHal Finkel2015-02-151-2/+2
| | | | | | Bring another local variable in compliance with our naming conventions, NFC. llvm-svn: 229316
* [ADCE] Fix capitalization of some local variablesHal Finkel2015-02-151-14/+14
| | | | | | Bring some local variables in compliance with our naming conventions, NFC. llvm-svn: 229315
* Update ARM and x86 ArchHandler to check switch completeness. NFCJean-Daniel Dupas2015-02-153-17/+25
| | | | | | Define an explicit type for arch specific reference kinds to make sure all cases are covered in switch statements. llvm-svn: 229314
* Added some test cases of missed opportunities to use unpckl/unpckh shufflesSimon Pilgrim2015-02-153-0/+83
| | | | llvm-svn: 229313
* Coding style fixes to recent patches. NFC.Simon Pilgrim2015-02-151-6/+6
| | | | llvm-svn: 229312
* [X86][AVX2] vpslldq/vpsrldq byte shifts for AVX2Simon Pilgrim2015-02-156-62/+208
| | | | | | | | | | This patch refactors the existing lowerVectorShuffleAsByteShift function to add support for 256-bit vectors on AVX2 targets. It also fixes a tablegen issue that prevented the lowering of vpslldq/vpsrldq vec256 instructions. Differential Revision: http://reviews.llvm.org/D7596 llvm-svn: 229311
* [x86] Add the test case from PR22412, we now get this right even withChandler Carruth2015-02-151-0/+48
| | | | | | the new vector shuffle legality. llvm-svn: 229310
* [x86] Teach the decomposed shuffle/blend lowering to use an early blendChandler Carruth2015-02-156-155/+111
| | | | | | | | | | | | when that will allow it to lower with a single permute instead of multiple permutes. It tries to detect when it will only have to do a single permute in either case to maximize folding of loads and such. This cuts a *lot* of the avx2 shuffle permute counts in half. =] llvm-svn: 229309
* [SDAG] Teach the SelectionDAG to canonicalize vector shuffles of splatsChandler Carruth2015-02-1512-113/+279
| | | | | | | | | | | | | | | directly into blends of the splats. These patterns show up even very late in the vector shuffle lowering where we don't have any chance for DAG combining to kick in, and blending is a tremendously simpler operation to model. By coercing the shuffle into a blend we can much more easily match and lower shuffles of splats. Immediately with this change there are significantly more blends being matched in the x86 vector shuffle lowering. llvm-svn: 229308
* [x86] Teach the shuffle mask equivalence test to look through buildChandler Carruth2015-02-151-52/+65
| | | | | | | | | | | | | | | | vectors and detect equivalent inputs. This lets the code match unpck-style instructions when only one of the inputs are lined up but the other input is a splat and so which lanes we pull from doesn't matter. Today, this doesn't really happen, but just by accident. I have a patch that normalizes how we shuffle splats, and with that patch this will be necessary for a lot of the mask equivalence tests to work. I don't really know how to write a test case for this specific change until the other change lands though. llvm-svn: 229307
* [x86] Tweak the ordering of unpack matching vs. element insertion, andChandler Carruth2015-02-151-17/+21
| | | | | | | | | | | | | | | | | don't try to do element insertion for non-zero-index floating point vectors. We don't have any useful patterns or lowering for element insertion into high elements of a floating point vector, and the generic shuffle lowering will end up being better -- namely it will fall back to unpck. But we should try to handle other forms of element insertion before matching unpck patterns. While this doesn't matter much right now, I'm working on a patch that makes unpck matching much more powerful, and that patch will break without this re-ordering. llvm-svn: 229306
* www: update installation instructions to not include gmp/islTobias Grosser2015-02-151-1/+74
| | | | llvm-svn: 229305
* Remove isl/cloog build scriptsTobias Grosser2015-02-153-110/+0
| | | | | | isl is not distributed as part of Polly. llvm-svn: 229304
* www: Add code coverage and scan-build results againTobias Grosser2015-02-151-3/+0
| | | | | | | Sylvestre Ledru (re)enabled them after the import of isl into polly significantly simplified the build. llvm-svn: 229303
* [PBQP] Assert conservativelly allocatable nodes are spilled by choice.Arnaud A. de Grandmaison2015-02-151-0/+24
| | | | llvm-svn: 229302
* [x86] Stop shuffling zero vectors. =]Chandler Carruth2015-02-153-8/+13
| | | | | | | | | I was somewhat surprised this pattern really came up, but it does. It seems better to just directly handle it than try to special case every place where we end up forming a shuffle that devolves to a shuffle of a zero vector. llvm-svn: 229301
* [x86] Use a more helpful parenthesizing of these comparisons. SilencesChandler Carruth2015-02-151-2/+2
| | | | | | a -Wparentheses complaint from GCC. llvm-svn: 229300
* [x86] When splitting 256-bit vectors into 128-bit vectors, don't extractChandler Carruth2015-02-155-171/+111
| | | | | | | | | | | | | subvectors from buildvectors. That doesn't really make any sense and it breaks all of the down-stream matching of buildvectors to cleverly lower shuffles. With this, we now get the shift-based lowering of 256-bit vector shuffles with AVX1 when we split them into 128-bit vectors. We also do much better on the zero-extension patterns, although there remains quite a bit of room for improvement here. llvm-svn: 229299
* [x86] Make computing the zeroable elements slightly more powerful, atChandler Carruth2015-02-151-3/+8
| | | | | | | | | | | | least in theory. I don't actually have a test case that benefits from this, but theoretically, it could come up, and I don't want to try to think about whether this is the culprit or something else is, so I'd rather just make this code powerful. =/ Makes me sad that I can't really test it though. llvm-svn: 229298
* gold-plugin: fix test to allow default visibility on local symbolsMichael Kuperstein2015-02-151-1/+1
| | | | | | | | | GNU ld sets default, not hidden, visibility on local symbols. Having default or hidden visibility on local symbols makes no difference in run-time behavior. Patch by: H.J. Lu <hjl.tools@gmail.com> llvm-svn: 229297
* [x86] Update some tests with the latest version of my script and llc.Chandler Carruth2015-02-152-101/+101
| | | | | | This mostly adds some shuffle decode comments and cleans up indentation. llvm-svn: 229296
* Fix a typo in r229291 causing buildbot failure.Larisse Voufo2015-02-151-1/+1
| | | | llvm-svn: 229295
* Add more tests for crashes that happend to be fixed by r229288.Larisse Voufo2015-02-151-0/+214
| | | | llvm-svn: 229294
* Don't crash on `struct ::, struct ::` (and the same for enums).Larisse Voufo2015-02-151-214/+0
| | | | | | | | | | | | | | | | | | | The first part of that line doesn't parse correctly and ParseClassSpecifier() for some reason skips to tok::comma to recover, and then ParseDeclarationSpecifiers() sees the next struct and calls ParseClassSpecifier() again with the same DeclSpec object. However, the first call already called ActOnCXXGlobalScopeSpecifier() on the DeclSpec's CXXScopeSpec, and sema gets confused when this gets called again. As a fix, let ParseClassSpecifier() (and ParseEnumSpecifier()) call ParseOptionalCXXScopeSpec() with a temporary CXXScopeSpec object, and only copy it into the DeclSpec if things work out. (This is also how all the other functions that set the DeclSpec's TypeSpecScope set it.) Found by SLi's bot. llvm-svn: 229293
* [x86] Add a slight variation on some of the other generic shuffleChandler Carruth2015-02-153-55/+185
| | | | | | | | | | | | | | | lowerings -- one which decomposes into an initial blend followed by a permute. Particularly on newer chips, blends are handled independently of shuffles and so this is much less bottlenecked on the single port that floating point shuffles are executed with on Intel. I'll be adding this lowering to a bunch of other code paths in subsequent commits to handle still more places where we can effectively leverage blends when they're available in the ISA. llvm-svn: 229292
* More on fixing sized deallocation implementation logic: Fix PR21754.Larisse Voufo2015-02-152-5/+21
| | | | llvm-svn: 229291
* Enabled cost calculation for masked memory operations.Elena Demikhovsky2015-02-151-1/+5
| | | | | | | We already have implementation for cost calculation for masked memory operations. I just call it from the loop vectorizer. llvm-svn: 229290
OpenPOWER on IntegriCloud