summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [Hexagon] Add -mv.. options to override CPU selectionKrzysztof Parzyszek2016-04-201-3/+39
| | | | | | | This is for compatibility with scripts that use -mv5, etc. with the assembler. llvm-svn: 266918
* IR: Use SmallVector instead of std::vector of TrackingMDRefDuncan P. N. Exon Smith2016-04-203-3/+12
| | | | | | | | | | Don't use std::vector<TrackingMDRef>, since (at least in some versions of libc++) std::vector apparently copies values on grow operations instead of moving them. Found this when I was temporarily deleting the copy constructor for TrackingMDRef to investigate a performance bottleneck. llvm-svn: 266909
* IR: Stop copying vectors of TrackingMDRef in DIBuilderDuncan P. N. Exon Smith2016-04-201-6/+12
| | | | | | | No real functionality change here, just avoiding an unnecessary copy of std::vector<TrackingMDRef> for every subprogram with variables. llvm-svn: 266907
* Rename asan-check-lifetime into asan-stack-use-after-scopeKostya Serebryany2016-04-203-8/+6
| | | | | | | | | | | | Summary: This is done for consistency with asan-use-after-return. I see no other users than tests. Reviewers: aizatsky, kcc Differential Revision: http://reviews.llvm.org/D19306 llvm-svn: 266906
* Typo.Chad Rosier2016-04-201-1/+1
| | | | llvm-svn: 266905
* [ValueTracking] Make isImpliedCondition return an Optional<bool>. NFC.Chad Rosier2016-04-205-88/+79
| | | | | | Phabricator Revision: http://reviews.llvm.org/D19277 llvm-svn: 266904
* Replace a loop with a for-each loop. No behavior change.Nico Weber2016-04-201-2/+1
| | | | llvm-svn: 266903
* IR: Avoid mallocs in constructor of ModuleSlotTrackerDuncan P. N. Exon Smith2016-04-202-5/+20
| | | | | | | | A ModuleSlotTracker can be created without actually being used (e.g., r266889 added one to the Verifier). Create the SlotTracker within it lazily on the first call to ModuleSlotTracker::getMachine. llvm-svn: 266902
* [MC] Silence warning due to unused variable in !Debug builds.Davide Italiano2016-04-201-0/+1
| | | | llvm-svn: 266901
* Verifier: Add ModuleSlotTracker to printAsOperand callDuncan P. N. Exon Smith2016-04-201-1/+1
| | | | | | I missed this site in r266889. llvm-svn: 266900
* [lanai] Add subword scheduling itineraries.Jacques Pienaar2016-04-203-17/+63
| | | | | | | | Differentiate between word and subword memory operations as they take different amount of cycles to complete. This just adds a basic model of the subword latency to the scheduler. llvm-svn: 266898
* Verifier: Prefer early continue over if-nesting, NFCDuncan P. N. Exon Smith2016-04-201-8/+9
| | | | llvm-svn: 266897
* [MC] EmitNop: Make an assertion more useful.Davide Italiano2016-04-201-1/+2
| | | | | | Differential Revision: http://reviews.llvm.org/D19334 llvm-svn: 266895
* LTO: Verify the input even if optimize() isn't calledDuncan P. N. Exon Smith2016-04-202-2/+41
| | | | | | | | | | | | | | Clients may call writeMergedModules before calling optimize, or call compileOptimized without calling optimize. Make sure they don't sneak past the verifier. This adds LTOCodeGenerator::verifyMergedModuleOnce, and calls it from writeMergedModule, optimize, and codegenOptimized. I couldn't find a good way to test this. I tried writing broken IR to send into llvm-lto, but LTOCodeGenerator doesn't understand textual IR, and assembler runs the verifier itself anyway. Checking in valid-but-doesn't-verify bitcode here doesn't seem valuable. llvm-svn: 266894
* ModuleLinker: only import what is in GlobalsToImport, regarless if it is a ↵Mehdi Amini2016-04-201-22/+6
| | | | | | | | | | | | | | | function or not. The alias handling was specific to the old iterative inlining mechanism, so that is dead now. The variable handling could make a difference, since we were previously falling through to the normal selection logic, but we don't observe changes in the validation because no client seems to rely on it. Differential Revision: http://reviews.llvm.org/D19307 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266893
* IR: Use a single ModuleSlotTracker in the VerifierDuncan P. N. Exon Smith2016-04-203-6/+35
| | | | | | | | | | | | Speed up Verifier output by sharing a single ModuleSlotTracker for the duration. There should be no functionality change here except for much faster output when there's more than one statement. Now the Verifier won't be traversing the full Metadata graph every time it prints an error. The TypePrinter is still not shared, but that would take some extra plumbing. llvm-svn: 266889
* IR: Don't use raw_null_ostream in VerifierDuncan P. N. Exon Smith2016-04-201-27/+32
| | | | | | | | While using a raw_null_ostream meant that the Verifier didn't have to think about whether to print, it's actually quite expensive to print out IR. Only print if the output is going somewhere. llvm-svn: 266884
* IR: Use default member initialization in Verifier, NFCDuncan P. N. Exon Smith2016-04-201-5/+4
| | | | llvm-svn: 266883
* [Hexagon] Fix handling of lcomm directiveKrzysztof Parzyszek2016-04-202-7/+31
| | | | | | Patch by Colin LeMahieu. llvm-svn: 266882
* Re-enable "[gold-plugin] Disable name for values other than GlobalValue"Teresa Johnson2016-04-204-0/+46
| | | | | | | | | | This restores r266871 with a fix for gold tests relying on the value names, when using a release compiler, by adding a way to disable the default discarding. Update affected tests to use the new mechanism so that value names are preserved as expected, regardless of how the compiler was built. llvm-svn: 266881
* [ThinLTO] Prevent importing of "llvm.used" valuesTeresa Johnson2016-04-2012-27/+101
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch prevents importing from (and therefore exporting from) any module with a "llvm.used" local value. Local values need to be promoted and renamed when importing, and their presense on the llvm.used variable indicates that there are opaque uses that won't see the rename. One such example is a use in inline assembly. See also the discussion at: http://lists.llvm.org/pipermail/llvm-dev/2016-April/098047.html As part of this, move collectUsedGlobalVariables out of Transforms/Utils and into IR/Module so that it can be used more widely. There are several other places in LLVM that used copies of this code that can be cleaned up as a follow on NFC patch. Reviewers: joker.eph Subscribers: pcc, llvm-commits, joker.eph Differential Revision: http://reviews.llvm.org/D18986 llvm-svn: 266877
* [RDF] Consider register as live if any alias is liveKrzysztof Parzyszek2016-04-202-2/+30
| | | | | | This only affects the recomputation of kill flags. llvm-svn: 266875
* [mips][microMIPS] Implement BGEC, BGEUC, BLTC, BLTUC, BEQC and BNEC instructionsZoran Jovanovic2016-04-206-24/+207
| | | | | | Differential Revision: http://reviews.llvm.org/D14206 llvm-svn: 266873
* Revert "[gold-plugin] Disable name for values other than GlobalValue"Teresa Johnson2016-04-202-41/+0
| | | | | | | | This reverts commit r266871. Setting the default based on the NDEBUG flag is causing test failures. Need to figure out whether to change this approach or update tests. llvm-svn: 266872
* [gold-plugin] Disable name for values other than GlobalValueTeresa Johnson2016-04-202-0/+41
| | | | | | | | | | | | | | | Summary: Applies Mehdi's optimization (r263086) to disable value names other than for GlobalValues to LTO/ThinLTO performed via the gold-plugin, in the same manner as it is applied in libLTO. Reviewers: rafael, joker-eph Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D19269 llvm-svn: 266871
* AMDGPU/SI: Assembler: improvements to support trap handlers.Nikolay Haustov2016-04-203-70/+140
| | | | | | | | | | | | Add ParseAMDGPURegister which can be invoked recursively for parsing lists. Rename getRegForName to getSpecialRegForName. Support legacy SP3 register list syntax: [s2,s3,s4,s5] or [flat_scratch_lo,flat_scratch_hi]. Add 64-bit registers TBA, TMA where missing. Add some tests. Differential Revision: http://reviews.llvm.org/D19163 llvm-svn: 266865
* [X86] enable PIE for functionsAsaf Badouh2016-04-205-44/+81
| | | | | | | | Call locally defined function directly for PIE/fPIE Differential Revision: http://reviews.llvm.org/D19226 llvm-svn: 266863
* [mips][microMIPS]Implement CFC*, CTC* and LDC* instructionsHrvoje Varga2016-04-2016-15/+198
| | | | | | Differential Revision: http://reviews.llvm.org/D18640 llvm-svn: 266861
* [AVX512] Add avx512cd+vl runs to vector-tzcnt-128/256 tests to show using ↵Craig Topper2016-04-202-132/+594
| | | | | | the vplzcntd/q instructions. llvm-svn: 266860
* [AVX512] Update vector-tzcnt-512 test to show how bad v32i16 and v64i8 is ↵Craig Topper2016-04-201-113/+859
| | | | | | with avx512bw enabled. llvm-svn: 266859
* [AVX512] Add popcount support for v32i16 and v64i8.Craig Topper2016-04-202-44/+72
| | | | llvm-svn: 266858
* ThinLTO: never promote as external weakMehdi Amini2016-04-202-2/+2
| | | | | | | | | This linkage is *not* intended to express that a declaration refers to a weak symbol, but that the symbol might not be present at link time. I don't believe it was the intent. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266856
* FunctionImport: make sure we always select the right callee in presence of aliasMehdi Amini2016-04-204-14/+56
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266854
* [X86] Mark some floating point operations that are always expanded for ↵Craig Topper2016-04-201-13/+17
| | | | | | vector types as Expand in a floating point only loop instead of looping through all vector types. llvm-svn: 266850
* [X86] Don't mark vector loads and shifts Expand in advance. Loads are always ↵Craig Topper2016-04-201-23/+4
| | | | | | marked Legal or Promote for all the legal types later. Shifts are always marked custom. NFC llvm-svn: 266849
* [X86] Merge the two different SSE2 blocks in the X86TargetLowering ↵Craig Topper2016-04-201-21/+19
| | | | | | constructor. Also qualfiy the XOP block with !useSoftFloat to match the other vector blocks. llvm-svn: 266848
* [X86] Don't set vector FADD,FSUB,FMUL,FDIV,FNEG,FSQRT to Expand early. For ↵Craig Topper2016-04-201-27/+0
| | | | | | every legal FP type we either set them to Legal or Custom anyway. So let them stay defaulted to Legal and only change when they need to be Custom. llvm-svn: 266847
* llvm-lto: run the module verifier when doing IR level workMehdi Amini2016-04-201-0/+9
| | | | | | | It seems it was only running during CodeGen previously. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266846
* ThinLTO: Move alias importing decision on the summaryMehdi Amini2016-04-201-5/+16
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266845
* [SystemZ] Add support for llvm.thread.pointer intrinsic.Marcin Koscielnicki2016-04-203-8/+33
| | | | | | Differential Revision: http://reviews.llvm.org/D19054 llvm-svn: 266844
* Add LLVMGetAttrKindID in the C API in order to facilitate migration away ↵Amaury Sechet2016-04-204-0/+53
| | | | | | | | | | | | | | | | | from LLVMAttribute Summary: LLVMAttribute has outlived its utility and is becoming a problem for C API users that what to use all the LLVM attributes. In order to help moving away from LLVMAttribute in a smooth manner, this diff introduce LLVMGetAttrKindIDInContext, which can be used instead of the enum values. See D18749 for reference. Reviewers: Wallbraker, whitequark, joker.eph, echristo, rafael Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D19081 llvm-svn: 266842
* MipsAsmParser::loadImmediate(): Prune an obsolete \param in r266602. ↵NAKAMURA Takumi2016-04-201-1/+0
| | | | | | [-Wdocumentation] llvm-svn: 266841
* IR: Use HANDLE_METADATA_LEAF to define MetadataKind enum, NFCDuncan P. N. Exon Smith2016-04-201-28/+2
| | | | llvm-svn: 266839
* [libFuzzer] added -detect_leaks flag (0 by default for now). When enabled, ↵Kostya Serebryany2016-04-206-5/+103
| | | | | | it will help finding leaks while fuzzing llvm-svn: 266838
* ScoreboardHazardRecognizer: unbreak TSAN by moving a static mutated variable ↵Mehdi Amini2016-04-202-19/+8
| | | | | | | to a member From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266837
* IR: Use std::vector instead of SmallPtrSet for distinct nodes, NFCDuncan P. N. Exon Smith2016-04-192-4/+5
| | | | | | | | | We never use the set-ness of SmallPtrSet for distinct nodes. Eventually we may start garbage-collecting or reference-counting nodes (in which cases we'd want to remove things from this collection, and a fast erase would be valuable), but in the meantime a vector is sufficient. llvm-svn: 266835
* [LLVM] Remove unwanted --check-prefix=CHECK from unit tests. NFC.Mandeep Singh Grang2016-04-1969-74/+74
| | | | | | | | | | | | Summary: Removed unwanted --check-prefix=CHECK from numerous unit tests. Reviewers: t.p.northover, dblaikie, uweigand, MatzeB, tstellarAMD, mcrosier Subscribers: mcrosier, dsanders Differential Revision: http://reviews.llvm.org/D19279 llvm-svn: 266834
* [Mips] [MSan] VarArgMIPS64Helper: Use target's endian, not host's.Marcin Koscielnicki2016-04-191-6/+7
| | | | | | | | Ugh. Differential Revision: http://reviews.llvm.org/D19292 llvm-svn: 266833
* [libFuzzer] more trophiesKostya Serebryany2016-04-191-0/+7
| | | | llvm-svn: 266830
* ARM: fix assertion failure on -O0 cmpxchg.Tim Northover2016-04-192-7/+30
| | | | | | | | Because lowering of CMP_SWAP_64 occurs during type legalization, there can be i64 types produced by more than just a BUILD_PAIR or similar. My initial tests used just incoming function args. llvm-svn: 266828
OpenPOWER on IntegriCloud