summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* [Tablegen] Use correct result number variables with the pattern nodes they ↵Craig Topper2015-03-041-2/+2
| | | | | | go with when handling SDTCisSameAs. No functional change as they are always both 0 unless you try to define a multi result type profile that uses SDTCisSame on one of the other results. llvm-svn: 231226
* Explicitly default DenseMapTest::CtorTest::operator=David Blaikie2015-03-041-0/+1
| | | | | | | Using the implicit default copy assignment operator in the presence of a user-declared copy ctor is deprecated in C++11. llvm-svn: 231225
* Remove explicit RNSuccIterator copy assignment in favor of implicit defaultDavid Blaikie2015-03-041-20/+0
| | | | | | | | Asserting that the source and destination iterators are from the same region is unnecessary - there's no reason to disallow reassignment from any regions, so long as they aren't compared. llvm-svn: 231224
* use = default instead of {}David Blaikie2015-03-041-2/+2
| | | | llvm-svn: 231223
* Make format_object_base explicitly copyable, so format_objects can be copied ↵David Blaikie2015-03-041-0/+1
| | | | | | | | | without relying on the implicit copy ctor Use of the implicit copy ctor is deprecated in C++11 in the presence of a user declared dtor. llvm-svn: 231222
* Devirtualize ~parser<T> by making it protected in base classes and making ↵David Blaikie2015-03-041-10/+15
| | | | | | | | | derived classes final These objects are never owned/destroyed polymorphically, so there's no need for a virtual dtor. llvm-svn: 231221
* Avoid copying parser objectsDavid Blaikie2015-03-041-2/+2
| | | | | | | Use of their copy members is deprecated since they have a user-declared dtor. llvm-svn: 231220
* [DAGCombine] Fix a bug in a BUILD_VECTOR combineMichael Kuperstein2015-03-042-2/+23
| | | | | | | | | | When trying to convert a BUILD_VECTOR into a shuffle, we try to split a single source vector that is twice as wide as the destination vector. We can not do this when we also need the zero vector to create a blend. This fixes PR22774. Differential Revision: http://reviews.llvm.org/D8040 llvm-svn: 231219
* Make OptionValue explicitly copyableDavid Blaikie2015-03-041-0/+8
| | | | | | | | | Since OptionValue (& its base classes) have user-declared dtors, use of the implicit copy ctor/assignment operator is deprecated in C++11. Provide them explicitly (defaulted) to avoid depending on this deprecated feature. llvm-svn: 231218
* Devirtualize OptionValue::~OptionValue in favor of protected in the base, ↵David Blaikie2015-03-041-5/+19
| | | | | | | | | | with final derived classes These objects are never polymorphically owned, so there's no need for virtual dtors - just make the dtor protected in the base classes, and make the derived classes final. llvm-svn: 231217
* [MC][Target] Implement support for R_X86_64_SIZE{32,64}.Davide Italiano2015-03-044-0/+22
| | | | | | | Differential Revision: D7990 Reviewed by: rafael, majnemer llvm-svn: 231216
* [llvm-pdbdump] Display full enum definitions.Zachary Turner2015-03-0415-63/+188
| | | | | | | | | | | This will now display enum definitions both at the global scope as well as nested inside of classes. Additionally, it will no longer display enums at the global scope if the enum is nested. Instead, it will omit the definition of the enum globally and instead emit it in the corresponding class definition. llvm-svn: 231215
* Revert "[ADT] fail-fast iterators for DenseMap"Chaoren Lin2015-03-042-138/+20
| | | | | | | | | | | | This reverts commit 4b7263d855006988854036b4a4891fcf19aebe65. r231125 http://reviews.llvm.org/D7931 This was causing many LLDB tests to fail on OS X, Linux, and FreeBSD. https://bpaste.net/show/6a23e1f53623 llvm-svn: 231214
* Move emitDIE and emitAbbrevs to AsmPrinter. NFC.Frederic Riss2015-03-046-68/+74
| | | | | | | | | | | | | | (They are called emitDwarfDIE and emitDwarfAbbrevs in their new home) llvm-dsymutil wants to reuse that code, but it doesn't have a DwarfUnit or a DwarfDebug object to call those. It has access to an AsmPrinter though. Having emitDIE in the AsmPrinter also removes the DwarfFile dependency on DwarfDebug, and thus the patch drops that field. Differential Revision: http://reviews.llvm.org/D8024 llvm-svn: 231210
* Constify AsmPrinter passed to DIE methods.Frederic Riss2015-03-042-48/+48
| | | | llvm-svn: 231209
* Fix the test for r231201. We don't crash anymore.Filipe Cabecinhas2015-03-041-1/+1
| | | | llvm-svn: 231207
* Workaround MSVC not providing implicit move membersDavid Blaikie2015-03-041-0/+8
| | | | llvm-svn: 231204
* Object: Add range iterators to Archive symbolsRui Ueyama2015-03-041-3/+5
| | | | | | Also define operator* for symbol iterator just like Archive children iterator. llvm-svn: 231203
* Use report_fatal_error instead of unreachable for -fast-isel-abortMehdi Amini2015-03-041-3/+3
| | | | | | | Suggestion by Andrea Di Biagio From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 231201
* unique_ptrify ValID::ConstantStructEltsDavid Blaikie2015-03-042-11/+9
| | | | llvm-svn: 231200
* LLParser: Avoid copying ValIDs, the copy ctor is deprecated in C++11 due to ↵David Blaikie2015-03-041-1/+6
| | | | | | the presence of a user-declared dtor llvm-svn: 231199
* Use the vanilla func_end symbol for .size.Rafael Espindola2015-03-048-14/+11
| | | | | | No need to create yet another temp symbol. llvm-svn: 231198
* Remove MCStreamer include which isn't used here. NFCPete Cooper2015-03-041-1/+0
| | | | llvm-svn: 231195
* This file should always have included MCAssembler and not MCStreamer. NFCPete Cooper2015-03-041-1/+1
| | | | llvm-svn: 231194
* Remove MCStreamer.h include from MCContext.h and explictly include it where ↵Pete Cooper2015-03-047-1/+6
| | | | | | necessary. NFC llvm-svn: 231193
* Recommit r231168: unique_ptrify LiveRange::segmentSetDavid Blaikie2015-03-043-14/+9
| | | | | | | | | | | | | | | | | | | | | | | GCC 4.7's libstdc++ doesn't have std::map::emplace, but it does have std::unordered_map::emplace, and the use case here doesn't appear to need ordering. The container has been changed in a separate/precursor patch, and now this patch should hopefully build cleanly even with GCC 4.7. & then I realized the order of the container did matter, so extra handling of ordering was added in r231189. Original commit message: This makes LiveRange non-copyable, and LiveInterval is already non-movable (due to the explicit dtor), so now it's non-copyable and non-movable. Fix the one case where we were relying on the (deprecated in C++11) implicit copy ctor of LiveInterval (which happened to work because the ctor created an object with a null segmentSet, so double-deleting the null pointer was fine). llvm-svn: 231192
* Weaken the check for a specific movl on the twoaddr-coalesce-3Eric Christopher2015-03-041-2/+1
| | | | | | | test - we only care that there are two moves in the loop and not which part is relative to which register anyhow. llvm-svn: 231191
* Reverse the order libc++ and libc++abi are added in CMake.Eric Fiselier2015-03-041-1/+3
| | | | llvm-svn: 231190
* Recommit r231175: Change LiveStackAnalysis::SS2IntervalMap from std::map to ↵David Blaikie2015-03-042-3/+12
| | | | | | | | | | | | | | | | std::unordered_map The order of this container was needed at one point - so, at that point create a temporary array of pointers, sort those, then iterate them. This keeps lookup efficient (& the lesser issue, of allowing the use of emplace... ), object identity preserved, and ordered iteration in the one place that requires it. While this has no functional change, I realize it does mean allocating an extra data structure and performing a sort - so if this looks suspect to anyone regarding perf characteristics, I'm all ears. llvm-svn: 231189
* Fix the x86-upgrade-avx2-vbroadcast.ll test by commenting the CHECK linesFilipe Cabecinhas2015-03-041-2/+2
| | | | llvm-svn: 231187
* RegisterCoalescer: Gracefully continue if subrange merging fails.Matthias Braun2015-03-041-18/+48
| | | | | | | | | | | There is a known bug where the register coalescer fails to merge subranges when multiple ranges end up in the "overflow" bit 32 of the lanemasks. A proper fix for this is complicated so for now this is a workaround which lets the register coalescer drop the subregister liveness information (we just loose some precision by that) and continue. llvm-svn: 231186
* Drop the "eh_" from eh_func_begin and eh_func_end.Rafael Espindola2015-03-044-8/+8
| | | | | | They will be used for more than eh tables. llvm-svn: 231185
* Revert "unique_ptrify LiveRange::segmentSet"David Blaikie2015-03-044-11/+15
| | | | | | | | Apparently something does care about ordering of LiveIntervals... so revert all that stuff (r231175, r231176, r231177) & take some time to re-evaluate. llvm-svn: 231184
* [RewriteStatepointsForGC] Fix a relocation bug w.r.t values defined by ↵Philip Reames2015-03-042-2/+45
| | | | | | | | | | | | | | | invoke instructions RewriteStatepointsForGC pass emits an alloca for each GC pointer which will be relocated. It then inserts stores after def and all relocations, and inserts loads before each use as well. In the end, mem2reg is used to update IR with relocations in SSA form. However, there is a problem with inserting stores for values defined by invoke instructions. The code didn't expect a def was a terminator instruction, and inserting instructions after these terminators resulted in malformed IR. This patch fixes this problem by handling invoke instructions as a special case. If the def is an invoke instruction, the store will be inserted at the beginning of the normal destination block. Since return value from invoke instruction does not dominate the unwind destination block, no action is needed there. Patch by: Chen Li Differential Revision: http://reviews.llvm.org/D7923 llvm-svn: 231183
* Remove 'llvm.x86.avx2.vbroadcasti128' intrinsic.Juergen Ributzka2015-03-045-14/+30
| | | | | | | | | | | The intrinsic is no longer generated by the front-end. Remove the intrinsic and auto-upgrade it to a vector shuffle. Reviewed by Nadav This is related to rdar://problem/18742778. llvm-svn: 231182
* Document the LLVM "thunk" attribute added back in r226708Reid Kleckner2015-03-041-0/+5
| | | | llvm-svn: 231181
* Update twoaddr-coalesce-3.ll to run on darwin and linux machines:Eric Christopher2015-03-031-4/+5
| | | | | | | a) Default relocation model differences, b) Different numbers of # in comments llvm-svn: 231178
* Add missing header includeDavid Blaikie2015-03-031-0/+1
| | | | llvm-svn: 231177
* Recommit r231168: unique_ptrify LiveRange::segmentSetDavid Blaikie2015-03-033-14/+9
| | | | | | | | | | | | | | | | | | | | GCC 4.7's libstdc++ doesn't have std::map::emplace, but it does have std::unordered_map::emplace, and the use case here doesn't appear to need ordering. The container has been changed in a separate/precursor patch, and now this patch should hopefully build cleanly even with GCC 4.7. Original commit message: This makes LiveRange non-copyable, and LiveInterval is already non-movable (due to the explicit dtor), so now it's non-copyable and non-movable. Fix the one case where we were relying on the (deprecated in C++11) implicit copy ctor of LiveInterval (which happened to work because the ctor created an object with a null segmentSet, so double-deleting the null pointer was fine). llvm-svn: 231176
* Change LiveStackAnalysis::SS2IntervalMap from std::map to std::unordered_mapDavid Blaikie2015-03-031-1/+1
| | | | | | | | | This use case doesn't appear to benefit from ordering, and std::unordered_map has the advantage that it supports emplace (the LiveInterval values really shouldn't be copyable or movable & they won't be in a near-future patch). llvm-svn: 231175
* Revert "unique_ptrify LiveRange::segmentSet"David Blaikie2015-03-033-9/+14
| | | | | | | | GCC 4.7 *shakes fist* (doesn't have std::map::emplace... ) This reverts commit r231168. llvm-svn: 231173
* Move TargetLibraryInfo data from two files into one common .def file.Jan Wen Voung2015-03-033-999/+1033
| | | | | | | | | | | | | | | Summary: This makes it more obvious that the enum definition and the "StandardName" array is in sync. Mechanically refactored w/ a python script. Test Plan: still compiles Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7845 llvm-svn: 231172
* unique_ptrify LiveRange::segmentSetDavid Blaikie2015-03-033-14/+9
| | | | | | | | | | | | | This makes LiveRange non-copyable, and LiveInterval is already non-movable (due to the explicit dtor), so now it's non-copyable and non-movable. Fix the one case where we were relying on the (deprecated in C++11) implicit copy ctor of LiveInterval (which happened to work because the ctor created an object with a null segmentSet, so double-deleting the null pointer was fine). llvm-svn: 231168
* [sanitizer/coverage] Add AFL-style coverage counters (search heuristic for ↵Kostya Serebryany2015-03-0310-12/+118
| | | | | | | | | | | | | | | | | | | | | | | | | fuzzing). Introduce -mllvm -sanitizer-coverage-8bit-counters=1 which adds imprecise thread-unfriendly 8-bit coverage counters. The run-time library maps these 8-bit counters to 8-bit bitsets in the same way AFL (http://lcamtuf.coredump.cx/afl/technical_details.txt) does: counter values are divided into 8 ranges and based on the counter value one of the bits in the bitset is set. The AFL ranges are used here: 1, 2, 3, 4-7, 8-15, 16-31, 32-127, 128+. These counters provide a search heuristic for single-threaded coverage-guided fuzzers, we do not expect them to be useful for other purposes. Depending on the value of -fsanitize-coverage=[123] flag, these counters will be added to the function entry blocks (=1), every basic block (=2), or every edge (=3). Use these counters as an optional search heuristic in the Fuzzer library. Add a test where this heuristic is critical. llvm-svn: 231166
* Remove subtarget dependence in pass pipeline setup for AArch64.Eric Christopher2015-03-032-4/+6
| | | | llvm-svn: 231165
* WinEH: Remove vestigial EH objectReid Kleckner2015-03-036-53/+13
| | | | | | | | Ultimately, we'll need to leave something behind to indicate which alloca will hold the exception, but we can figure that out when it comes time to emit the __CxxFrameHandler3 catch handler table. llvm-svn: 231164
* LangRef: Clarify select's semantics with vector argumentsDavid Majnemer2015-03-031-3/+4
| | | | llvm-svn: 231158
* InstCombine: Ensure select condition types are identical before mergingDavid Majnemer2015-03-032-28/+42
| | | | | | | | | | Selection conditions may be vectors or scalars. Make sure InstCombine doesn't indiscriminately assume that a select which is value dependent on another select have identical select condition types. This fixes PR22773. llvm-svn: 231156
* Moving WinEH outlining tests to an architecture neutral locationAndrew Kaylor2015-03-037-0/+12
| | | | llvm-svn: 231155
* Avoid copying LiveInterval, this could lead to a double-deleteDavid Blaikie2015-03-031-1/+1
| | | | llvm-svn: 231154
OpenPOWER on IntegriCloud