summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Use hasFlag instead of hasArgDean Michael Berris2016-07-141-2/+2
| | | | | | | | | | | | Summary: Fix the build to use hasFlag instead of hasArg for checking some flags. Reviewers: echristo Subscribers: mehdi_amini, cfe-commits Differential Revision: http://reviews.llvm.org/D22338 llvm-svn: 275377
* [X86] Fix stupid typo in isel lowering.Eli Friedman2016-07-142-1/+37
| | | | | | | Apparently someone miscounted the number of zeros in the immediate. Fixes https://llvm.org/bugs/show_bug.cgi?id=28544 . llvm-svn: 275376
* AMDGPU/R600: Delete/rename intrinsics no longer used by mesaMatt Arsenault2016-07-1424-1721/+1450
| | | | | | Use the replacement pass to update the tests, and delete old names. llvm-svn: 275375
* Set sh_addralign to 1 instead of 0.Rui Ueyama2016-07-143-10/+5
| | | | | | | | ELF spec says that alignment of 0 is equivalent to 1. Previously, we arbitrary set to 0 or 1, but always setting to 1 makes our program simpler. llvm-svn: 275374
* Attempt to unbreak msan bot.Rui Ueyama2016-07-141-1/+4
| | | | | | | | r275301 made .got section be aligned on Target->GotEntrySize, so GotEntrySize must have been initialized. We didn't initialize it for AMDGPU. llvm-svn: 275373
* AMDGPU/R600: Remove intrinsics with no tests and no usersMatt Arsenault2016-07-144-76/+15
| | | | | | Mesa removed this path, so nothing is using these anymore. llvm-svn: 275372
* AMDGPU: Remove unused intrinsicsMatt Arsenault2016-07-143-119/+0
| | | | llvm-svn: 275371
* AMDGPU: Fix test not actually testing anythingMatt Arsenault2016-07-142-4/+28
| | | | | | | | | | It wasn't actually running the pass, and since it is missing the llvm prefix, the eh intrinsic was not really an IntrinsicInst. Also add missing test for lifetime markers. llvm-svn: 275370
* AMDGPU: Remove dead codeMatt Arsenault2016-07-142-10/+0
| | | | llvm-svn: 275369
* Add C++ dependencies to xray runtimeDean Michael Berris2016-07-141-2/+17
| | | | | | | | | | | | | | | | Summary: Depends on D21982 which implements the in-memory logging implementation of the XRay runtime. These additional changes also depends on D20352 which adds the bulk of XRay flags/dependencies when using the `-fxray-instrument` flag from Clang. Reviewers: echristo, rnk, aaron.ballman Subscribers: mehdi_amini, cfe-commits Differential Revision: http://reviews.llvm.org/D21983 llvm-svn: 275368
* XRay: Add entry and exit sledsDean Michael Berris2016-07-1418-12/+317
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: In this patch we implement the following parts of XRay: - Supporting a function attribute named 'function-instrument' which currently only supports 'xray-always'. We should be able to use this attribute for other instrumentation approaches. - Supporting a function attribute named 'xray-instruction-threshold' used to determine whether a function is instrumented with a minimum number of instructions (IR instruction counts). - X86-specific nop sleds as described in the white paper. - A machine function pass that adds the different instrumentation marker instructions at a very late stage. - A way of identifying which return opcode is considered "normal" for each architecture. There are some caveats here: 1) We don't handle PATCHABLE_RET in platforms other than x86_64 yet -- this means if IR used PATCHABLE_RET directly instead of a normal ret, instruction lowering for that platform might do the wrong thing. We think this should be handled at instruction selection time to by default be unpacked for platforms where XRay is not availble yet. 2) The generated section for X86 is different from what is described from the white paper for the sole reason that LLVM allows us to do this neatly. We're taking the opportunity to deviate from the white paper from this perspective to allow us to get richer information from the runtime library. Reviewers: sanjoy, eugenis, kcc, pcc, echristo, rnk Subscribers: niravd, majnemer, atrick, rnk, emaste, bmakam, mcrosier, mehdi_amini, llvm-commits Differential Revision: http://reviews.llvm.org/D19904 llvm-svn: 275367
* [SCCP] Pass a Value * instead of templating this function. NFC.Davide Italiano2016-07-141-9/+8
| | | | | | Thanks to Eli for the suggestion! llvm-svn: 275366
* [OpenMP] Sema and parsing for 'target parallel for simd' pragmaKelvin Li2016-07-1446-12/+4555
| | | | | | | | This patch is to implement sema and parsing for 'target parallel for simd' pragma. Differential Revision: http://reviews.llvm.org/D22096 llvm-svn: 275365
* clarify a bit.Chris Lattner2016-07-141-1/+1
| | | | llvm-svn: 275364
* [IPSCCP] Constant fold struct argument/instructions when all the lattice ↵Davide Italiano2016-07-142-13/+15
| | | | | | | | | | | values are constant. This now should also work with the interprocedural variant of the pass. Slightly easier now that the yak is shaved. Differential Revision: http://reviews.llvm.org/D22329 llvm-svn: 275363
* [lld] Update LLD for Archive::child_iterator change in LLVM r275361.Lang Hames2016-07-146-22/+33
| | | | llvm-svn: 275362
* [Object] Re-apply r275316 now that I have the corresponding LLD patch ready.Lang Hames2016-07-1415-197/+236
| | | | llvm-svn: 275361
* Teach fast isel about thiscall (and callee-pop) calls.Nico Weber2016-07-142-10/+26
| | | | | | http://reviews.llvm.org/D22315 llvm-svn: 275360
* [Scalarizer] PR28108: Skip over nullptr rather than crashing on it.Mehdi Amini2016-07-142-1/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: In Scalarizer::gather we see if we already have a scattered form of Op, and in that case use the new form. In the particular case of PR28108, the found ValueVector SV has size 2, where the first Value is nullptr, and the second is indeed a proper Value. The nullptr then caused an assert to blow when we tried to do cast<Instruction>(SV[I]). With this patch we check SV[I] before doing the cast, and if it's nullptr we just skip over it. I don't know the Scalarizer well enough to know if this is the best fix or if something should be done else where to prevent the nullptr from being in the ValueVector at all, but at least this avoids the crash and looking at the test case output it looks reasonable. Reviewers: hfinkel, frasercrmck, wala, mehdi_amini Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D21518 llvm-svn: 275359
* Add missing test for r275347 "[IPRA] Set callee saved registers to none for ↵Mehdi Amini2016-07-141-0/+30
| | | | | | local function when IPRA is enabled." llvm-svn: 275358
* [SCCP] Generalize tryToReplaceInstWithConstant to work also with arguments.Davide Italiano2016-07-141-22/+18
| | | | llvm-svn: 275357
* Add a comment mirroring the one in LLVM's Dwarf.hAdrian Prantl2016-07-141-0/+1
| | | | llvm-svn: 275356
* MIRParser: Fix MIRParser not reporting nullptr on error.Matthias Braun2016-07-141-1/+1
| | | | | | | While some code paths in MIRParserImpl::parse() already returned nullptr in case of error one of the important ones did not. llvm-svn: 275355
* Synchronize LLVM and clang's ObjCDeclSpec::ObjCPropertyAttributeKind.Adrian Prantl2016-07-147-19/+77
| | | | | | | | | | This adds Clang-specific DWARF constants for nullability and ObjC class properties that are already generated by clang. This patch adds dwarfdump support and a more comprehensive testcase. <rdar://problem/27335745> llvm-svn: 275354
* [Object] Revert r275316, Archive::child_iterator changes, while I update lld.Lang Hames2016-07-1415-236/+197
| | | | | | Should fix the bots broken by r275316. llvm-svn: 275353
* [ConstantFolding] Fold masked loadsDavid Majnemer2016-07-142-1/+47
| | | | | | | | | We can constant fold a masked load if the operands are appropriately constant. Differential Revision: http://reviews.llvm.org/D22324 llvm-svn: 275352
* www/cxx_status: give more precise links to initialization order wordingRichard Smith2016-07-141-2/+6
| | | | llvm-svn: 275351
* P0305R0: Semantic analysis and code generation for C++17 init-statement for ↵Richard Smith2016-07-1422-62/+369
| | | | | | | | | | 'if' and 'switch': if (stmt; condition) { ... } Patch by Anton Bikineev! Some minor formatting and comment tweets by me. llvm-svn: 275350
* Force a semicolon at the end of the LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE() ↵Justin Lebar2016-07-131-1/+2
| | | | | | | | macro. This silences a warning about an extra semicolon on gcc. llvm-svn: 275349
* Add EnableIPRA to TargetOptions, and move the cl::opt -enable-ipra to ↵Mehdi Amini2016-07-135-13/+17
| | | | | | | | | | | | TargetMachine.cpp Avoid exposing a cl::opt in a public header and instead promote this option in the API. Alternatively, we could land the cl::opt in CommandFlags.h so that it is available to every tool, but we would still have to find an option for clang. llvm-svn: 275348
* [IPRA] Set callee saved registers to none for local function when IPRA is ↵Mehdi Amini2016-07-135-10/+46
| | | | | | | | | | | | | | | | | | | | enabled. IPRA try to optimize caller saved register by propagating register usage information from callee to caller so it is beneficial to have caller saved registers compare to callee saved registers when IPRA is enabled. Please find more detailed explanation here https://groups.google.com/d/msg/llvm-dev/XRzGhJ9wtZg/tjAJqb0eEgAJ. This change makes local function do not have any callee preserved register when IPRA is enabled. A simple test case is also added to verify this change. Patch by Vivek Pandya <vivekvpandya@gmail.com> Differential Revision: http://reviews.llvm.org/D21561 llvm-svn: 275347
* [JumpThreading] Delete commented out debug code; NFCSanjoy Das2016-07-131-3/+0
| | | | llvm-svn: 275346
* [ConstantFolding] Extend FoldReinterpretLoadFromConstPtr to handle negative ↵David Majnemer2016-07-132-10/+28
| | | | | | | | | offsets Treat loads which clip before the start of a global initializer the same way we treat clipping beyond the end of the initializer: use zeros. llvm-svn: 275345
* Move a transform from InstCombine to InstSimplify.David Majnemer2016-07-132-4/+9
| | | | | | | This transform doesn't require any new instructions, it can safely live in InstSimplify. llvm-svn: 275344
* Fix copy/paste bug in r275340.Michael Kuperstein2016-07-131-1/+1
| | | | llvm-svn: 275343
* MIRParser: Move SlotMapping and SourceMgr refs to PFS; NFCMatthias Braun2016-07-133-88/+69
| | | | | | | | Code cleanup: Move references to SlotMapping and SourceMgr into the PerFunctionMIParsingState to avoid unnecessary passing around in parameters. llvm-svn: 275342
* [DAG] Correctly chain masked loadsMichael Kuperstein2016-07-132-9/+24
| | | | | | | | | If a masked loads is not added to the chain, it should not reset the chain's root. This fixes the remaining part of PR28515. llvm-svn: 275340
* [SCCP] Have the logic for replacing insts with constant in a single place.Davide Italiano2016-07-131-53/+50
| | | | | | | | | The code was pretty much copy-pasted between SCCP and IPSCCP. The situation became clearly worse after I introduced the support for folding structs in SCCP. This commit is NFC as we currently (still) skip the replacement step in IPSCCP, but I'll change this soon. llvm-svn: 275339
* [Coverage] Return an ArrayRef to avoid copies (NFC)Vedant Kumar2016-07-131-1/+1
| | | | llvm-svn: 275338
* [Coverage] Mark a few methods const (NFC)Vedant Kumar2016-07-132-3/+3
| | | | llvm-svn: 275337
* Added test for setting breakpoints by basename and fullname.Greg Clayton2016-07-131-0/+67
| | | | | | <rdar://problem/24599697> llvm-svn: 275336
* [LAA] Don't hold on to DominatorTree in the analysis resultAdam Nemet2016-07-132-8/+7
| | | | llvm-svn: 275335
* [LAA] Don't hold on to TargetLibraryInfo in the analysis resultAdam Nemet2016-07-132-10/+9
| | | | llvm-svn: 275334
* [MIR] Fix one GlobalISel test case that I missed in r275314.Quentin Colombet2016-07-131-3/+2
| | | | llvm-svn: 275333
* [MI] Clean up some loops over MachineInstr::memoperands(). NFCJustin Lebar2016-07-131-14/+11
| | | | | | | Use range-based for loops and llvm::any_of instead of explicit iterators. llvm-svn: 275332
* [MI] Fix MachineInstr::isInvariantLoad.Justin Lebar2016-07-131-2/+1
| | | | | | | | | | | | | | | | | | | | Summary: Previously it would say we had an invariant load if any of the memory operands were invariant. But the load should be invariant only if *all* the memory operands are invariant. No testcase because this has proven to be very difficult to tickle in practice. As just one example, ARM's ldrd instruction, which loads 64 bits into two 32-bit regs, is theoretically affected by this. But when it's produced, it loses its memoperands' invariance bits! Reviewers: jfb Subscribers: llvm-commits, aemerson Differential Revision: http://reviews.llvm.org/D22318 llvm-svn: 275331
* Add XRay flags to Clang. We implement two flags to control the XRay behaviour:Aaron Ballman2016-07-1312-1/+147
| | | | | | | | | | | -fxray-instrument: enables XRay annotation of IR -fxray-instruction-threshold: configures the threshold for function size (looking at IR instructions), and allow LLVM to decide whether to add the nop sleds later on in the process. Also implements the related xray_always_instrument and xray_never_instrument function attributes. Patch by Dean Michael Berris. llvm-svn: 275330
* MIRParser: Move MachineFunction reference into PFS; NFCMatthias Braun2016-07-133-141/+132
| | | | | | | | | | Code cleanup: The PerFunctionMIParsingState is per function, moving a reference into PFS we can avoid passing around the MachineFunction in an extra parameter most of the time. Also change most signatures to consistently pass PFS reference first. llvm-svn: 275329
* MIRYamlMapping: Update stale commentMatthias Braun2016-07-131-3/+0
| | | | llvm-svn: 275328
* Add a triple to fix test on bots after 275320.Nico Weber2016-07-131-1/+1
| | | | llvm-svn: 275327
OpenPOWER on IntegriCloud