summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Delete dead code. NFC.Rafael Espindola2016-06-201-8/+0
| | | | llvm-svn: 273206
* Remove interface to get/set MaxFunctionCountEaswaran Raman2016-06-201-12/+0
| | | | | | Differential revision: http://reviews.llvm.org/D19185 llvm-svn: 273203
* [tsan] Do not instrument accesses to the gcov counters arrayVedant Kumar2016-06-201-0/+4
| | | | | | | | There is a known intended race here. This is a follow-up to r264805, which disabled tsan instrumentation for updates to instrprof counters. For more background on this please see the discussion in D18164. llvm-svn: 273202
* [InstSimplify] analyze (optionally casted) icmps to eliminate obviously ↵Sanjay Patel2016-06-202-14/+31
| | | | | | | | | | | | | | | false logic (PR27869) By moving this transform to InstSimplify from InstCombine, we sidestep the problem/question raised by PR27869: https://llvm.org/bugs/show_bug.cgi?id=27869 ...where InstCombine turns an icmp+zext into a shift causing us to miss the fold. Credit to David Majnemer for a draft patch of the changes to InstructionSimplify.cpp. Differential Revision: http://reviews.llvm.org/D21512 llvm-svn: 273200
* Pass AssumptionCacheTracker from SampleProfileLoader to InlinerDehao Chen2016-06-201-4/+17
| | | | | | | | | | | | Summary: Inliner needs ACT when calling InlineFunction. Instead of nullptr, we need to pass it in from SampleProfileLoader Reviewers: davidxl Subscribers: eraman, vsk, danielcdh, llvm-commits Differential Revision: http://reviews.llvm.org/D21205 llvm-svn: 273199
* Fix a relatively nasty bug with fs::getPathFromOpenFD() on Windows. The ↵Aaron Ballman2016-06-201-4/+13
| | | | | | GetFinalPathNameByHandle API does not behave as documented; if given a buffer that has enough space for the path but not the null terminator, the call will return the number of characters required *without* the null terminator (despite being documented otherwise) and it will not set GetLastError(). The result was that this function would return a bogus path and no error. Instead, ensure there is sufficient space for a null terminator (we already strip it off manually for compatibility with older versions of Windows). llvm-svn: 273195
* Rename to be consistent with other type names. NFCDaniel Berlin2016-06-201-11/+12
| | | | llvm-svn: 273194
* InstCombine: Don't strip convergent from intrinsic callsitesMatt Arsenault2016-06-201-1/+2
| | | | | | | Specific instances of intrinsic calls may want to be convergent, such as certain register reads but the intrinsic declaration is not. llvm-svn: 273188
* Add a isPositionIndependent helper to ARMFastISel. NFC.Rafael Espindola2016-06-201-8/+13
| | | | llvm-svn: 273187
* [AArch64] Adjust the loop buffer size for Exynos M1 (NFC)Evandro Menezes2016-06-201-1/+1
| | | | llvm-svn: 273185
* AMDGPU: Preserve undef flag on vcc when shrinking v_cndmask_b32Matt Arsenault2016-06-201-16/+13
| | | | | | | | | The implicit operand is added by the initial instruction construction, so this was adding an additional vcc use. The original one was missing the undef flag the original condition had, so the verifier would complain. llvm-svn: 273182
* AMDGPU: Fold more custom nodes to undefMatt Arsenault2016-06-201-11/+40
| | | | | | | | | | | This will help sneak undefs past GVN into the DAG for some tests. Also add missing intrinsic for rsq_legacy, even though the node was already selected to the instruction. Also start passing the debug location to intrinsic errors. llvm-svn: 273181
* Generalize DiagnosticInfoStackSize to support other limitsMatt Arsenault2016-06-202-6/+18
| | | | | | | Backends may want to report errors on resources other than stack size. llvm-svn: 273177
* AMDGPU: Use correct method for determining instruction sizeMatt Arsenault2016-06-201-2/+4
| | | | llvm-svn: 273172
* Properly handle short file names on the command line in Windows [TAKE 2]Adrian McCarthy2016-06-201-2/+34
| | | | | | | | Trying to expand short names with a relative path doesn't work, so this first gets the module name to get a full path (which can still have short names). llvm-svn: 273171
* Use shouldAssumeDSOLocal.Rafael Espindola2016-06-201-1/+3
| | | | | | With this ARM fast isel knows that PIE variable are not preemptable. llvm-svn: 273169
* AMDGPU: Add support for R_AMDGPU_REL32 relocationsTom Stellard2016-06-202-1/+8
| | | | | | | | | | Reviewers: arsenm, kzhuravl, rafael Subscribers: arsenm, llvm-commits, kzhuravl Differential Revision: http://reviews.llvm.org/D21401 llvm-svn: 273168
* Simplify. NFC.Rafael Espindola2016-06-201-6/+2
| | | | llvm-svn: 273167
* AMDGPU: Emit R_AMDGPU_ABS32_{HI,LO} for scratch buffer relocationsTom Stellard2016-06-201-4/+15
| | | | | | | | | | Reviewers: arsenm, rafael, kzhuravl Subscribers: rafael, arsenm, llvm-commits, kzhuravl Differential Revision: http://reviews.llvm.org/D21400 llvm-svn: 273166
* [ARM] Enable isel of UMAALSam Parker2016-06-205-10/+133
| | | | | | | | | | TargetLowering and DAGToDAG are used to combine ADDC, ADDE and UMLAL dags into UMAAL. Selection is split into the two phases because it is easier to match the two patterns at those different times. Differential Revision: http://http://reviews.llvm.org/D21461 llvm-svn: 273165
* Add a isPositionIndependent predicate.Rafael Espindola2016-06-202-17/+20
| | | | | | | Reduces a bit of code duplication and clarify where we are interested just on position independence and no the location of the symbol. llvm-svn: 273164
* Forgot to update callers of deleteDeadInstructionDavid Majnemer2016-06-201-2/+2
| | | | llvm-svn: 273163
* Reapply "[LoopIdiom] Don't remove dead operands manually"David Majnemer2016-06-201-9/+1
| | | | | | | | This reverts commit r273160, reapplying r273132. RecursivelyDeleteTriviallyDeadInstructions cannot be called on a parentless Instruction. llvm-svn: 273162
* Removing an unused switch statement that has only a default label. This ↵Aaron Ballman2016-06-201-22/+16
| | | | | | happens to also eliminate an instance of switchception. NFC intended. llvm-svn: 273161
* Revert "[LoopIdiom] Don't remove dead operands manually"Cong Liu2016-06-201-1/+2
| | | | | | | | This reverts commit r273132. Breaks multiple test under /llvm/test:Transforms (e.g. llvm/test:Transforms/LoopIdiom/basic.ll.test) under asan. llvm-svn: 273160
* Fix formatting of r273144. NFC.Patrik Hagglund2016-06-201-4/+4
| | | | llvm-svn: 273149
* [AARCH64] Add support for Broadcom VulcanPankaj Gode2016-06-203-1/+12
| | | | | | | | Adding core tuning support for new Broadcom Vulcan core (ARMv8.1A). Differential Revision: http://reviews.llvm.org/D21500 llvm-svn: 273148
* Avoid output indeterminism between GCC and Clang builds.Patrik Hagglund2016-06-201-2/+6
| | | | | | | | | Remove dependency of the evalution order of function arguments, which is unspecified. Patch by David Stenberg. llvm-svn: 273145
* Avoid output indeterminism between GCC and Clang builds.Patrik Hagglund2016-06-201-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove dependency of the evalution order of function arguments, which is unspecified. The following test previously failed when built with GCC (but succeded when built with Clang): ; RUN: opt -sroa -S < %s | FileCheck %s target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" %A = type {i16} @a = global %A* null @b = global i16 0 ; CHECK-LABEL: @f1( ; CHECK: alloca %A ; CHECK-NEXT: extractvalue %A ; CHECK-NEXT: getelementptr inbounds %A define void @f1 (%A %a) { %1 = alloca %A store %A %a, %A* %1 %2 = load i16, i16* @b %3 = icmp ne i16 %2, 0 br i1 %3, label %bb1, label %bb2 bb1: store %A* %1, %A** @a br label %bb2 bb2: ret void } Patch by David Stenberg. Differential Revision: http://reviews.llvm.org/D21226 llvm-svn: 273144
* Fix for PR27940Patrik Hagglund2016-06-201-2/+3
| | | | | | | | | | | | | | After a store has been eliminated, when making sure that the instruction iterator points to a valid instruction, dbg intrinsics are now ignored as a new instruction. Patch by Henric Karlsson. Reviewed by Daniel Berlin. Differential Revision: http://reviews.llvm.org/D21076 llvm-svn: 273141
* [codeview] Add an extra check for TPI hash values.Rui Ueyama2016-06-201-2/+10
| | | | | | | This patch adds a function that corresponds to `fUDTAnon` and use that to compute TPI hash values as the reference does. llvm-svn: 273139
* [AVX512] [AVX512/AVX][Intrinsics] Fix Variable Bit Shift Right Arithmetic ↵Igor Breger2016-06-207-11/+28
| | | | | | | | intrinsic lowering. Differential Revision: http://reviews.llvm.org/D20897 llvm-svn: 273138
* [X86] Pass the SDLoc and Mask ArrayRef down from lowerVectorShuffle through ↵Craig Topper2016-06-201-127/+78
| | | | | | all of the other routines instead of recreating them in the handlers for each type. NFC llvm-svn: 273137
* [X86] Use existing ArrayRef variable instead of calling SVOp->getMask() ↵Craig Topper2016-06-201-12/+12
| | | | | | repeatedly. Remove nearby else after return as well. NFC llvm-svn: 273136
* [X86] Avoid making a copy of a shuffle mask until we're sure we really need ↵Craig Topper2016-06-201-7/+7
| | | | | | to. And just use a SmallVector to do the copy because its easy. llvm-svn: 273135
* Fix dynamically linked debug builds.Eli Friedman2016-06-201-0/+1
| | | | | | | | | | On the surface, this might not look like it does anything... but actually it brings in the declaration "extern template class AnalysisManager<Loop>;", which suppresses the instantiation of the constructor, which avoids the funny interaction between "extern template" and -fvisibility-inlines-hidden. llvm-svn: 273133
* [LoopIdiom] Don't remove dead operands manuallyDavid Majnemer2016-06-201-2/+1
| | | | | | | | | | Removing dead instructions requires remembering which operands have already been removed. RecursivelyDeleteTriviallyDeadInstructions has this logic, don't partially reimplement it in LoopIdiomRecognize. This fixes PR28196. llvm-svn: 273132
* Reformat blank lines.NAKAMURA Takumi2016-06-205-14/+1
| | | | llvm-svn: 273131
* Trailing whitespace.NAKAMURA Takumi2016-06-202-6/+6
| | | | llvm-svn: 273130
* Untabify.NAKAMURA Takumi2016-06-209-29/+27
| | | | llvm-svn: 273129
* Address Eli's post-commit commentsDavid Majnemer2016-06-191-16/+19
| | | | | | | Use an APInt to handle pointers of arbitrary width, let accumulateConstantOffset handle overflow issues. llvm-svn: 273126
* [X86][AVX512] Added 512-bit BITREVERSE tests and enabled AVX512BW lowering ↵Simon Pilgrim2016-06-191-0/+1
| | | | | | support llvm-svn: 273125
* Strip trailing whitespace. NFCI.Simon Pilgrim2016-06-191-2/+2
| | | | llvm-svn: 273124
* Fixed signed/unsigned warning.Simon Pilgrim2016-06-191-1/+1
| | | | llvm-svn: 273120
* [X86][SSE] Allow target shuffle combining to match masks with SM_Sentinel valuesSimon Pilgrim2016-06-191-22/+48
| | | | | | | | | | | | We currently only allow exact matches of shuffle mask patterns during target shuffle combining. This patch relaxes this to permit SM_SentinelUndef in the combined shuffle to always be accepted as well as allowing exact matching of the SM_SentinelZero value. I've adjusted some tests that were requiring exact shuffle masks to now include undef values. Differential Revision: http://reviews.llvm.org/D21495 llvm-svn: 273119
* fix formatting, typo; NFCSanjay Patel2016-06-193-55/+55
| | | | llvm-svn: 273118
* [X86] Add an assert to ensure that a routine is only used with 128-bit ↵Craig Topper2016-06-191-2/+4
| | | | | | vectors. Reduce SmallVector size accordingly. llvm-svn: 273117
* [X86] Make is128BitLaneRepeatedShuffleMask correct the indices of the second ↵Craig Topper2016-06-191-15/+12
| | | | | | vector for the smaller mask. This removes some custom correction code and can potentially provide other benefits in the future. llvm-svn: 273116
* [X86] Remove a dead path through one of the shuffle lowering routines. It's ↵Craig Topper2016-06-191-24/+20
| | | | | | only called on single input shuffles masks already. Add an assert instead to verify. llvm-svn: 273115
* [X86] Pre-allocate a SmallVector instead of using push_back in a loop. NFCCraig Topper2016-06-191-6/+7
| | | | llvm-svn: 273114
OpenPOWER on IntegriCloud