summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* LoadStoreVectorizer: Use AA metadataMatt Arsenault2016-07-012-8/+37
| | | | | | | This was not passing the full instruction with metadata to the alias query. llvm-svn: 274318
* CodeGen: Remove implicit iterator conversions in PHIElimination, NFCDuncan P. N. Exon Smith2016-07-011-7/+7
| | | | llvm-svn: 274317
* [Feature] Add a builtin for indexing into parameter packs. Patch by Louis ↵Eric Fiselier2016-07-0114-11/+158
| | | | | | | | | | | | | Dionne. This patch adds a __nth_element builtin that allows fetching the n-th type of a parameter pack with very little compile-time overhead. The patch was inspired by r252036 and r252115 by David Majnemer, which add a similar __make_integer_seq builtin for efficiently creating a std::integer_sequence. Reviewed as D15421. http://reviews.llvm.org/D15421 llvm-svn: 274316
* CodeGen: Use MachineInstr& in PostRASchedulerList, NFCDuncan P. N. Exon Smith2016-07-011-6/+6
| | | | | | Remove another unnecessary iterator to pointer conversion. llvm-svn: 274315
* [CodeCompletion] Allow system headers providing private symbols with a ↵Argyrios Kyrtzidis2016-07-013-15/+35
| | | | | | | | single underscore. rdar://24677150 llvm-svn: 274314
* Define a module map entry for DebugInfo/CodeView.Adrian Prantl2016-07-011-0/+11
| | | | | | This fixes the -fmodules build. llvm-svn: 274313
* AMDGPU: Implement getLoadStoreVecRegBitWidthMatt Arsenault2016-07-012-0/+23
| | | | llvm-svn: 274312
* CodeGen: Use MachineInstr& in PostRAHazardRecognizer, NFCDuncan P. N. Exon Smith2016-07-011-6/+4
| | | | | | | | Convert a loop to a range-based for, using MachineInstr& instead of MachineInstr* and removing an implicit conversion from iterator to pointer. llvm-svn: 274311
* CodeGen: Use MachineInstr& in PrologEpilogInserter, NFCDuncan P. N. Exon Smith2016-07-011-18/+20
| | | | | | | | | Use MachineInstr& over MachineInstr* to avoid implicit iterator to pointer conversions. MachineInstr*-as-nullptr was being used as a flag for whether the for loop terminated normally; I added an explicit `bool` instead. llvm-svn: 274310
* [pdb] Avoid reporting an error when the module symbol stream is emptyReid Kleckner2016-07-011-0/+3
| | | | llvm-svn: 274309
* [PDB] Indicate which type record failed hash validationReid Kleckner2016-07-011-2/+8
| | | | llvm-svn: 274308
* LoadStoreVectorizer: if one element of a vector is integer, default toMatt Arsenault2016-07-012-3/+19
| | | | | | | | | | | | integer. Fixes issues on some architectures where we use arithmetic ops to build vectors, which can cause bad things to happen for loads/stores of mixed types. Patch by Fiona Glaser llvm-svn: 274307
* LoadStoreVectorizer: Fix crashes on sub-byte typesMatt Arsenault2016-07-012-2/+213
| | | | llvm-svn: 274306
* code hoisting pass based on GVNSebastian Pop2016-07-0110-4/+1418
| | | | | | | | | | | | | This pass hoists duplicated computations in the program. The primary goal of gvn-hoist is to reduce the size of functions before inline heuristics to reduce the total cost of function inlining. Pass written by Sebastian Pop, Aditya Kumar, Xiaoyu Hu, and Brian Rzycki. Important algorithmic contributions by Daniel Berlin under the form of reviews. Differential Revision: http://reviews.llvm.org/D19338 llvm-svn: 274305
* Target: Remove unused arguments from overrideSchedPolicy, NFCDuncan P. N. Exon Smith2016-07-019-16/+3
| | | | | | | | | | TargetSubtargetInfo::overrideSchedPolicy takes two MachineInstr* arguments (begin and end) that invite implicit conversions from MachineInstrBundleIterator. One option would be to change their type to an iterator, but since they don't seem to have been used since the API was added in 2010, I'm deleting the dead code. llvm-svn: 274304
* CodeGen: Use MachineInstr& in MachineSink, NFCDuncan P. N. Exon Smith2016-07-011-52/+49
| | | | | | | Use MachineInstr& instead of MachineInstr* in MachineSinker to help avoid implicit conversions from iterator to pointer. llvm-svn: 274303
* [LAA] Fix alphabetical sorting of headers. NFCAdam Nemet2016-07-011-1/+1
| | | | llvm-svn: 274302
* CodeGen: Use MachineInstr& more in MachineTraceMetrics, NFCDuncan P. N. Exon Smith2016-07-011-20/+20
| | | | | | | | Push MachineInstr& through helper APIs for consistency. This doesn't remove any more implicit conversions, but it's a nice cleanup after r274300. llvm-svn: 274301
* CodeGen: Use MachineInstr& in MachineTraceMetrics, NFCDuncan P. N. Exon Smith2016-06-301-14/+14
| | | | | | This avoids an implicit conversion from iterator to pointer. llvm-svn: 274300
* LoadStoreVectorizer: Check skipFunction first.Matt Arsenault2016-06-302-4/+14
| | | | | | Also add test I forgot to add to r274296. llvm-svn: 274299
* CodeGen: Use MachineInstr& in LocalStackSlotAllocation, NFCDuncan P. N. Exon Smith2016-06-301-35/+29
| | | | | | | Avoid a number of implicit conversions from iterator to pointer by using range-based for and MachineInstr&. llvm-svn: 274298
* CodeGen: Use range-based for in LiveVariables, NFCDuncan P. N. Exon Smith2016-06-301-6/+4
| | | | | | | Avoid an implicit iterator to pointer conversion in LiveVariables::runOnBlock by switching to a range-based for. llvm-svn: 274297
* LoadStoreVectorizer: Skip optnone functionsMatt Arsenault2016-06-302-1/+13
| | | | llvm-svn: 274296
* CodeGen: Use MachineInstr& in HoistSpillHelper, NFCDuncan P. N. Exon Smith2016-06-301-14/+15
| | | | | | Avoid another few implicit conversions from iterator to pointer. llvm-svn: 274295
* CodeGen: Use MachineInstr& in LDVImpl::handleDebugValue, NFCDuncan P. N. Exon Smith2016-06-301-14/+13
| | | | | | Avoid another implicit conversion from iterator to pointer. llvm-svn: 274294
* Add LoadStoreVectorizer passMatt Arsenault2016-06-3013-1/+1825
| | | | | | | This was contributed by Apple, and I've been working on minimal cleanups and generalizing it. llvm-svn: 274293
* CodeGen: Use MachineInstr& in ExpandISelPseudos, NFCDuncan P. N. Exon Smith2016-06-301-3/+3
| | | | | | | Avoid another implicit conversion from MachineInstrBundleIterator to MachineInstr* by using MachineInstr&. llvm-svn: 274292
* [Sema] Implement C++14's DR1579: Prefer returning by converting move constructorErik Pilkington2016-06-305-50/+114
| | | | | | | | Fixes PR28096. Differential Revision: http://reviews.llvm.org/D21619 llvm-svn: 274291
* CodeGen: Use MachineInstr& in IfConversion, NFCDuncan P. N. Exon Smith2016-06-301-9/+9
| | | | | | | | Switch to a range-based for in IfConverter::PredicateBlock and take MachineInstr& in MaySpeculate to avoid an implicit conversion from MachineBasicBlock::iterator to MachineInstr*. llvm-svn: 274290
* Remove non-ASCII characters (silly smart quotes). Thanks to Hal forChandler Carruth2016-06-302-7/+7
| | | | | | noticing. llvm-svn: 274289
* [TableGen] Use a SmallVector for Record::Values to avoid debug iteratorsReid Kleckner2016-06-301-3/+3
| | | | | | | | | | | | | Debug iterators are valuable so we don't want to turn them off completely. However, llvm-tblgen is critical to build speed, so we can skip them here. Regenerating X86GenSubtargetInfo.inc in a clang-cl self-host debug build now takes 39s instead of 1m29s. Helps PR28222 llvm-svn: 274288
* CodeGen: Use MachineInstr& in TargetLowering, NFCDuncan P. N. Exon Smith2016-06-3036-1257/+1338
| | | | | | | | | | | | | This is a mechanical change to make TargetLowering API take MachineInstr& (instead of MachineInstr*), since the argument is expected to be a valid MachineInstr. In one case, changed a parameter from MachineInstr* to MachineBasicBlock::iterator, since it was used as an insertion point. As a side effect, this removes a bunch of MachineInstr* to MachineBasicBlock::iterator implicit conversions, a necessary step toward fixing PR26753. llvm-svn: 274287
* Replace __make_tuple_indices implementation with superior implementation.Eric Fiselier2016-06-302-77/+81
| | | | | | | | | | | | | | | | | The previous __make_tuple_indices implementation caused O(N) instantiations and was pretty inefficient. The C++14 __make_integer_sequence implementation is much better, since it either uses a builtin to generate the sequence or a very nice Log8(N) implementation provided by richard smith. This patch moves the __make_integer_sequence implementation into __tuple and uses it to implement __make_tuple_indices. Since libc++ can't expose the name 'integer_sequence' in C++11 this patch also introduces a dummy type '__integer_sequence' which is used when generating the sequence. One the sequence is generated '__integer_sequence' can be converted into the required type; either '__tuple_indices' or 'integer_sequence'. llvm-svn: 274286
* Fix static assert problem on gcc; remove XFAILs that I put in in r274250Marshall Clow2016-06-308-18/+6
| | | | llvm-svn: 274285
* Test commit.David L Kreitzer2016-06-301-1/+1
| | | | llvm-svn: 274284
* [OpenMP] Use fopenmp prefix for all options introduced by the offloading ↵Samuel Antao2016-06-3023-411/+411
| | | | | | | | | | | | | | implementation. Summary: This patch changes the options used by offloading to start with -fopenmp instead of -fomp. This makes the option naming more consistent and materializes a suggestion by Richard Smith in http://reviews.llvm.org/D9888. Reviewers: hfinkel, carlo.bertolli, arpith-jacob, ABataev Subscribers: kkwli0, cfe-commits, caomhin Differential Revision: http://reviews.llvm.org/D21841 llvm-svn: 274283
* Don't use unchecked dyn_castMatt Arsenault2016-06-301-1/+1
| | | | llvm-svn: 274282
* SLPVectorizer: Move propagateMetadata to VectorUtilsMatt Arsenault2016-06-305-69/+83
| | | | | | | | This will be re-used by the LoadStoreVectorizer. Fix handling of range metadata and testcase by Justin Lebar. llvm-svn: 274281
* fix typo; NFCSanjay Patel2016-06-301-1/+1
| | | | llvm-svn: 274278
* Fix for Windows builds.Adrian McCarthy2016-06-301-0/+6
| | | | llvm-svn: 274277
* ScopInfo: Add array_begin() and array_end() iteratorsTobias Grosser2016-06-301-2/+16
| | | | | | | | These iterators are provided to complete the interface with non-range iterators and are useful for external users of ScopInfo. To ensure they are tested we use them to implement the existing range iterators. llvm-svn: 274276
* AMDGPU: Add m0 vgpr load loop block as successorMatt Arsenault2016-06-301-0/+1
| | | | | | | This shows up as a verifier error when I move this earlier, not sure why it didn't before. llvm-svn: 274275
* Fix C++03 build.Eric Fiselier2016-06-305-1/+16
| | | | llvm-svn: 274274
* [libFuzzer] Let user specify extra stats file.Mike Aizatsky2016-06-303-4/+208
| | | | | | | | | | | | Summary: If AFL_DRIVER_EXTRA_STATS_FILENAME is set and valid, write to it peak_rss_mb and slowest_unit_time_sec. These are both stats that libFuzzer can print but afl cannot. Reviewers: kcc, aizatsky, metzman Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D21742 llvm-svn: 274273
* Propagate on-error statusTobias Grosser2016-06-302-2/+5
| | | | | | | | | | | | | | | | This ensures that the error status set with -polly-on-isl-error-abort is maintained even after running DependenceInfo and ScheduleOptimizer. Both passes temporarily set the error status to CONTINUE as the dependence analysis uses a compute-out and the scheduler may not be able to derive a schedule. In both cases we want to not abort, but to handle the error gracefully. Before this commit, we always set the error reporting to ABORT after these passes. After this commit, we use the error reporting mode that was active earlier. This comes without a test case as this would require us to introduce (memory) errors which would trigger the isl errors. llvm-svn: 274272
* Simplify: get isl_ctx only once [NFC]Tobias Grosser2016-06-301-10/+11
| | | | | | ... instead of call S.getIslCtx() many times. llvm-svn: 274271
* [CMake] Module builds depend on target intrinsics_gen to be built first.Vassil Vassilev2016-06-301-0/+9
| | | | | | | | | | | | | | When compiling with modules, header A and B can be in the same module M. B depends on intrinsics_gen and A doesn't. Compiling a source file #include-ing header A, we implicitly request module M to be built. It puts header A and B in the same TU and tries to build them. Since B depends on intrinsics_gen (which might not be built yet) we run into build failures. This should fix our modules buildbot. Patch reviewed by Chris Bieneman. llvm-svn: 274270
* Fix ASTMatchersNodeTest to work on Windows.Justin Lebar2016-06-301-7/+5
| | | | | | | | | | | It was failing because it had an explicit check for whether we're on Windows. There are a few other similar explicit checks in this file which I didn't remove because they serve as reasonable documentation that the test doesn't work with a Windows triple. llvm-svn: 274269
* Introduce a *draft* of a code of conduct for the LLVM community and theChandler Carruth2016-06-303-0/+256
| | | | | | | | | | | | | | | | | | | | | | | | | | | associated reporting guide. I want to emphasize that at this point these are just drafts! This is the result of very extended discussion on the mailing lists on several different threads: http://lists.llvm.org/pipermail/llvm-dev/2015-October/091218.html http://lists.llvm.org/pipermail/llvm-dev/2016-May/099120.html http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151019/307070.html The reporting guide in particular I anticipate will be shaped somewhat by the advisory committee when they are selected. But hopefully this serves as a good starting point and good guidance while the advisory committee is being sorted out. I'd like to thank all the folks who contributed to this. Many, *many* people worked to help with drafting, wording, suggestions, and edits. Also, this is based on widely used existing codes of coduct as mentioned in the text, and the original authors of those deserve many thanks as well. Differential Revision: http://reviews.llvm.org/D13741 llvm-svn: 274268
* Fix typo-correction crash if a typo occurs within the operand of aRichard Smith2016-06-304-5/+16
| | | | | | | | | function-style cast to a non-dependent type which is then used in an invalid way. We'd lose the "type dependent" bit here, and downstream Sema processing would then discard the expression if it was used in a context where its type rendered it invalid. llvm-svn: 274267
OpenPOWER on IntegriCloud