summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [SCCP] Try to follow the DRY principle, use `OpSt`.Davide Italiano2016-07-111-3/+2
| | | | | | Thanks to Eli Friedman for pointing out in his post-commit review! llvm-svn: 275084
* [SLSR] Call getPointerSizeInBits with the correct address space.Jingyue Wu2016-07-112-5/+22
| | | | llvm-svn: 275083
* [PM/IPO] Port LowerTypeTests to the new PassManager.Davide Italiano2016-07-115-17/+39
| | | | | | | | There's a little bit of churn in this patch because the initialization mechanism is now shared between the old and the new PM. Other than that, it's just a pretty mechanical translation. llvm-svn: 275082
* [lanai] Add more tests for assembly of conditional ALU opsJacques Pienaar2016-07-114-5/+363
| | | | llvm-svn: 275081
* Fix an issue where one could not define a Python command with the same name ↵Enrico Granata2016-07-114-2/+56
| | | | | | as an existing alias (or rather, one could but the results of invoking the command were far from satisfactory) llvm-svn: 275080
* Fix the assertion failure caused by http://reviews.llvm.org/D22118Dehao Chen2016-07-112-2/+3
| | | | | | | | | | | | Summary: http://reviews.llvm.org/D22118 uses metadata to store the call count, which makes it possible to have branch weight to have only one elements. Also fix the assertion failure in inliner when checking the instruction type to include "invoke" instruction. Reviewers: mkuper, dnovillo Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D22228 llvm-svn: 275079
* [Sema] Don't artificially forbid BuiltinTemplateDecls in CheckTemplateArgumentDavid Majnemer2016-07-112-8/+7
| | | | | | | | After thinking about it, we don't really need to forbid BuiltinTemplateDecls explicitly. The restriction doesn't really buy us anything. llvm-svn: 275078
* [IR] Stop a -Wsign-compare warning from firingDavid Majnemer2016-07-111-1/+1
| | | | llvm-svn: 275077
* [man page] Document -gline-tables-only in the clang man page.Adrian Prantl2016-07-111-12/+22
| | | | llvm-svn: 275076
* [man page] Fix two sphinx build errors.Adrian Prantl2016-07-111-2/+2
| | | | | | These options were referenced by other paragraphs, but never specified. llvm-svn: 275075
* [LowerTypeTests] Don't rely on doInitialization().Davide Italiano2016-07-111-23/+16
| | | | | | | | | In preparation for porting this pass to the new PM (which has no doInitialization()). Differential Revision: http://reviews.llvm.org/D22223 llvm-svn: 275074
* Implement callsite-hotness based inline cost for Sample-based PGODehao Chen2016-07-115-1/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: For sample-based PGO, using BFI to calculate callsite count is sometime not accurate. This is because with sampling based approach, if a callsite resides in a hot loop deeply nested in a bunch of cold branches, the callsite's BFI frequency would be inaccurately calculated due to lack of samples in the cold branch. E.g. if (A1 && A2 && A3 && ..... && A10) { for (i=0; i < 100000000; i++) { callsite(); } } Assume that A1 to A100 are all 100% taken, and callsite has 1000 samples and thus is considerred hot. Because the loop's trip count is huge, it's normal that all branches outside the loop has no sample at all. As a result, we can only use static branch probability to derive the the frequency of the loop header. Assuming that static heuristic thinks each branch is 50% taken, then the count calculated from BFI will be 1/(2^10) of the actual value. In order to get more accurate callsite count, we directly annotate the weight on the call instruction, and directly use it when checking callsite hotness. Note that this mechanism can also be shared by instrumentation based callsite hotness analysis. The side benefit is that it breaks the dependency from Inliner to BFI as call count is embedded in the IR. Reviewers: davidxl, eraman, dnovillo Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D22118 llvm-svn: 275073
* Tune the weight propagation algorithm for sample profile.Dehao Chen2016-07-112-16/+30
| | | | | | | | | | | | Summary: Handle the case when there is only one incoming/outgoing edge for a visited basic block: use the block weight to adjust edge weight even when the edge has been visited before. This can help reduce inaccuracies introduced by incorrect basic block profile, as shown in the updated unittest. Reviewers: davidxl, dnovillo Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D22180 llvm-svn: 275072
* [tsan] Add support for GCD IO channels on DarwinKuba Brecka2016-07-117-9/+574
| | | | | | | | This patch adds interceptors for dispatch_io_*, dispatch_read and dispatch_write functions. This avoids false positives when using GCD IO. Adding several test cases. Differential Revision: http://reviews.llvm.org/D21889 llvm-svn: 275071
* [x86] make some of the tests 256-bit for testing diversitySanjay Patel2016-07-111-54/+106
| | | | llvm-svn: 275070
* Add missing include from previous commitNirav Dave2016-07-111-0/+1
| | | | llvm-svn: 275069
* Fix branch relaxation in 16-bit mode.Nirav Dave2016-07-1117-48/+115
| | | | | | | | | | | | | | | Thread through MCSubtargetInfo to relaxInstruction function allowing relaxation to generate jumps with 16-bit sized immediates in 16-bit mode. This fixes PR22097. Reviewers: dwmw2, tstellarAMD, craig.topper, jyknight Subscribers: jfb, arsenm, jyknight, llvm-commits, dsanders Differential Revision: http://reviews.llvm.org/D20830 llvm-svn: 275068
* [x86] specify triple to avoid bot failuresSanjay Patel2016-07-111-6/+6
| | | | llvm-svn: 275067
* [Sink] Don't move calls to readonly functions across storesNicolai Haehnle2016-07-112-2/+118
| | | | | | | | | | | | Summary: Reviewers: hfinkel, majnemer, tstellarAMD, sunfish Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D17279 llvm-svn: 275066
* AliasAnalysis: unify getModRefInfo(I, CS) semantics with other overloadsNicolai Haehnle2016-07-111-1/+1
| | | | | | | | | | | | | | | | | | | This subtle change to getModRefInfo(Instruction, ImmutableCallSite) is to ensure that the semantics are equal to that of getModRefInfo(CS1, CS2) when the Instruction is a call-site. This is now more in line with getModRefInfo generally: it returns Mod when I modifies a memory location that is accessed (read or written) by CS and Ref when I reads a memory location that is written by CS. From a grep of the code, the only uses of this particular getModRefInfo overload are in MemorySSA and MemCpyOptimizer, and they only care about where the result is MR_NoModRef or not. Therefore, this change should have no visible effect. Separated out from D17279 upon request. llvm-svn: 275065
* [x86] update checksSanjay Patel2016-07-111-15/+30
| | | | llvm-svn: 275064
* Changes related to tooling::applyAllReplacements interface change in D21601.Eric Liu2016-07-115-27/+56
| | | | | | | | | | | | | | | Summary: this patch contains changes related to the interface change from http://reviews.llvm.org/D21601. Only submit this patch after D21601 is submitted. Reviewers: djasper, klimek Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D21602 llvm-svn: 275063
* Make tooling::applyAllReplacements return llvm::Expected<string> instead of ↵Eric Liu2016-07-1116-102/+131
| | | | | | | | | | | | | | | | empty string to indicate potential error. Summary: return llvm::Expected<> to carry error status and error information. This is the first step towards introducing "Error" into tooling::Replacements. Reviewers: djasper, klimek Subscribers: ioeric, klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D21601 llvm-svn: 275062
* [OpenCL] Improved diagnostics of OpenCL types.Anastasia Stulova2016-07-118-54/+95
| | | | | | | | | | | | | | - Changes diagnostics for Blocks to be implicitly const qualified OpenCL v2.0 s6.12.5. - Added and unified diagnostics of some OpenCL special types: blocks, images, samplers, pipes. These types are intended for use with the OpenCL builtin functions only and, therefore, most regular uses are not allowed including assignments, arithmetic operations, pointer dereferencing, etc. Review: http://reviews.llvm.org/D21989 llvm-svn: 275061
* Change the /proc/<pid>/maps to not assert on incorrect inputTamas Berghammer2016-07-111-12/+9
| | | | | | | | | | If LLDB reads some incorrect input form /proc/<pid>/maps then it should report an error instead of assert-ing as we don't want to crash in case of an incorrect maps file. Differential revision: http://reviews.llvm.org/D22211 llvm-svn: 275060
* [X86][SSE] Generalise target shuffle combine of shuffles using variable masksSimon Pilgrim2016-07-111-13/+21
| | | | | | At present the only shuffle with a variable mask we recognise is PSHUFB, which influences if its worth the cost of mask creation/loading of a combined target shuffle with a variable mask. This change sets up the infrastructure to support other shuffles in the future but has no effect yet. llvm-svn: 275059
* Provide support for preserving assembly commentsNirav Dave2016-07-1113-4/+201
| | | | | | | | | | | | | | | | | Preserve assembly comments from input in output assembly and flags to toggle property. This is on by default for inline assembly and off in llvm-mc. Parsed comments are emitted immediately before an EOL which generally places them on the expected line. Reviewers: rtrieu, dwmw2, rnk, majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D20020 llvm-svn: 275058
* Fix gcc compile failureTobias Grosser2016-07-113-4/+4
| | | | | | | | | Commit r275056 introduced a gcc compile failure due to us using two types named 'Type', the first being the newly introduced member variable 'Type' the second being llvm::Type. We resolve this issue by renaming the newly introduced member variable to AccessType. llvm-svn: 275057
* InvariantEquivClassTy: Use struct instead of 4-tuple to increase readabilityTobias Grosser2016-07-113-29/+43
| | | | | | | | | | | | | | Summary: With a struct we can use named accessors instead of generic std::get<3>() calls. This increases readability of the source code. Reviewers: jdoerfert Subscribers: pollydev, llvm-commits Differential Revision: http://reviews.llvm.org/D21955 llvm-svn: 275056
* Add test case forgotten in r275053Tobias Grosser2016-07-111-0/+59
| | | | llvm-svn: 275055
* [AMDGPU][llvm-mc] Quickfix for r272748 to enable labels in branch instructions.Artem Tamazov2016-07-112-0/+19
| | | | | | | | | | Fixes issue mentioned at: https://github.com/RadeonOpenCompute/LLVM-AMDGPU-Assembler-Extra/issues/13. Lit tests added. Differential Revision: http://reviews.llvm.org/D22133 llvm-svn: 275054
* load hoisting: compute memory access invalid context only for domainTobias Grosser2016-07-111-1/+3
| | | | | | | | | | | | | | | We now compute the invalid context of memory accesses only for the domain under which the memory access is executed. Without limiting ourselves to this restricted domain, invalid accesses outside of the domain of actually executed statement instances may result in the execution domain of the statement to become empty despite the fact that the statement will actually be executed. As a result, such scops would use unitialized values for their computations which results in incorrect computations. This fixes http://llvm.org/PR27944 and unbreaks the -polly-position=before-vectorizer buildbots. llvm-svn: 275053
* http://reviews.llvm.org/D22134: Implementation of OpenMP 4.5 nonmonotonic ↵Andrey Churbanov2016-07-113-79/+176
| | | | | | schedule modifier llvm-svn: 275052
* [clang-tidy] Pass absolute path to OptionsProvider::getOptions/getRawOptions.Haojian Wu2016-07-113-11/+13
| | | | | | | | | | | | | | | Summary: Although there is no guarantee of getOptions/getRawOptions receiving an absolute path, we try to make it if possible. So FileOptionProvider subclasses don't have to convert the path to an absolute path. Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D22154 llvm-svn: 275051
* [mips][microMIPS] Implement LDC1, SDC1, LDC2, SDC2, LWC1, SWC1, LWC2 and ↵Zlatko Buljan2016-07-1140-81/+816
| | | | | | | | SWC2 instructions and add CodeGen support Differential Revision: http://reviews.llvm.org/D18824 llvm-svn: 275050
* [AVX512] Replace masked AND/OR/XOR intrinsics with native code and remove ↵Craig Topper2016-07-115-328/+244
| | | | | | the builtins. llvm-svn: 275049
* AVX-512: DAG lowering for scalar MIN/MAX commutable opsElena Demikhovsky2016-07-112-3/+72
| | | | | | | | DAG lowering was missing for the scalar FMINC, FMAXC nodes. The nodes are generated only in the "unsafe-fp-math" mode. Added tests. llvm-svn: 275048
* [Sema] Disallow __make_integer_seq from showing up in __make_integer_seqDavid Majnemer2016-07-112-4/+10
| | | | | | | | | We hit over stringent asserts when trying to diagnose. Loosen them as appropriate. This fixes PR28494. llvm-svn: 275047
* [AVX512] Add support for 512-bit ANDN now that all ones build vectors ↵Craig Topper2016-07-112-1/+68
| | | | | | survive long enough to allow the matching. llvm-svn: 275046
* [AVX512] Use vpternlog with an immediate of 0xff to create 512-bit all one ↵Craig Topper2016-07-1115-137/+193
| | | | | | vectors. llvm-svn: 275045
* [X86] Add the AVX512 SET0 pseudos to foldMemoryOperandImpl since they are ↵Craig Topper2016-07-112-3/+14
| | | | | | | | marked for CanFoldAsLoad. I don't really know how to test this. llvm-svn: 275044
* Revert r275029 - Update Clang tests after adding inference for the returned ↵Hal Finkel2016-07-113-4/+4
| | | | | | | | argument attribute The associated backend change is causing miscompiles from the AArch64 backend. llvm-svn: 275043
* Revert r275027 - Let FuncAttrs infer the 'returned' argument attributeHal Finkel2016-07-114-56/+6
| | | | | | Reverting r275027 and r275033. These seem to cause miscompiles on the AArch64 buildbot. llvm-svn: 275042
* Allow BasicBlockEdge to be used in DenseMapDaniel Berlin2016-07-111-0/+21
| | | | | | | | | | Summary: Add a DenseMapInfo specialization for BasicBlockEdge Reviewers: hfinkel, chandlerc, majnemer Differential Revision: http://reviews.llvm.org/D22207 llvm-svn: 275041
* [CodeGen] Treat imported static local variables as declarationsDavid Majnemer2016-07-113-6/+6
| | | | | | | Imported variables cannot really be definitions for the purposes of IR generation. llvm-svn: 275040
* Pointer-comparison folding should look through returned-argument functionsHal Finkel2016-07-112-0/+35
| | | | | | | | | For functions which are known to return a specific argument, pointer-comparison folding can look through the function calls as part of its analysis. Differential Revision: http://reviews.llvm.org/D9387 llvm-svn: 275039
* Teach isDereferenceablePointer to look through returned-argument functionsHal Finkel2016-07-112-1/+9
| | | | | | | | | For functions which are known to return their argument, isDereferenceableAndAlignedPointer can examine the argument value. Differential Revision: http://reviews.llvm.org/D9384 llvm-svn: 275038
* Teach SCEV to look through returned-argument functionsHal Finkel2016-07-112-0/+23
| | | | | | | | | When building SCEVs, if a function is known to return its argument, then we can build the SCEV using the corresponding argument value. Differential Revision: http://reviews.llvm.org/D9381 llvm-svn: 275037
* Teach computeKnownBits to look through returned-argument functionsHal Finkel2016-07-112-3/+21
| | | | | | | | | If a function is known to return one of its arguments, we can use that in order to compute known bits of the return value. Differential Revision: http://reviews.llvm.org/D9397 llvm-svn: 275036
* BasicAA should look through functions with returned argumentsHal Finkel2016-07-114-2/+77
| | | | | | | | | | | Motivated by the work on the llvm.noalias intrinsic, teach BasicAA to look through returned-argument functions when answering queries. This is essential so that we don't loose all other AA information when supplementing with llvm.noalias. Differential Revision: http://reviews.llvm.org/D9383 llvm-svn: 275035
OpenPOWER on IntegriCloud