summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [LTO] llvm-lto2: Add option to load sample profileTobias Edler von Koch2017-07-283-0/+45
| | | | | | | | | | | | | | Summary: This exposes LTO's Conf.SampleProfile as a command line option (-lto-sample-profile-file) for testing via the llvm-lto2 utility. Reviewers: pcc, danielcdh Subscribers: mehdi_amini, inglorion, llvm-commits Differential Revision: https://reviews.llvm.org/D36030 llvm-svn: 309456
* Remove the unused offset field from LiveDebugValues (NFC)Adrian Prantl2017-07-281-16/+3
| | | | | | | Followup to r309426. rdar://problem/33580047 llvm-svn: 309455
* [Simplify] Do not remove dependencies of phis within region stmts.Michael Kruse2017-07-282-1/+52
| | | | | | | These were wrongly assumed to be phi nodes that require MemoryKind::PHI accesses. llvm-svn: 309454
* [VirtualInstruction] Do not iterate over a region statement's instruction ↵Michael Kruse2017-07-281-0/+1
| | | | | | | | | list. NFC. It should be empty anyways. In this case it would even be redundant because we just all all instructions in region statements. llvm-svn: 309453
* Remove the unused offset field from LiveDebugVariables (NFC)Adrian Prantl2017-07-281-17/+14
| | | | | | | Followup to r309426. rdar://problem/33580047 llvm-svn: 309451
* Remove the unused offset from DBG_VALUE (NFC)Adrian Prantl2017-07-288-29/+29
| | | | | | | Followup to r309426. rdar://problem/33580047 llvm-svn: 309450
* Remove the unused DBG_VALUE offset parameter from GlobalISel (NFC)Adrian Prantl2017-07-283-13/+12
| | | | | | | Followup to r309426. rdar://problem/33580047 llvm-svn: 309449
* Update the Go bindings for r309426 (remove offset from llvm.dbg.value)Adrian Prantl2017-07-283-6/+5
| | | | llvm-svn: 309448
* Added tests for i8 interleaved-load-pattern of stride=4, VF=(8, 16, 32).Farhana Aleen2017-07-281-0/+495
| | | | llvm-svn: 309447
* Remove the unused DBG_VALUE offset parameter from RegAllocFast (NFC)Adrian Prantl2017-07-281-2/+4
| | | | | | | Followup to r309426. rdar://problem/33580047 llvm-svn: 309446
* Add documentation for the attribute "no-jump-tables"Sumanth Gundapaneni2017-07-281-0/+3
| | | | llvm-svn: 309445
* [SimplifyCFG] Make the no-jump-tables attribute also disable switch lookup ↵Sumanth Gundapaneni2017-07-283-3/+86
| | | | | | | | tables Differential Revision: https://reviews.llvm.org/D35579 llvm-svn: 309444
* [libFuzzer] improve support for inline-8bit-counters (make it more correct ↵Kostya Serebryany2017-07-283-3/+21
| | | | | | and faster) llvm-svn: 309443
* [Hexagon] Formatting changes, NFCKrzysztof Parzyszek2017-07-281-66/+49
| | | | llvm-svn: 309442
* [Inliner] Do not apply any bonus for cold callsites.Easwaran Raman2017-07-284-28/+181
| | | | | | | | | | | | | | | | | | | | | | Summary: Inlining threshold is increased by application of bonuses when the callee has a single reachable basic block or is rich in vector instructions. Similarly, inlining cost is reduced by applying a large bonus when the last call to a static function is considered for inlining. This patch disables the application of these bonuses when the callsite or the callee is cold. The intention here is to prevent a large cold callsite from being inlined to a non-cold caller that could prevent the caller from being inlined. This is especially important when the cold callsite is a last call to a static since the associated bonus is very high. Reviewers: chandlerc, davidxl Subscribers: danielcdh, llvm-commits Differential Revision: https://reviews.llvm.org/D35823 llvm-svn: 309441
* Try to fix asan test on sanitizer-windowsReid Kleckner2017-07-281-0/+4
| | | | llvm-svn: 309440
* Remove the unused dbg.value offset from SelectionDAG (NFC)Adrian Prantl2017-07-286-68/+46
| | | | | | | Followup to r309426. rdar://problem/33580047 llvm-svn: 309436
* [lit] Use a %{python} substitution to avoid relying on python being on PATHReid Kleckner2017-07-285-9/+7
| | | | llvm-svn: 309434
* Remove offset parameter from llvm.dbg.value intrinsics in testcaseAdrian Prantl2017-07-281-5/+5
| | | | llvm-svn: 309433
* [lit] Remove stale test inputs before running check-litReid Kleckner2017-07-281-0/+1
| | | | | | | | This should fix googletest-format test failures on the clang modules buildbots, which have a stale copy of the OneTest script in the build directory. llvm-svn: 309432
* Reword sentence in LangRefAdrian Prantl2017-07-281-2/+2
| | | | llvm-svn: 309431
* [compiler-rt] Add missing quotation marks to msan_compile invocationKrzysztof Parzyszek2017-07-281-1/+1
| | | | llvm-svn: 309430
* [CMake] Add SharingPtr.h to the Framework header listChris Bieneman2017-07-281-1/+1
| | | | | | lldb-forward.h which is a public header uses SharingPtr, so we need to include that header as well. llvm-svn: 309429
* [CMake] debugserver-nonui doesn't go in the frameworkChris Bieneman2017-07-281-1/+1
| | | | | | Small change to correct the install path of the nonui debugserver. llvm-svn: 309428
* Adopt to LLVM API change (llvm.dbg.value no longer has an offset)Adrian Prantl2017-07-282-2/+2
| | | | llvm-svn: 309427
* Remove the obsolete offset parameter from @llvm.dbg.valueAdrian Prantl2017-07-28173-680/+713
| | | | | | | | | | | | There is no situation where this rarely-used argument cannot be substituted with a DIExpression and removing it allows us to simplify the DWARF backend. Note that this patch does not yet remove any of the newly dead code. rdar://problem/33580047 Differential Revision: https://reviews.llvm.org/D35951 llvm-svn: 309426
* [SLP] Allow vectorization of the instruction from the same basic blocks ↵Alexey Bataev2017-07-281-3/+8
| | | | | | | | | | | | | | | | only, NFC. Summary: After some changes in SLP vectorizer we missed some additional checks to limit the instructions for vectorization. We should not perform analysis of the instructions if the parent of instruction is not the same as the parent of the first instruction in the tree or it was analyzed already. Subscribers: mzolotukhin Differential Revision: https://reviews.llvm.org/D34881 llvm-svn: 309425
* Add end-to-end tests for overflows of byval arguments.Matt Morehouse2017-07-283-0/+97
| | | | | | | | | | | | | | | | | Summary: Included is one test for passing structs by value and one test for passing C++ objects by value. Reviewers: eugenis, vitalybuka Reviewed By: eugenis Subscribers: srhines, kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D34827 llvm-svn: 309424
* Add clear_cache implementation for ppc64. Fix buffer to meet ppc64 alignment.Sterling Augustine2017-07-282-2/+16
| | | | llvm-svn: 309423
* Fix conditional tail call branch folding when both edges are the sameReid Kleckner2017-07-282-2/+142
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The conditional tail call logic did the wrong thing when both destinations of a conditional branch were the same: BB#1: derived from LLVM BB %entry Live Ins: %EFLAGS Predecessors according to CFG: BB#0 JE_1 <BB#5>, %EFLAGS<imp-use,kill> JMP_1 <BB#5> BB#5: derived from LLVM BB %sw.epilog Predecessors according to CFG: BB#1 TCRETURNdi64 <ga:@mergeable_conditional_tailcall>, 0, ... We would fold the JE_1 to a TCRETURNdi64cc, and then remove our BB#5 successor. Then BB#5 would be deleted as it had no predecessors, leaving a dangling "JMP_1 <BB#5>" reference behind to cause assertions later. This patch checks that both conditional branch destinations are different before doing the transform. The standard branch folding logic is able to remove both the JMP_1 and the JE_1, and for my test case we end up forming a better conditional tail call later. Fixes PR33980 llvm-svn: 309422
* [VirtualInstruction] Remove assertion. NFC.Michael Kruse2017-07-281-2/+0
| | | | | | | | | | | | ScopStmt::contains is currently implemented on the basis of BasicBlock and does not take the instruction list into account. Therefore any instruction copied by -polly-optree into another statement currently triggers that assertion. Remove that assertion for now. We might re-enable it when the implementation of ScopStmt::contains changes. llvm-svn: 309421
* Revert r308677.Matt Morehouse2017-07-283-97/+0
| | | | | | Incorrect directories were created by the patch. llvm-svn: 309420
* AMDGPU: Look through a bitcast user of an out argumentMatt Arsenault2017-07-283-18/+378
| | | | | | | | | | | | | | This allows handling of a lot more of the interesting cases in Blender. Most of the large functions unlikely to be inlined have this pattern. This is a special case for what clang emits for OpenCL 3 element vectors. Annoyingly, these are emitted as <3 x elt>* pointers, but accessed as <4 x elt>* operations. This also needs to handle cases where a struct containing a single vector is used. llvm-svn: 309419
* Fix comments and build messages concerning TSXJonathan Peyton2017-07-283-7/+10
| | | | llvm-svn: 309418
* [Value Tracking] Refactor icmp comparison logic into helper. NFC.Chad Rosier2017-07-281-41/+62
| | | | llvm-svn: 309417
* AMDGPU: Add pass to replace out argumentsMatt Arsenault2017-07-286-0/+966
| | | | | | | | | | | | | | | | | | | | | | | It is better to return arguments directly in registers if we are making a call rather than introducing expensive stack usage. In one of sample compile from one of Blender's many kernel variants, this fires on about ~20 different functions. Future improvements may be to recognize simple cases where the pointer is indexing a small array. This also fails when the store to the out argument is in a separate block from the return, which happens in a few of the Blender functions. This should also probably be using MemorySSA which might help with that. I'm not sure this is correct as a FunctionPass, but MemoryDependenceAnalysis seems to not work with a ModulePass. I'm also not sure where it should run.I think it should run before DeadArgumentElimination, so maybe either EP_CGSCCOptimizerLate or EP_ScalarOptimizerLate. llvm-svn: 309416
* [LVI] Constant-propagate a zero extension of the switch condition value ↵Hiroshi Yamauchi2017-07-282-4/+222
| | | | | | | | | | | | | | | | | | | | | | | | | | | | through case edges Summary: LazyValueInfo currently computes the constant value of the switch condition through case edges, which allows the constant value to be propagated through the case edges. But we have seen a case where a zero-extended value of the switch condition is used past case edges for which the constant propagation doesn't occur. This patch adds a small logic to handle such a case in getEdgeValueLocal(). This is motivated by the Python 2.7 eval loop in PyEval_EvalFrameEx() where the lack of the constant propagation causes longer live ranges and more spill code than necessary. With this patch, we see that the code size of PyEval_EvalFrameEx() decreases by ~5.4% and a performance test improves by ~4.6%. Reviewers: wmi, dberlin, sanjoy Reviewed By: sanjoy Subscribers: davide, davidxl, llvm-commits Differential Revision: https://reviews.llvm.org/D34822 llvm-svn: 309415
* [CMake] Add Android toolchain CMake cache files.Leo Li2017-07-282-0/+95
| | | | | | | | | | | | | | Summary: Thoes files are used to build Android toolchain. D32816 makes it possible to build runtimes for targets. Reviewers: beanz, srhines Reviewed By: srhines Subscribers: pirama, jroelofs, srhines, cfe-commits, mgorny Differential Revision: https://reviews.llvm.org/D33561 llvm-svn: 309407
* [sanitizers test CMake] further refactor testing CMake for tsanGeorge Karpenkov2017-07-281-20/+19
| | | | | | | | | | | | TSan tests on Darwin first link all libraries into a static archive file. With this change, the linking is done once per all architecture, and previously the linking step was repeated per each architecture per each add_tsan_test call. Furthermore, the code is cleared up. Differential Revision: https://reviews.llvm.org/D35913 llvm-svn: 309406
* [sanitizer tests CMake] Factor out CMake logic for compiling sanitizer testsGeorge Karpenkov2017-07-285-73/+74
| | | | | | | | | | | Currently there's a large amount of CMake logic duplication for compiling sanitizer tests. If we add more sanitizers, the duplication will get even worse. This change factors out common compilation commands into a macro available to all sanitizers. llvm-svn: 309405
* GlobalISel: map 128-bit values to an FPR by default.Tim Northover2017-07-283-19/+23
| | | | | | | Eventually we may want to allow a pair of GPRs but absolutely nothing in the entire world is ready for that yet. llvm-svn: 309404
* [test] Fix typo in filename. NFC.Michael Kruse2017-07-281-0/+0
| | | | llvm-svn: 309403
* [Simplify] Fix typo in statistics output. NFC.Michael Kruse2017-07-282-2/+2
| | | | llvm-svn: 309402
* [Simplify] Remove empty partial accesses first. NFC.Michael Kruse2017-07-282-4/+4
| | | | | | So follow-up cleanup do not need special handling for such accesses. llvm-svn: 309401
* [lit] Dump some FileCheck inputs to try to debug some failing testsReid Kleckner2017-07-282-0/+6
| | | | llvm-svn: 309400
* [lit] Fix shtest-format external_shell failuresReid Kleckner2017-07-284-4/+8
| | | | | | | | | | When using win32 cmd.exe, turn off command echoing at the beginning of the script (@echo off). Replace a bash shell script with a python script for the fail_with_bad_encoding test. llvm-svn: 309399
* AMDGPU: Annotate implicitarg.ptr usageMatt Arsenault2017-07-288-17/+90
| | | | | | | | | | | We need to pass something to functions for this to work. It isn't derivable just from the kernarg segment pointer because the implicit arguments are placed after the kernel arguments. Also fixes missing test for the intrinsic. llvm-svn: 309398
* [GVN] Recommit the patch "Add phi-translate support in scalarpre"Wei Mi2017-07-285-34/+321
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recommit after workaround the bug PR31652. Three bugs fixed in previous recommits: The first one is to use CurrentBlock instead of PREInstr's Parent as param of performScalarPREInsertion because the Parent of a clone instruction may be uninitialized. The second one is stop PRE when CurrentBlock to its predecessor is a backedge and an operand of CurInst is defined inside of CurrentBlock. The same value defined inside of loop in last iteration can not be regarded as available. The third one is an out-of-bound array access in a flipped if guard. Right now scalarpre doesn't have phi-translate support, so it will miss some simple pre opportunities. Like the following testcase, current scalarpre cannot recognize the last "a * b" is fully redundent because a and b used by the last "a * b" expr are both defined by phis. long a[100], b[100], g1, g2, g3; __attribute__((pure)) long goo(); void foo(long a, long b, long c, long d) { g1 = a * b; if (__builtin_expect(g2 > 3, 0)) { a = c; b = d; g2 = a * b; } g3 = a * b; // fully redundant. } The patch adds phi-translate support in scalarpre. This is only a temporary solution before the newpre based on newgvn is available. Differential Revision: https://reviews.llvm.org/D32252 llvm-svn: 309397
* [CMake] libcompression is optional not required for debugserverChris Bieneman2017-07-281-2/+6
| | | | | | Fix a quick bug from r309395. llvm-svn: 309396
* [CMake] Add checks for libcompressionChris Bieneman2017-07-284-5/+27
| | | | | | This enables libcompression when available in the CMake build system. llvm-svn: 309395
OpenPOWER on IntegriCloud