summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* LEA code size optimization pass (Part 2): Remove redundant LEA instructions.Andrey Turetskiy2016-01-133-3/+198
| | | | | | | | | | Make x86 OptimizeLEAs pass remove LEA instruction if there is another LEA (in the same basic block) which calculates address differing only be a displacement. Works only for -Oz. Differential Revision: http://reviews.llvm.org/D13295 llvm-svn: 257589
* [ELF/AArch64] - Implemented R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 and ↵George Rimar2016-01-132-3/+77
| | | | | | | | | | | R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC relocations * R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 is calculated as Page(G(GTPREL(S+A))) – Page(P), set an ADRP immediate field to bits [32:12] of X; check –2^32 ≤ X < 2^32; * R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC is calculated as G(GTPREL(S+A)), set an LD offset field to bits [11:3] of X. No overflow check; check that X&7 = 0. Differential revision: http://reviews.llvm.org/D16117 llvm-svn: 257588
* [LLDB][MIPS] Fix TestDisassembleRawData.pySagar Thakur2016-01-131-7/+17
| | | | | | | | | | | Patch by Nitesh Jain. Summary: This patch adds check for the correctness of disassembling instruction for MIPS target. Reviewers: emaste, clayborg, ovyalov Subscribers: lldb-commits, mohit.bhakkad, sagar, bhushan, jaydeep Differential: http://reviews.llvm.org/D15915 llvm-svn: 257587
* [OPENMP] Fix for declarative/standalone directives use.Alexey Bataev2016-01-1311-48/+114
| | | | | | Fixes processing of declarative directives and standalone executable directives. Declarative directives should not be allowed as an immediate statements and standalone executable directives are allowed to be used in case-stmt constructs. llvm-svn: 257586
* tsan: check errors in testDmitry Vyukov2016-01-131-13/+28
| | | | | | | Somebody reported flakiness of this test. Let's start by checking errors. llvm-svn: 257585
* Add test cases that will show the bug that was fixed in r256725.Craig Topper2016-01-131-0/+24
| | | | llvm-svn: 257584
* [TableGen] Cleanup output formatting and add llvm_unreachables to the output ↵Craig Topper2016-01-131-5/+6
| | | | | | the AsmMatcher uses when it overflows the 64-bit tables. No in tree targets use this code, but I tested it with an temporarily reduced table width. llvm-svn: 257583
* [TableGen] Replace some hardcoded assumptions that the OpcodeInfo table is ↵Craig Topper2016-01-131-8/+10
| | | | | | 64-bits for cleanliness. NFC llvm-svn: 257582
* [TableGen] Use std::remove_if instead of an n^2 loop. NFCCraig Topper2016-01-131-8/+5
| | | | llvm-svn: 257581
* [TableGen] Fix up some stale comments in the AsmMatcher. NFCCraig Topper2016-01-131-4/+2
| | | | llvm-svn: 257580
* [TableGen] Move calls to getValueAsInt out of a loop since they aren't ↵Craig Topper2016-01-131-2/+3
| | | | | | simple functions. NFC llvm-svn: 257579
* Remove extra whitespace. NFC.Junmo Park2016-01-131-10/+10
| | | | llvm-svn: 257578
* [ORC] Add extra debugging output to OrcRemoteTargetServer.Lang Hames2016-01-131-0/+4
| | | | llvm-svn: 257577
* [ORC] Fix typo in debugging output.Lang Hames2016-01-131-1/+1
| | | | llvm-svn: 257576
* [Inliner] Merge the attributes of the caller and callee functionsAkira Hatanaka2016-01-132-0/+89
| | | | | | | | | | | | | | | | | | | | | | | | This patch turns off the fast-math optimization attribute on the caller if the callee's fast-math attribute is not turned on. For example, - before inlining caller: "less-precise-fpmad"="true" callee: "less-precise-fpmad"="false" - after inlining caller: "less-precise-fpmad"="false" Alternatively, it's possible to block inlining if the caller's and callee's attributes don't match. If this approach is preferable to the one in this patch, we can discuss post-commit. rdar://problem/19836465 Differential Revision: http://reviews.llvm.org/D7802 llvm-svn: 257575
* Fix PointerIntPair so that it can use an enum class as its integer template ↵Michael Gottesman2016-01-132-3/+35
| | | | | | | | | | | | | | | | | | | | argument. Summary: The problem here is that an enum class can not be implicitly converted to an integer. That assumption snuck back into PointerIntPair. This commit fixes the issue and more importantly adds some unittests to make sure that we do not break this again. rdar://23594806 Reviewers: gribozavr Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16131 llvm-svn: 257574
* Doc fix: code-quote load / store doc the same wayJF Bastien2016-01-131-1/+1
| | | | llvm-svn: 257573
* [SPARC] Revamp AnalyzeBranch and add ReverseBranchCondition.James Y Knight2016-01-134-90/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AnalyzeBranch on X86 (and, previously, SPARC, which implementation was copied from X86) tries to modify the branches based on block layout (e.g. checking isLayoutSuccessor), when AllowModify is true. The rest of the architectures leave that up to the caller, which can call InsertBranch, RemoveBranch, and ReverseBranchCondition as appropriate. That appears to be the preferred way to do it nowadays. This commit makes SPARC like the rest: replaces AnalyzeBranch with an implementation cribbed from AArch64, and adds a ReverseBranchCondition implementation. Additionally, a test-case has been added (also cribbed from AArch64) demonstrating that redundant branch sequences no longer get emitted. E.g., it used to emit code like this: bne .LBB1_2 nop ba .LBB1_1 nop .LBB1_2: And now emits: cmp %i0, 42 be .LBB1_1 nop llvm-svn: 257572
* [Coverage] Refactor coverage mapping reader code Xinliang David Li2016-01-132-36/+72
| | | | | | | | | | | | | | (Resubmit after fixing a typo that breaks test on big endian machines) In this refactoring, member functions are introduced to access CovMap header/func record members and hide layout details. This will enable further code restructuring to support reading multiple versions of coverage mapping data with shared/templatized code. (When coveremap format version changes, backward compatibtility should be preserved). llvm-svn: 257571
* [llvm-readobj] Remove dead code. Add an assertion instead.Davide Italiano2016-01-131-2/+3
| | | | | | | | | | When we arrive at the end of the function, the validation of the object has been done already. In theory, so, we should never arrive here with something broken as the object isn't mutated. Practice sometimes proves theory to be wrong, so leave an assertion instead, as suggested by David Blaikie, to catch bugs. llvm-svn: 257570
* Add a small refinement to the qSymbol:: support in lldb.Jason Molenda2016-01-132-1/+48
| | | | | | | | | | | | | | | This is a packet which allows the remote gdb stub to ask for the address of a symbol in the process. lldb sends the packet (offering to provide addresses for symbol names) after every solib loaded. I changed lldb so that once the stub has indicated that it doesn't need any more symbol addresses, lldb will stop sending the qSymbol:: packet on new solib loads. This can yield a performance benefit over slower communication links when there are many solibs involved. <rdar://problem/23310049> llvm-svn: 257569
* Rollback r257551 -- unexpected test failures TBIXinliang David Li2016-01-132-72/+36
| | | | llvm-svn: 257564
* Re-Revert r257105 (Verifier debug info changes)Keno Fischer2016-01-1338-277/+207
| | | | | | | While I investigate some new buildbot failures. This was originally reapplied as r257550 and r257558. llvm-svn: 257563
* Install scan-build and scan-view only if Static Analyzer was enabled.Eugene Zelenko2016-01-131-2/+2
| | | | llvm-svn: 257562
* [llvm-objdump] Use report_error() and improve error coverage.Davide Italiano2016-01-134-5/+5
| | | | llvm-svn: 257561
* [libFuzzer] make sure to update CurrentUnit when drillingKostya Serebryany2016-01-131-1/+4
| | | | llvm-svn: 257560
* [Bugfix] Fix ICE on constexpr vector splat.George Burgess IV2016-01-1320-58/+193
| | | | | | | | | | | | | In {CG,}ExprConstant.cpp, we weren't treating vector splats properly. This patch makes us treat splats more properly. Additionally, this patch adds a new cast kind which allows a bool->int cast to result in -1 or 0, instead of 1 or 0 (for true and false, respectively), so we can sanely model OpenCL bool->int casts in the AST. Differential Revision: http://reviews.llvm.org/D14877 llvm-svn: 257559
* Use utostr rather than std::to_stringKeno Fischer2016-01-131-2/+2
| | | | | | | Looks like std::to_string is not available for Android. Hopefully this fixes the bot. llvm-svn: 257558
* [CUDA] Rename check-prefixes in cuda-options.cu and cuda-unused-arg-warning.cu.Justin Lebar2016-01-132-157/+122
| | | | | | | | | | | | | | | | Summary: Rename the args to be more human-readable. Among other things, this lets us get rid of a bunch of comments (e.g. "ensure we don't run the linker"), greatly shortening these tests. Also apply consistent formatting and fix some English nits while we're at it. Reviewers: tra Differential Revision: http://reviews.llvm.org/D15975 llvm-svn: 257557
* Generalize r256026 to apply to all MachO targets, not just Darwin targets.Bob Wilson2016-01-132-2/+5
| | | | | | | | The PIC default is set for the MachO toolchain, not just the Darwin toolchain, so this treats those the same. The behavior with -static should be the same for all MachO targets. rdar://24152327 llvm-svn: 257556
* AsmPrinter: Fix wrong OS X versions being emitted for darwin triplesMatthias Braun2016-01-133-15/+25
| | | | | | | | | | | | The version numbers of the darwin kernel are different from the version numbers of OS X, so we need adjustments if we had "*-*-darwin" triples. Use the existing utility functions in TargetTriple for this. Fixes rdar://22056966 Differential Revision: http://reviews.llvm.org/D14601 llvm-svn: 257555
* [CUDA] Report an error if code tries to mix incompatible CUDA attributes.Justin Lebar2016-01-134-14/+90
| | | | | | | | | | | | Summary: Thanks to jhen for helping me figure this out. Reviewers: tra, echristo Subscribers: jhen Differential Revision: http://reviews.llvm.org/D16129 llvm-svn: 257554
* [CodeView] Mark our lines as statements, not expressionsDavid Majnemer2016-01-136-84/+99
| | | | | | | | | The line tables for CodeView make a distinction between expressions and statements. As it turns out, MSVC always emits them as statements and we always emit them as expressions. Let's switch to statements to match the CodeView that they emit. llvm-svn: 257553
* [CodeView] Improve the line table dumperDavid Majnemer2016-01-137-213/+547
| | | | | | | | This change has us print out fields we didn't previously understand. To improve readability, we now group column information with it's respective line. llvm-svn: 257552
* [Coverage] Refactor coverage mapping reader code /NFCXinliang David Li2016-01-132-36/+72
| | | | | | | | | | | | | (Resubmit after fixing build bot failures) In this refactoring, member functions are introduced to access CovMap header/func record members and hide layout details. This will enable further code restructuring to support reading multiple versions of coverage mapping data with shared/templatized code. (When coveremap format version changes, backward compatibtility should be preserved). llvm-svn: 257551
* Reapply r257105 "[Verifier] Check that debug values have proper size"Keno Fischer2016-01-1338-207/+277
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The follow extra changes were made to test cases: Manually making the variable be the actual type instead of a pointer to avoid pointer-size differences in generic code: LLVM :: DebugInfo/Generic/2010-03-24-MemberFn.ll LLVM :: DebugInfo/Generic/2010-04-06-NestedFnDbgInfo.ll LLVM :: DebugInfo/Generic/2010-05-03-DisableFramePtr.ll LLVM :: DebugInfo/Generic/varargs.ll Delete sizing information from debug info for the same reason (but the presence of the pointer was important to the test case): LLVM :: DebugInfo/Generic/restrict.ll LLVM :: DebugInfo/Generic/tu-composite.ll LLVM :: Linker/type-unique-type-array-a.ll LLVM :: Linker/type-unique-simple2.ll Fixing an incorrect DW_OP_deref LLVM :: DebugInfo/Generic/2010-05-03-OriginDIE.ll Fixing a missing DW_OP_deref LLVM :: DebugInfo/Generic/incorrect-variable-debugloc.ll Additionally, clang should no longer complain during bootstrap should no longer happen after r257534. The original commit message was: ``` Summary: Teach the Verifier to make sure that the storage size given to llvm.dbg.declare or the value size given to llvm.dbg.value agree with what is declared in DebugInfo. This is implicitly assumed in a number of passes (e.g. in SROA). Additionally this catches a number of common mistakes, such as passing a pointer when a value was intended or vice versa. One complication comes from stack coloring which modifies the original IR when it merges allocas in order to make sure that if AA falls back to the IR it gets the correct result. However, given this new invariant, indiscriminately replacing one alloca by a different (differently sized one) is no longer valid. Fix this by just undefing out any use of the alloca in a dbg.declare in this case. Additionally, I had to fix a number of test cases. Of particular note: - I regenerated dbg-changes-codegen-branch-folding.ll from the given source as it was affected by the bug fixed in r256077 - two-cus-from-same-file.ll was changed to avoid having a variable-typed debug variable as that would depend on the target, even though this test is supposed to be generic - I had to manually declared size/align for reference type. See also the discussion for D14275/r253186. - fpstack-debuginstr-kill.ll required changing `double` to `long double` - most others were just a question of adding OP_deref ``` llvm-svn: 257550
* Rollback r257547 -- buildbot failure TBIXinliang David Li2016-01-132-53/+20
| | | | llvm-svn: 257549
* For llvm-objdump, add the option -private-header (without the trailing ’s’)Kevin Enderby2016-01-134-11/+52
| | | | | | | | | | | | | | | to only print the first private header. Which for Mach-O files only prints the Mach header and not the subsequent load commands. Which is used by scripts to match what the darwin otool(1) with the -h flag does without the -l flag. For non-Mach-O files it has the same functionality as -private-headers (with the trailing ’s’). rdar://24158331 llvm-svn: 257548
* [Coverage] Refactor coverage mapping reader code /NFCXinliang David Li2016-01-132-20/+53
| | | | | | | | | | | In this refactoring, member functions are introduced to access CovMap header/func record members and hide layout details. This will enable further code restructuring to support reading multiple versions of coverage mapping data with shared/templatized code. (When coveremap format version changes, backward compatibtility should be preserved). llvm-svn: 257547
* Guard fabs to bfc convert with V6T2 flagAna Pazos2016-01-132-2/+16
| | | | | | | | | | | | | | Summary: BFC instructions are available in ARMv6T2 and above. Reviewers: t.p.northover Subscribers: aemerson Differential Revision: http://reviews.llvm.org/D16076 llvm-svn: 257546
* [ARM] Mark VMOV with immediate: isAsCheapAsMove.Quentin Colombet2016-01-132-39/+26
| | | | | | | | | | VMOVs are not strictly speaking cheap, but they are as expensive as a vector copy (VORR), so we should prefer rematerialization over splitting when it applies. rdar://problem/23754176 llvm-svn: 257545
* [CMake] Adding experimental support for tvOS and watchOSChris Bieneman2016-01-121-53/+87
| | | | | | | | | | | | | | Summary: * Refactored the iOS config-ix.cmake code to be a more compact loop over supported embedded platforms. * Added watchOS and tvOS as experimental platforms, they don't currently build so they are disabled by default Reviewers: zaks.anna, kubabrecka, samsonov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16119 llvm-svn: 257544
* [Darwin] Fix deployment target detectionFrederic Riss2016-01-122-1/+2
| | | | | | | | | There was a thinko in the deployment target detection code that made the -isysroot parsing have precedence over the environment variable for tvOS. This patch makes this logic symetric for all platforms (the env variable must have precedence). llvm-svn: 257543
* CannotBeOrderedLessThanZero: add some missing casesFiona Glaser2016-01-122-0/+53
| | | | llvm-svn: 257542
* Follow-up to r257537: add test that majnemer asked aboutHans Wennborg2016-01-121-1/+2
| | | | llvm-svn: 257541
* COFF: Update test for recent llvm-objdump change (r257539).Rui Ueyama2016-01-121-1/+1
| | | | | | | This test now correctly checks if the specified forwarding-to symbol exists in the export table. llvm-svn: 257540
* COFF: Teach llvm-objdump how to dump DLL forwarder symbols.Rui Ueyama2016-01-123-1/+45
| | | | llvm-svn: 257539
* clang-cl: Support /Dfoo#bar (PR25984)Hans Wennborg2016-01-122-74/+105
| | | | | | Such flags will now be translated to -Dfoo=bar. llvm-svn: 257537
* [WebAssembly] Fix disassembler shared-libs buildDerek Schuff2016-01-121-1/+2
| | | | llvm-svn: 257536
* RegisterPressure: Expose RegisterOperands APIMatthias Braun2016-01-123-67/+102
| | | | | | | | | | | | | | | | | | | | | | Previously the RegisterOperands have only been used internally in RegisterPressure.cpp. However this datastructure can be useful for other tasks as well and allows refactoring of PDiff initialisation out of RPTracker::recede(). This patch: - Exposes RegisterOperands as public API - Splits RPTracker::recede() into a part that skips DebugValues and maintains the region borders, and the core that changes register pressure when given a set of RegisterOperands. - This allows to move the PDiff initialisation out recede() into a method of the PressureDiffs class. - The upcoming subregister scheduling code will also use RegisterOperands to avoid pushing more unrelated functionality into recede()/advance(). Differential Revision: http://reviews.llvm.org/D15473 llvm-svn: 257535
OpenPOWER on IntegriCloud