summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [LSAN] Disable on ARM/Thumb for goodRenato Golin2017-04-121-1/+2
| | | | | | | | I didn't pay enough attention to the patch I reverted, now I'm going to hit it with a bigger hammer until we can understand what the problems are. llvm-svn: 300044
* Rangify for loop, NFC.Yaron Keren2017-04-121-3/+1
| | | | llvm-svn: 300043
* Revert "[lsan] Fix typo in test/lsan/lit.common.cfg"Renato Golin2017-04-121-1/+1
| | | | | | | | This reverts commit r299957. It broke the Thumb bots. We need to make sure why and maybe stop it from being tested on Thumb environments. But for now, let's get the bots green. llvm-svn: 300042
* Fix compile errorIsmail Donmez2017-04-121-0/+1
| | | | llvm-svn: 300041
* [AMDGPU] SDWA: make pass globalSam Kolton2017-04-122-201/+185
| | | | | | | | | | | | Summary: Remove checks for basic blocks. Reviewers: vpykhtin, rampitec, arsenm Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye Differential Revision: https://reviews.llvm.org/D31935 llvm-svn: 300040
* [DWARF] - Refactoring of DWARFContextInMemory implementation.George Rimar2017-04-121-64/+71
| | | | | | | | | | | | | | This change is basically relative to D31136, where I initially wanted to implement some relocations handling optimization which shows it can give significant boost. Though even without any caching algorithm looks code can have some cleanup at first. Refactoring separates out code for taking symbol address, used in relocations computation. Differential revision: https://reviews.llvm.org/D31747 llvm-svn: 300039
* [IR] Rename the class templates for the case iterator and case handle toChandler Carruth2017-04-121-28/+31
| | | | | | | not collide with the naming convention for template *arguments*. In at least one case they actually collided and this confuses MSVC. llvm-svn: 300038
* [globalisel][tablegen] Add experimental support for OperandWithDefaultOps, ↵Daniel Sanders2017-04-123-4/+188
| | | | | | | | | | | | | | | | | | | | | | PredicateOperand, and OptionalDefOperand Summary: As far as instruction selection is concerned, all three appear to be same thing. Support for these operands is experimental since AArch64 doesn't make use of them and the in-tree targets that do use them (AMDGPU for OperandWithDefaultOps, AMDGPU/ARM/Hexagon/Lanai for PredicateOperand, and ARM for OperandWithDefaultOps) are not using tablegen-erated GlobalISel yet. Reviewers: rovka, aditya_nandakumar, t.p.northover, qcolombet, ab Reviewed By: rovka Subscribers: inglorion, aemerson, rengolin, mehdi_amini, dberris, kristof.beyls, igorb, tpr, llvm-commits Differential Revision: https://reviews.llvm.org/D31135 llvm-svn: 300037
* Remove Sema::addOverloadedOperatorToUnresolvedSet declaration. Its ↵Yaron Keren2017-04-121-3/+0
| | | | | | definition was removed in r206436. llvm-svn: 300036
* Update Clang for an API change to LLVM's switch case iterator (it is nowChandler Carruth2017-04-121-1/+1
| | | | | | | an actual iterator and so we need to look through it to the case handle). llvm-svn: 300035
* [LoadCombine] Avoid analysing dead basic blocksBjorn Pettersson2017-04-122-1/+51
| | | | | | | | | | | | | | | | | | | | | Summary: Dead basic blocks may be forming a loop, for which SSA form is fulfilled, but with a circular def-use chain. LoadCombine could enter an infinite loop when analysing such dead code. This patch solves the problem by simply avoiding to analyse all basic blocks that aren't forward reachable, from function entry, in LoadCombine. Fixes https://bugs.llvm.org/show_bug.cgi?id=27065 Reviewers: mehdi_amini, chandlerc, grosser, Bigcheese, davide Reviewed By: davide Subscribers: dberlin, zzheng, bjope, grandinj, Ka-Ka, materi, jholewinski, llvm-commits, mzolotukhin Differential Revision: https://reviews.llvm.org/D31032 llvm-svn: 300034
* Invariant.group and mustalias docs fixesPiotr Padlewski2017-04-122-1/+11
| | | | | | | | | | | | | | | Summary: Alias analysis would like to know that invariant.group.barrier returns pointer that mustalias, but this can't imply that we can replace one pointer with another Reviewers: dberlin, sanjoy Subscribers: llvm-commits, chandlerc, hfinkel, nlewycky, amharc Differential Revision: https://reviews.llvm.org/D31758 llvm-svn: 300033
* [IR] Redesign the case iterator in SwitchInst to actually be an iteratorChandler Carruth2017-04-1228-198/+296
| | | | | | | | | | | | | | | | and to expose a handle to represent the actual case rather than having the iterator return a reference to itself. All of this allows the iterator to be used with common STL facilities, standard algorithms, etc. Doing this exposed some missing facilities in the iterator facade that I've fixed and required some work to the actual iterator to fully support the necessary API. Differential Revision: https://reviews.llvm.org/D31548 llvm-svn: 300032
* [IR] Fix copy and paste mistake in comment. NFCCraig Topper2017-04-121-1/+1
| | | | llvm-svn: 300031
* [InstCombine][IR] Add a commutable BinOp matcher. Use it to reduce some ↵Craig Topper2017-04-122-2/+9
| | | | | | code. NFC llvm-svn: 300030
* [BPI] Refactor post domination calculation and simple fix for ColdCallSerguei Katkov2017-04-123-46/+112
| | | | | | | | | | | | | | | | | | | | Collection of PostDominatedByUnreachable and PostDominatedByColdCall have been split out of heuristics itself. Update of the data happens now for each basic block (before update for PostDominatedByColdCall might be skipped if unreachable or matadata heuristic handled this basic block). This separation allows re-ordering of heuristics without loosing the post-domination information. Reviewers: sanjoy, junbuml, vsk, chandlerc, reames Reviewed By: chandlerc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31701 llvm-svn: 300029
* [XRay] [compiler-rt] Refactor rewinding FDR logging.Martin Pelikan2017-04-121-80/+79
| | | | | | | | | | | | | | | Summary: While there, make the threshold in ticks for the rewind computed only once and not per function, unify the two versions we had and slightly reformat bits according to coding standards. Reviewers: dberris Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31971 llvm-svn: 300028
* [Modules] Remove darwin specific code to check for SystemVersion.plistBruno Cardoso Lopes2017-04-122-54/+0
| | | | | | | | | | This isn't need anymore and modules options -fbuild-session-file and -fmodules-validate-once-per-build-session already provide a sane mechanism to validate the system headers. rdar://problem/19767523 llvm-svn: 300027
* [INC] Test commit. NFC.Serguei Katkov2017-04-121-1/+1
| | | | | | Just an update of comment. llvm-svn: 300026
* Serialization: Simulate -Werror settings in implicit modulesDuncan P. N. Exon Smith2017-04-128-9/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r293123 started serializing diagnostic pragma state for modules. This makes the serialization work properly for implicit modules. An implicit module build (using Clang's internal build system) uses the same PCM file location for different `-Werror` levels. E.g., if a TU has `-Werror=format` and tries to load a PCM built without `-Werror=format`, a new PCM will be built in its place (and the new PCM should have the same signature, since r297655). In the other direction, if a TU does not have `-Werror=format` and tries to load a PCM built with `-Werror=format`, it should "just work". The idea is to evolve the PCM toward the strictest -Werror flags that anyone tries. r293123 started serializing the diagnostic pragma state for each PCM. Since this encodes the -Werror settings at module-build time, it breaks the implicit build model. This commit filters the diagnostic state in order to simulate the current compilation's diagnostic settings. Firstly, it ignores the module's serialized first diagnostic state, replacing it with the state from this compilation's command-line. Secondly, if a pragma warning was upgraded to error/fatal when generating the PCM (e.g., due to `-Werror` on the command-line), it checks whether it should still be upgraded in its current context. llvm-svn: 300025
* Serialization: Emit the final diagnostic state last, almost NFCDuncan P. N. Exon Smith2017-04-122-19/+40
| | | | | | | | | | Emit the final diagnostic state last to match source order. This also prepares for a follow-up commit for implicit modules. There's no real functionaliy change, just a slightly different AST file format. llvm-svn: 300024
* [AMDGPU] Add a new pass to insert waitcnts. Leave under an option for testing.Kannan Narayanan2017-04-127-6/+1881
| | | | | | Based on comments in https://reviews.llvm.org/D31161. llvm-svn: 300023
* CodeGen: BlockPlacement: Clear ComputedEdges between functions.Kyle Butt2017-04-121-2/+5
| | | | | | | | Not clearing was causing non-deterministic compiles for large files. Addresses for MachineBasicBlocks would end up colliding and we would lay out a block that we assumed had been pre-computed when it had not been. llvm-svn: 300022
* Serialization: Skip check in WritePragmaDiagnosticMappings, NFCDuncan P. N. Exon Smith2017-04-121-2/+1
| | | | | | | The record is never empty, since we always serialize the initial state. Skip the check. llvm-svn: 300021
* Reland "[CMake][libunwind] Use -nodefaultlibs for CMake checks"Petr Hosek2017-04-123-2/+105
| | | | | | | | | | | | | This is a reland of commit r299796. Turned out that we need gcc_s or compiler-rt on ARM when checking the support for -funwind-tables which creates a dependency on __aeabi_unwind_cpp_pr0 symbol that's provided by the compiler runtime. Differential Revision: https://reviews.llvm.org/D31858 llvm-svn: 300020
* ThinLTOBitcodeWriter: keep comdats together, rename if leader is renamedBob Haarman2017-04-122-6/+113
| | | | | | | | | | | | | | | | | | | Summary: COFF requires that every comdat contain a symbol with the same name as the comdat. ThinLTOBitcodeWriter renames symbols, which may cause this requirement to be violated. This change avoids such violations by renaming comdats if their leaders are renamed. It also keeps comdats together when splitting modules. Reviewers: pcc, mehdi_amini, tejohnson Reviewed By: pcc Subscribers: rnk, Prazek, llvm-commits Differential Revision: https://reviews.llvm.org/D31963 llvm-svn: 300019
* [XRay] [compiler-rt] Simplify FDR logging handler. [NFC]Martin Pelikan2017-04-121-29/+21
| | | | | | | | | | | | | | | | | | Summary: Not repeating screamy failure paths makes the 300+ line function a bit shorter. There's no need to overload the variable name "Buffer" if it only works on the thread local buffer. Fix some comments while there. I plan to move the rewinding logic into a separate function too, but in this diff it would be too much of a mess to comprehend. This is trivially NFC. Reviewers: kpw, dberris Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31930 llvm-svn: 300018
* [XRay][compiler-rt] Add another work-around to XRay FDR tests when TSC ↵Douglas Yung2017-04-122-2/+5
| | | | | | | | | | | | | | | | | emulation is needed This patch applies a work-around to the XRay FDR tests when TSC emulation is needed because the processor frequency cannot be determined. This fixes PR32620 using the suggestion given by Dean in comment 1. Reviewers: dberris Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31967 llvm-svn: 300017
* Revert "[WebAssembly] Update use of Attributes after r299875"Derek Schuff2017-04-121-14/+17
| | | | | | | | This reverts commit 2a0eb61dcccb15058d5b2a572bb3da0cf47fd550, r300015 I raced with rnk on the commit. llvm-svn: 300016
* [WebAssembly] Update use of Attributes after r299875Derek Schuff2017-04-121-17/+14
| | | | | | This fixes the failing WebAssemblyLowerEmscriptenEHSjLj tests llvm-svn: 300015
* [IR] Add AttributeSet to hide AttributeSetNode* again, NFCReid Kleckner2017-04-1214-285/+357
| | | | | | | | | | | | | | | | | Summary: For now, it just wraps AttributeSetNode*. Eventually, it will hold AvailableAttrs as an inline bitset, and adding and removing enum attributes will be super cheap. This sinks AttributeSetNode back down to lib/IR/AttributeImpl.h. Reviewers: pete, chandlerc Subscribers: llvm-commits, jfb Differential Revision: https://reviews.llvm.org/D31940 llvm-svn: 300014
* Teach SBFrame how to guess its language.Jim Ingham2017-04-1212-3/+181
| | | | | | <rdar://problem/31411646> llvm-svn: 300012
* [lld] Keep full library path in DT_NEEDED.Evgeniy Stepanov2017-04-128-13/+54
| | | | | | | | | | | | | | | | | Fixes PR32572. When (a) a library has no soname and (b) library is given on the command line with path (and not through -L/-l flags) DT_NEEDED entry for such library keeps the path as given. This behavior is consistent with gold and bfd, and is used in compiler-rt test suite. This is a second attempt after r300007 got reverted. This time relro-omagic test is changed in a way to avoid hardcoding the path to the test directory in the objdump'd binary. llvm-svn: 300011
* [msan] fix iconv interceptor. before the fix the interceptor failed to mark ↵Kostya Serebryany2017-04-122-1/+29
| | | | | | memory as initialized if iconv returned -1. Found in a hard way while fuzzing libxml2 :( llvm-svn: 300010
* Add some FAIL constexpr tests for optional's copy/move ctors.Marshall Clow2017-04-122-0/+73
| | | | llvm-svn: 300009
* Revert "[lld] Keep full library path in DT_NEEDED."Evgeniy Stepanov2017-04-128-67/+22
| | | | | | This reverts commit r300007. Reason: breaks all the bots. llvm-svn: 300008
* [lld] Keep full library path in DT_NEEDED.Evgeniy Stepanov2017-04-118-22/+67
| | | | | | | | | | | | | Fixes PR32572. When (a) a library has no soname and (b) library is given on the command line with path (and not through -L/-l flags) DT_NEEDED entry for such library keeps the path as given. This behavior is consistent with gold and bfd, and is used in compiler-rt test suite. llvm-svn: 300007
* Silence unused variable warning in release builds.Benjamin Kramer2017-04-111-0/+1
| | | | llvm-svn: 300006
* Remove big-endianness from =<fillexp> code.Rui Ueyama2017-04-112-11/+12
| | | | llvm-svn: 300005
* Call getFiller only when filler is not zero.Rui Ueyama2017-04-112-17/+15
| | | | llvm-svn: 300004
* Remove xgene1 from host detectionYi Kong2017-04-111-11/+1
| | | | | | | | | This is not a supported mcpu tuning option. We should treat it as "generic" variant. Also, add record for cortex-a35. llvm-svn: 300003
* [lld] --export-dynamic overrides --dynamic-list.Evgeniy Stepanov2017-04-112-0/+62
| | | | | | | | | Fixes PR32573. --export-dynamic exports everything, even in the presence of a --dynamic-list, or --export-dynamic-symbol. llvm-svn: 300002
* Revert r298824 & r298816, recommit r298742 & r298754Richard Trieu2017-04-114-111/+385
| | | | | | | | | | | | | r299989 fixes the underlying issue by waiting long enough to late parsed arguments to be processed before doing an calculating the hash. r298742 [ODRHash] Add error messages for mismatched parameters in methods. r298754 [ODRHash] Add support for array and decayed types. llvm-svn: 300001
* AMDGPU: Insert wait at start of callee functionsMatt Arsenault2017-04-113-1/+40
| | | | llvm-svn: 300000
* AMDGPU: Refactor SIMachineFunctionInfo slightlyMatt Arsenault2017-04-114-23/+45
| | | | | | Prepare for handling non-entry functions. llvm-svn: 299999
* AMDGPU: Refactor argument loweringMatt Arsenault2017-04-1111-278/+378
| | | | | | | Split into smaller functions and prepare for handling non-entry functions. llvm-svn: 299998
* AMDGPU: Fix folding reg_sequence into copy to phys regMatt Arsenault2017-04-112-0/+17
| | | | | | | This was producing an illegal reg_sequence defining a physical register with virtual register inputs. llvm-svn: 299997
* AMDGPU: Prune unecessary includeMatt Arsenault2017-04-111-2/+0
| | | | llvm-svn: 299996
* [asan] Give global metadata private linkage.Evgeniy Stepanov2017-04-112-6/+7
| | | | | | | Internal linkage preserves names like "__asan_global_foo" which may account to 2% of unstripped binary size. llvm-svn: 299995
* [AArch64] Fix scheduling info for INS(vector, general) instruction.Balaram Makam2017-04-112-1/+6
| | | | llvm-svn: 299994
OpenPOWER on IntegriCloud