summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86][SSE] Regenerated load vector + element extraction tests.Simon Pilgrim2016-02-011-22/+69
| | | | llvm-svn: 259416
* Use dyn_cast instead of static_cast.Pete Cooper2016-02-011-3/+3
| | | | | | | | | | | | | | Now that MachoFile has classof(), we can use dyn_cast instead which is actually the only safe way to handle this. Turns out this actually manifests as a bug as we were incorrectly casting instances which weren't MachoFile in to a MachoFile. Unfortunately, there's no reliable way of checking for this as it requires that the file we are looking for has a 0 at exactly the byte we need for the load of subsectionsViaSymbols. llvm-svn: 259413
* Move comments a bit closer to associated code. NFC.Chad Rosier2016-02-011-29/+25
| | | | llvm-svn: 259411
* [X86][SSE] Add AVX512 merge consecutive load testsSimon Pilgrim2016-02-013-57/+759
| | | | | | | | Add AVX512F/AVX512BW 512-bit tests. Add AVX512F tests to existing 128/256-bit tests. llvm-svn: 259410
* Code clean up; NFC.Aaron Ballman2016-02-011-4/+4
| | | | | | Patch by Alexander Riccio. llvm-svn: 259409
* [CMake] Use LLVM_MAIN_SRC_DIR instead of LLVM_SOURCE_DIR.Alexey Samsonov2016-02-013-4/+4
| | | | | | | The former will be properly initialized in standalone CMake build of compiler-rt. llvm-svn: 259407
* Regenerate vector blend tests.Simon Pilgrim2016-02-011-8/+9
| | | | llvm-svn: 259406
* Regenerate vector sext/zext constant folding tests.Simon Pilgrim2016-02-011-72/+81
| | | | llvm-svn: 259405
* ELF: Teach SymbolBody about how to get its addresses.Rui Ueyama2016-02-016-94/+114
| | | | | | | | | | | | | Previously, the methods to get symbol addresses were somewhat scattered in many places. You can use getEntryAddr returns the address of the symbol, but if you want to get the GOT address for the symbol, you needed to call Out<ELFT>::Got->getEntryAddr(Sym). This change adds new functions, getVA, getGotVA, getGotPltVA, and getPltVA to SymbolBody, so that you can use SymbolBody as the central place to ask about symbols. http://reviews.llvm.org/D16710 llvm-svn: 259404
* Avoid inlining call sites in unreachable-terminated blockJun Bum Lim2016-02-013-9/+155
| | | | | | | | | | | | | Summary: If the normal destination of the invoke or the parent block of the call site is unreachable-terminated, there is little point in inlining the call site unless there is literally zero cost. Unlike my previous change (D15289), this change specifically handle the call sites followed by unreachable in the same basic block for call or in the normal destination for the invoke. This change could be a reasonable first step to conservatively inline call sites leading to an unreachable-terminated block while BFI / BPI is not yet available in inliner. Reviewers: manmanren, majnemer, hfinkel, davidxl, mcrosier, dblaikie, eraman Subscribers: dblaikie, davidxl, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D16616 llvm-svn: 259403
* Remove extra semicolon. NFC.Chad Rosier2016-02-011-1/+1
| | | | llvm-svn: 259402
* [SCEV] Clean up isKnownPredicateViaConstantRanges; NFCISanjoy Das2016-02-011-63/+20
| | | | | | | | | | | | | | | - ScalarEvolution::isKnownPredicateViaConstantRanges duplicates some logic already present in ConstantRange, use ConstantRange for those bits. - In some cases ScalarEvolution::isKnownPredicateViaConstantRanges returns `false` to mean "definitely false" (e.g. see the `LHSRange.getSignedMin().sge(RHSRange.getSignedMax())` case for `ICmpInst::ICMP_SLT`), but for `isKnownPredicateViaConstantRanges`, `false` actually means "don't know". Get rid of this extra bit of code to avoid confusion. llvm-svn: 259401
* [SCEV] Rename isKnownPredicateWithRanges; NFCSanjoy Das2016-02-012-9/+10
| | | | | | | Make it obvious that it uses constant ranges, and use `Via` instead of `With`, like other similar functions in SCEV. llvm-svn: 259400
* Fix infinite recursion in MCAsmStreamer::EmitValueImpl.Rafael Espindola2016-02-011-7/+5
| | | | | | | | | | | If a target can only emit 8-bits data, we would loop in EmitValueImpl since it will try to split a 32-bits data in 1 chunk of 32-bits. No test since all current targets can emit 32bits at a time. Patch by Alexandru Guduleasa! llvm-svn: 259399
* [ThinLTO] Ensure function summary output order is stableTeresa Johnson2016-02-011-5/+11
| | | | | | | | | Iterate over the function list instead of a DenseMap of Function pointers when emitting the function summary into the module. This fixes PR26419. llvm-svn: 259398
* Add a note on how to create an empty target and use it to attach toJim Ingham2016-02-011-0/+10
| | | | | | processes whose executables you don't know up front. llvm-svn: 259396
* Revert r259143, it broke check-lld on Windows (see PR26388).Nico Weber2016-02-017-59/+28
| | | | llvm-svn: 259395
* Add a test for r258362.Rafael Espindola2016-02-012-0/+25
| | | | | | Thanks to Mehdi for finding it. llvm-svn: 259394
* Sort checks alphabetically in ReadabilityTidyModule.cpp.Eugene Zelenko2016-02-011-4/+4
| | | | llvm-svn: 259393
* [InstCombine] simplify masked store intrinsics with all ones or zeros masksSanjay Patel2016-02-012-1/+39
| | | | | | | | | | A masked store with a zero mask means there's no store. A masked store with an allOnes mask means it's a normal vector store. This is a continuation of: http://reviews.llvm.org/rL259369 llvm-svn: 259392
* [llvm-nm] Simplify the code a bit. NFCI.Davide Italiano2016-02-011-6/+2
| | | | | | Fix a style violation while I'm here. llvm-svn: 259391
* [ubsan] Stop thinking we can rely on C++ ABI knowledge on WindowsReid Kleckner2016-02-012-5/+2
| | | | | | | | | | We already disabled various tests relying on C++ ABI knowledge, but we still tried to build in this configuration on Windows which was a mistake. Fixes PR26415. llvm-svn: 259388
* AArch64: Implement missed conditional compare sequences.Balaram Makam2016-02-014-16/+116
| | | | | | | | | | | | | | | | | | Summary: This is an extension to the existing implementation of r242436 which restricts to only select inputs. This version fixes missed opportunities in pr26084 by attempting to lower conditional compare sequences of and/or trees with setcc leafs. This will additionaly handle the case when a tree with select input is not a conjunction-disjunction tree but some of the sub trees are conjunction-disjunction trees. Reviewers: jmolloy, t.p.northover, mcrosier, MatzeB Subscribers: mcrosier, llvm-commits, junbuml, haicheng, mssimpso, gberry Differential Revision: http://reviews.llvm.org/D16291 llvm-svn: 259387
* Atomize the ObjC category list section.Pete Cooper2016-02-012-0/+73
| | | | | | | | | __DATA, __objc_catlist contains a list of pointers to categories. We want to atomize it so that the ObjC pass can later optimize and remove categories. That will be a later patch. llvm-svn: 259386
* Add test case missing from r259357 (NFC)Matthew Simpson2016-02-011-0/+26
| | | | llvm-svn: 259385
* [AArch64] Simplify prolog/epilog callee save/restore. NFC.Geoff Berry2016-02-011-61/+87
| | | | | | | | | | | | | | | | | Summary: Factor out common code for callee-save register pair calculation. This is intended to simplify follow-on changes that reduce the number of registers saved/restored. Depends on D16732 Reviewers: mcrosier, jmolloy, t.p.northover Subscribers: aemerson, rengolin, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D16734 llvm-svn: 259384
* Fix attribute((mode([word|unwind_word]))) for x32Reid Kleckner2016-02-014-3/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch by H.J. Lu ``` typedef unsigned int gcc_word __attribute__((mode(word))); ``` and ``` typedef unsigned int gcc_unwind_word __attribute__((mode(unwind_word))); ``` define the largest unsigned integer types which can be stored in a general purpose register, which may not be the pointer type. For x32, they aren't pointer nor unsigned long. We should 1. Make getUnwindWordWidth and getRegisterWidth virtual, 2. Override them for x32, similar to hasInt128Type. 3. Use getRegisterWidth for __attribute__((mode(word))); This fixes PR 24706. Reviewers: rnk Differential Revision: http://reviews.llvm.org/D16779 llvm-svn: 259383
* docs: Clarify that cfi-unrelated-cast is based on lifetime.Peter Collingbourne2016-02-012-1/+165
| | | | | | Also restore Makefile.sphinx which is needed to build the documentation. llvm-svn: 259382
* [SystemZ] Fix wrong-code generation for certain always-false conditionsUlrich Weigand2016-02-012-1/+27
| | | | | | | | | | | | | | | | | | | | | | We've found another bug in the code generation logic conditions for a certain class of always-false conditions, those of the form if ((a & 1) < 0) These only reach the back end when compiling without optimization. The bug was introduced by the choice of using TEST UNDER MASK to implement a check for if ((a & MASK) < VAL) as if ((a & MASK) == 0) where VAL is less than the the lowest bit of MASK. This is correct in all cases except for VAL == 0, in which case the original condition is always false, but the replacement isn't. Fixed by excluding that particular case. llvm-svn: 259381
* [NFC] Referencing manual for reason why subregbit is checkedColin LeMahieu2016-02-011-1/+2
| | | | llvm-svn: 259380
* Always write the session file in UTF-8.Zachary Turner2016-02-014-3/+53
| | | | | | | | | | | | | | | | | | This patch attempts to solve the Python 2 / Python 3 incompatibilities by introducing a new `encoded_file` abstraction that we use instead of `io.open()`. The problem with the builtin implementation of `io.open` is that `read` and `write` accept and return `unicode` objects, which are not always convenient to work with in Python 2. We solve this by making `encoded_file.open()` return the same object returned by `io.open()` but with hooked `read()` and `write()` methods. These hooked methods will accept binary or text data, and conditionally convert what it gets to a `unicode` object using the correct encoding. When calling `read()` it also does any conversion necessary to convert the output back into the native `string` type of the running python version. Differential Revision: http://reviews.llvm.org/D16736 llvm-svn: 259379
* Fix misnamed variable in TestProcessAPI.pyZachary Turner2016-02-011-2/+2
| | | | llvm-svn: 259378
* fix broken check linesSanjay Patel2016-02-011-2/+2
| | | | | | Without the colon, it doesn't mean anything! llvm-svn: 259377
* Move LocInfoType from Sema to AST.Benjamin Kramer2016-02-016-10/+7
| | | | | | | While transient and only used during parsing, LocInfoTypes are still used from ASTDumper and are part of the AST. llvm-svn: 259376
* [InstCombine] Don't transform (X+INT_MAX)>=(Y+INT_MAX) -> (X<=Y)David Majnemer2016-02-012-1/+13
| | | | | | | | | This miscompile came about because we tried to use a transform which was only appropriate for xor operators when addition was present. This fixes PR26407. llvm-svn: 259375
* [ValueTracking] Improve isKnownNonZero for PHI of non-zero constantsJun Bum Lim2016-02-012-0/+30
| | | | | | It is clear that a PHI is a non-zero if all incoming values are non-zero constants. llvm-svn: 259370
* [InstCombine] simplify masked load intrinsics with all ones or zeros masksSanjay Patel2016-02-012-21/+32
| | | | | | | | | A masked load with a zero mask means there's no load. A masked load with an allOnes mask means it's a normal vector load. Differential Revision: http://reviews.llvm.org/D16691 llvm-svn: 259369
* Remove flaky annotation for TestCallWithTimeout on linuxPavel Labath2016-02-011-1/+0
| | | | | | The test has passed last 100 runs of the buildbot. llvm-svn: 259368
* [PrologEpilogInserter] Add some debug output for callee-save frame object ↵Geoff Berry2016-02-011-0/+2
| | | | | | | | | | | | allocation Reviewers: mcrosier Subscribers: mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D16733 llvm-svn: 259367
* [OpenMP] Prevent nesting of target constructs within target code execution ↵Arpith Chacko Jacob2016-02-0122-74/+423
| | | | | | | | | | | | | | | | | | regions. Summary: This patch enhances Sema to check for the following restriction: OpenMP 4.5 [2.17 Nesting of Regions] If a target, target update, target data, target enter data, or target exit data construct is encountered during execution of a target region, the behavior is unspecified. Reviewers: ABataev Differential Revision: http://reviews.llvm.org/D16758 llvm-svn: 259366
* [AArch64] Simplify callee-save register save/restore. NFC.Geoff Berry2016-02-012-68/+23
| | | | | | | | | | | | | | | | | | | Summary: Simplify callee-save register save/restore code generation by remembering the size of the callee-save area when it is computed so we don't have to scan the prologue/epilogue instructions again later to reconstruct it. This is intended to simplify follow-on changes that reduce the number of registers saved/restored. Reviewers: mcrosier, jmolloy, t.p.northover Subscribers: aemerson, rengolin, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D16732 llvm-svn: 259365
* [LV] Rename RdxPHIsToFix to PHIsToFix (NFC)Matthew Simpson2016-02-011-39/+32
| | | | | | | | | | In the future, we will vectorize recurrences other than reductions. This patch renames a few variables and updates their associated comments to enable them to be reused for non-reduction PHI nodes. This change was requested in the review for D16197. llvm-svn: 259364
* [X86][AVX512VBMI] add encoding and intrinsics for MultishiftAsaf Badouh2016-02-019-66/+332
| | | | | | Differential Revision: http://reviews.llvm.org/D16399 llvm-svn: 259363
* Add a new check, readability-redundant-control-flow, that check for some ↵Aaron Ballman2016-02-017-0/+427
| | | | | | | | forms of redundant control flow statements. Currently checks for return statements at the end of a function with a void return type and continue statements at the end of looping statements. Patch by Richard Thomson. llvm-svn: 259362
* [mips] Split large test file into 3 smaller ones.Vasileios Kalintiris2016-02-014-712/+772
| | | | | | | Remove the old select.ll file and use select-int.ll, select-flt.ll, select-dbl.ll for testing selects on integers, floats & doubles respectivelly. llvm-svn: 259361
* [mips] Range check uimm16 and fix several bugs this revealed.Daniel Sanders2016-02-0129-159/+266
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The bugs were: * teq and similar take 4-bit unsigned immediates on microMIPS. * teqi and similar have side-effects like teq do. * shll_s.w and shra_r.w take 5-bit unsigned immediates. * The various DSP ext* instructions take a 5-bit immediate. * repl.qh takes an 8-bit unsigned immediate. * repl.ph takes a 10-bit unsigned immediate. * rddsp/wrdsp take a 10-bit unsigned immediate. * teqi and similar take signed 16-bit immediates (10-bit for microMIPS). * Out-of-range immediate macros for or/xor take a simm32/simm64 depending on architecture. I'll fix the simm64 case properly when I reach simm32. lui is a bit more lenient than GAS and accepts signed immediates in addition to unsigned. This is because MipsMCExpr can produce signed values when constant folding and it currently lacks a way of knowing it should fold to an unsigned value. Reviewers: vkalintiris Subscribers: dsanders, llvm-commits Differential Revision: http://reviews.llvm.org/D15446 llvm-svn: 259360
* Reapply r259210 with a fix for RegistryTest.cpp.Aaron Ballman2016-02-016-15/+133
| | | | | | Patch by Richard Thomson. llvm-svn: 259359
* Improved macro emission in dwarf.Amjad Aboud2016-02-017-124/+42
| | | | | | | | Changed emitting offset of macinfo entry into compiler unit DIE to use "addSectionLabel" method rather than explicitly calculating size/offset of macro entry. Differential Revision: http://reviews.llvm.org/D16292 llvm-svn: 259358
* Reapply commit r258404 with fix.Matthew Simpson2016-02-012-24/+249
| | | | | | | The previous patch caused PR26364. The fix is to ensure that we don't enter a cycle when iterating over use-def chains. llvm-svn: 259357
* Remove Timer::Initialize routinePavel Labath2016-02-013-28/+12
| | | | | | | | | | | | | | | | | | | | Summary: I've run into an issue when running unit tests, where the underlying problem turned out to be that we were creating Timer objects (through several layers of indirection) without calling Timer::Initialize. Since Timer's thread-local storage was not properly initialized, we were overwriting gtest's own thread-local storage, causing test failures. Instead of requiring that every test calls Timer::Initialize(), I remove the function altogether: The thread-local storage can be initialized on-demand, and the g_file variable initialized to stdout and never changed, so I have simply removed it. Reviewers: clayborg, zturner, tberghammer Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D16722 llvm-svn: 259356
OpenPOWER on IntegriCloud