summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix use of LLVM IR names in lit testReid Kleckner2016-05-031-1/+1
| | | | llvm-svn: 268419
* [MS] Pass CalleeDecl to adjustThisArgumentForVirtualFunctionCallReid Kleckner2016-05-032-1/+19
| | | | | | | | | | If we are devirtualizing, then we want to compute the 'this' adjustment of the devirtualized target, not the adjustment of the base's method definition, which is usually zero. Fixes PR27621 llvm-svn: 268418
* [Reassociate] Remove unneeded constructor.Davide Italiano2016-05-031-1/+0
| | | | llvm-svn: 268417
* Change test to use regex instead of explicit value numbers. NFC.Pete Cooper2016-05-031-4/+4
| | | | | | | | We were seeing an internal failure when running this test. I can't see a good reason for the difference, but the simple fix is to use %{{.*}} instead of %1. llvm-svn: 268416
* [ExecutionEngine] Add comment explainging that ExecutionEngine::addGlobalMappingLang Hames2016-05-031-1/+2
| | | | | | | | can only be used on named values. https://llvm.org/bugs/PR23497 llvm-svn: 268415
* [ImplicitNullChecks] Account for implicit-defs as well when updating the ↵Quentin Colombet2016-05-032-8/+13
| | | | | | | | | | | | liveness. The replaced load may have implicit-defs and those defs may be used in the block of the original load. Make sure to update the liveness accordingly. This is a generalization of r267817. llvm-svn: 268412
* ELF: Fix regression in TLS attribute mismatch logic.Peter Collingbourne2016-05-033-3/+21
| | | | | | | | | Introduce a special symbol type to indicate that we have not yet seen a type for the symbol, so we should not report TLS mismatches for that symbol. Differential Revision: http://reviews.llvm.org/D19836 llvm-svn: 268411
* Check return value of addOptionalSynthetic before calling a member function ↵Peter Collingbourne2016-05-031-3/+5
| | | | | | | | on it. Found with UBSan. llvm-svn: 268410
* (no commit message)Jack Liu2016-05-032-3/+22
| | | | llvm-svn: 268409
* [LICM] Kill SCEV loop dispositions if neededSanjoy Das2016-05-032-0/+35
| | | | | | | | SCEV caches whether SCEV expressions are loop invariant, variant or computable. LICM breaks this cache, almost by definition; so clear the SCEV disposition cache if LICM changed anything. llvm-svn: 268408
* Use all_of instead of a raw loop; NFCSanjoy Das2016-05-032-8/+60
| | | | | | | Added some tests despite being NFC, since it looks like nothing was exercising the "all incoming values to exit PHIs are same" logic. llvm-svn: 268407
* [LoopDeletion] Clear SCEV loop dispositionsSanjoy Das2016-05-032-11/+83
| | | | | | | | | | | `Loop::makeLoopInvariant` can hoist instructions out of loops, so loop dispositions for the loop it operated on may need to be cleared. We can be smarter here (especially around how `forgetLoopDispositions` is implemented), but let's be correct first. Fixes PR27570. llvm-svn: 268406
* [SCEV] Tweak the output format and content of -analyzeSanjoy Das2016-05-032-13/+28
| | | | | | | | | | | | | In the "LoopDispositions:" section: - Instead of printing out a list, print out a "dictionary" to make it obvious by inspection which disposition is for which loop. This is just a cosmetic change. - Print dispositions for parent _and_ sibling loops. I will use this to write a test case. llvm-svn: 268405
* Produce cpio files for --reproduce.Rafael Espindola2016-05-0311-39/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We want --reproduce to * not rewrite scripts and thin archives * work with absolute paths Given that, it pretty much has to create a full directory tree. On windows that is problematic because of the very short maximum path limit. On most cases users can still work around it with "--repro c:\r", but that is annoying and not viable for automated testing. We then need to produce some form of archive with the files. The first option that comes to mind is .a files since we already have code for writing them. There are a few problems with them The format has a dedicated string table, so we cannot start writing it until all members are known. Regular implementations don't support creating directories. We could make llvm-ar support that, but that is probably not a good idea. The next natural option would be tar. The problem is that to support long path names (which is how this started) it needs a "pax extended header" making this an annoying format to write. The next option I looked at seems a natural fit: cpio files. They are available on pretty much every unix, support directories and long path names and are really easy to write. The only slightly annoying part is a terminator, but at least gnu cpio only prints a warning if it is missing, which is handy for crashes. This patch still makes an effort to always create it. llvm-svn: 268404
* Produce another specific error message for a malformed Mach-O file when a loadKevin Enderby2016-05-033-2/+14
| | | | | | | | | | | | | | command other than the first one is past the end of the load commands. This is like the test case in test/Object/macho-invalid.test for macho64-invalid-incomplete-load-command but it is the second load command that is past the end of all the load commands instead of the first. The code in the constructor for MachOObjectFile that loops over the load commands used getNextLoadCommandInfo() which was not producing a good error message. So that was fixed and a test case was added. llvm-svn: 268403
* [ProfileData] Assert NoError in InstrProfTestVedant Kumar2016-05-031-44/+44
| | | | | | | | | Check for success values in the InstrProfTest unit test file. This is part of a series of patches to transition ProfileData over to the stricter Error/Expected interface. llvm-svn: 268402
* [CMake] Fix a copy-paste errorChris Bieneman2016-05-031-1/+1
| | | | | | Based on post commit feedback from Eric Fiselier. llvm-svn: 268401
* [ProfileData] Add error codes for compression failuresVedant Kumar2016-05-033-20/+32
| | | | | | | | | | Be more specific in describing compression failures. Also, check for this kind of error in emitNameData(). This is part of a series of patches to transition ProfileData over to the stricter Error/Expected interface. llvm-svn: 268400
* Win packaging script: include the OpenMP run-timeHans Wennborg2016-05-031-1/+3
| | | | llvm-svn: 268398
* Split out console and file writing cases in TestCommandScriptImmediateOutputFrancis Ricci2016-05-031-4/+17
| | | | | | | | | | | | | | Summary: As these are really testing separate issues, they should be run as separate tests. Reviewers: zturner, granata.enrico, clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D19690 llvm-svn: 268397
* AMDGPU/SI: Use range loops to simplify some code in the SI SchedulerTom Stellard2016-05-031-18/+18
| | | | | | | | | | Reviewers: arsenm, axeldavy Subscribers: MatzeB, arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D19822 llvm-svn: 268396
* Move "Eliminate Available Externally" immediately after the inlinerMehdi Amini2016-05-032-13/+17
| | | | | | | | | | | This pass is supposed to reduce the size of the IR for compile time purpose. We should run it ASAP, except when we prepare for LTO or ThinLTO, and we want to keep them available for link-time inline. Differential Revision: http://reviews.llvm.org/D19813 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268394
* Provide some default values for the ThinLTO Cache pruningMehdi Amini2016-05-032-7/+10
| | | | | | | | This control how the cache is pruned. The cache still has to be explicitely enabled/disabled by providing a path. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 268393
* Silence unused variable warning; NFC.Aaron Ballman2016-05-031-2/+1
| | | | llvm-svn: 268392
* [X86][SSE] Added target shuffle combine to MOVQ Simon Pilgrim2016-05-032-2/+18
| | | | llvm-svn: 268391
* Fold compares irrespective of whether allocation can be elidedAnna Thomas2016-05-033-15/+111
| | | | | | | | | | | | | | | | | | | Summary When a non-escaping pointer is compared to a global value, the comparison can be folded even if the corresponding malloc/allocation call cannot be elided. We need to make sure the global value is not null, since comparisons to null cannot be folded. In future, we should also handle cases when the the comparison instruction dominates the pointer escape. Reviewers: sanjoy Subscribers s.egerton, llvm-commits Differential Revision: http://reviews.llvm.org/D19549 llvm-svn: 268390
* [Sparc] Constification of TargetMachine argumentsJames Y Knight2016-05-034-4/+4
| | | | | | | | | | | This patch changes the TargetMachine arguments to be const. This is required for {D19265}, and was requested to be done in a separate patch. Patch by Jacob Hansen! Differential Revision: http://reviews.llvm.org/D19797 llvm-svn: 268389
* Don't depend on checking the response file when lld fails.Rafael Espindola2016-05-031-7/+10
| | | | llvm-svn: 268388
* [clang][AVX512][BuiltIn] Adding intrinsics for ↵Michael Zuckerman2016-05-032-0/+50
| | | | | | | | cast{pd|ps|si}128_{pd|ps|si}512 and castsi256_si512 instruction set Differential Revision: http://reviews.llvm.org/D19858 llvm-svn: 268387
* [mips][fastisel] ADJCALLSTACKUP has a second immediate operand.Daniel Sanders2016-05-033-7/+7
| | | | | | | | | | | | | | Summary: It's always zero for SelectionDAG and is never read by the MIPS backend so do the same for FastISel. Reviewers: sdardis Subscribers: dsanders, llvm-commits, sdardis Differential Revision: http://reviews.llvm.org/D19863 llvm-svn: 268386
* [Clang][avx512][Builtin] Adding intrinsics for cvtw2mask{128|256|512} ↵Michael Zuckerman2016-05-035-0/+40
| | | | | | | | instruction set Differential Revision: http://reviews.llvm.org/D19766 llvm-svn: 268385
* Revert "Add a read_full_buffer argument to ConnectionFileDescriptor::Read"Pavel Labath2016-05-0312-272/+127
| | | | | | | This reverts commit r268380 as it breaks windows build (I forgot to make neccesary adjustments to ConnectionGenericFileWindows). llvm-svn: 268384
* [mips] Fix unused variable warning for release builds introduced by r268379.Daniel Sanders2016-05-031-3/+1
| | | | llvm-svn: 268383
* tsan: update tsan_analyze to what tip clang generatesDmitry Vyukov2016-05-031-14/+2
| | | | | | | | | | | | We used to depend on host gcc. But some distributions got new gcc recently which broke the check. Generally, we can't depend that an arbitrary host gcc generates something stable. Switch to clang. This has an additional advantage of catching regressions in clang codegen. llvm-svn: 268382
* Remove unused includes.Rafael Espindola2016-05-032-2/+0
| | | | llvm-svn: 268381
* Add a read_full_buffer argument to ConnectionFileDescriptor::ReadPavel Labath2016-05-0312-127/+272
| | | | | | | | | | | | | | | | | | | | | Summary: AdbClient was attempting to handle the case where the socket input arrived in pieces, but it was failing to handle the case where the connection was closed before that happened. In this case, it would just spin in an infinite loop calling Connection::Read. (This was also the cause of the spurious timeouts on the darwin->android buildbot. The exact cause of the premature EOF remains to be investigated, but is likely a server bug.) Since this wait-for-a-certain-number-of-bytes seems like a useful functionality to have, I am moving it (with the infinite loop fixed) to the Connection class, and adding an appropriate test for it. Reviewers: clayborg, zturner, ovyalov Subscribers: tberghammer, danalbert, lldb-commits Differential Revision: http://reviews.llvm.org/D19533 llvm-svn: 268380
* [mips] Use MipsMCExpr instead of MCSymbolRefExpr for all relocations.Daniel Sanders2016-05-0329-599/+710
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is much closer to the way MIPS relocation expressions work (%hi(foo + 2) rather than %hi(foo) + 2) and removes the need for the various bodges in MipsAsmParser::evaluateRelocExpr(). Removing those bodges ensures that the constant stored in MCValue is the full 32 or 64-bit (depending on ABI) offset from the symbol. This will be used to correct the %hi/%lo matching needed to sort the relocation table correctly. As part of this: * Gave MCExpr::print() the ability to omit parenthesis when emitting a symbol reference inside a MipsMCExpr operator like %hi(X). Without this we print things like %lo(($L1)). * %hi(%neg(%gprel(X))) is now three MipsMCExpr's instead of one. Most of the related special cases have been removed or moved to MipsMCExpr. We can remove the rest as we gain support for the less common relocations when they are not part of this specific combination. * Renamed MipsMCExpr::VariantKind and the enum prefix ('VK_') to avoid confusion with MCSymbolRefExpr::VariantKind and its prefix (also 'VK_'). * fixup_Mips_GOT_Local and fixup_Mips_GOT_Global were found to be identical and merged into fixup_Mips_GOT. * MO_GOT16 and MO_GOT turned out to be identical and have been merged into MO_GOT. * VK_Mips_GOT and VK_Mips_GOT16 turned out to be the same thing so they have been merged into MEK_GOT Reviewers: sdardis Subscribers: dsanders, sdardis, llvm-commits Differential Revision: http://reviews.llvm.org/D19716 llvm-svn: 268379
* [X86][SSSE3] Missing combine opportunity to simplify to a MOVQ shuffleSimon Pilgrim2016-05-031-0/+15
| | | | llvm-svn: 268378
* [Clang][AVX512][Builtin] Adding intrinsics for vcvt{ph|ps}2{ps|ph} ↵Michael Zuckerman2016-05-033-0/+111
| | | | | | | | instruction set Differential Revision: http://reviews.llvm.org/D19767 llvm-svn: 268376
* [AVX512] Add support for commutative MAX/MIN . In general VMAX{PS,PD} and ↵Igor Breger2016-05-032-2/+77
| | | | | | | | VMIN{PS,PD} instruction are not commutative . In combine pass only if UnsafeFPMath are used VMAX/VMAX are converted to commutative nodes VMAXC/VMAXC. Differential Revision: http://reviews.llvm.org/D19860 llvm-svn: 268375
* Fix cppcoreguidelines-pro-type-member-init failure test on Windows.Haojian Wu2016-05-031-1/+1
| | | | llvm-svn: 268374
* [Clang][AVX512][Builtin] Adding intrinsics for vcvttpd2udq instruction setMichael Zuckerman2016-05-032-0/+84
| | | | | | Differential Revision: http://reviews.llvm.org/D19768 llvm-svn: 268373
* [Clang][AVX512][BUILTIN] Adding intrinsics for compressstore{df|di|sf|si} ↵Michael Zuckerman2016-05-033-0/+55
| | | | | | | | instruction set. Differential Revision: http://reviews.llvm.org/D19808 llvm-svn: 268372
* [include-fixer] Abstract includeFixerMain function.Haojian Wu2016-05-031-2/+7
| | | | llvm-svn: 268371
* Mark that SpeculativeExecution preserves Globals Alias Analysis.Kristof Beyls2016-05-032-0/+28
| | | | | | | | | | | | | | | | | | | | A few benchmarks with lots of accesses to global variables in the hot loops regressed a lot since r266399, which added the SpeculativeExecution pass to the default pipeline. The problem is that this pass doesn't mark Globals Alias Analysis as preserved. Globals Alias Analysis is computed in a module pass, whereas SpeculativeExecution is a function pass, and a lot of passes dependent on the Globals Alias Analysis to optimize these benchmarks are also function passes. As such, the Globals Alias Analysis information cannot be recomputed between SpeculativeExecution and the following function passes needing that information. SpeculativeExecution doesn't invalidate Globals Alias Analysis, so mark it as such to fix those performance regressions. Differential Revision: http://reviews.llvm.org/D19806 llvm-svn: 268370
* Fix a crash in cppcoreguidelines-pro-type-member-init when checking a class ↵Haojian Wu2016-05-032-2/+13
| | | | | | | | | | | | | | | | that initializes itself as a base Summary: Fix a crash when a record type initializes itself in its own base class initializer list. Patch by Michael Miller! Reviewers: alexfh, aaron.ballman, hokein Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19802 llvm-svn: 268369
* [AVX512] Fix lowerV4X128VectorShuffle to select correctly input operands .Igor Breger2016-05-032-4/+50
| | | | | | Differential Revision: http://reviews.llvm.org/D19803 llvm-svn: 268368
* [lib/Object] Make this assertion more useful.Davide Italiano2016-05-031-3/+2
| | | | llvm-svn: 268367
* [libclang] Expose the ElaboratedTypeSergey Kalinichev2016-05-036-3/+54
| | | | | | Differential Revision: http://reviews.llvm.org/D11797 llvm-svn: 268366
* [CodeGen] Add some space optimized forms of EmitNode and MorphNodeTo that ↵Craig Topper2016-05-033-11/+33
| | | | | | | | implicitly indicate the number of result VTs. This shaves about 16K off the X86 matching table taking it down to about 470K. Overall this reduces the llc binary size with all in-tree targets by about 40K. llvm-svn: 268365
OpenPOWER on IntegriCloud