summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* llvm/test/CodeGen/AArch64/arm64-csldst-mmo.ll requires +Asserts.NAKAMURA Takumi2016-04-151-0/+1
| | | | llvm-svn: 266443
* [SimplifyCFG] propagate branch metadata when creating select (PR27344)Sanjay Patel2016-04-152-3/+3
| | | | | | | | | | This is almost identical to: http://reviews.llvm.org/rL264527 This doesn't solve PR27344; it just allows the profile weights to survive. To solve the bug, we need to use the profile weights in the backend. llvm-svn: 266442
* lli.cpp: Appease some builders. There might be ownership issues between ↵NAKAMURA Takumi2016-04-151-1/+1
| | | | | | LLVMContext and ExecutionEngine. Investigating. llvm-svn: 266441
* Add an interesting GC testcase.Rafael Espindola2016-04-152-0/+32
| | | | | | | It shows that we correctly look at liveness based on the final symbol resolution. llvm-svn: 266440
* [AArch64] Add MMOs to callee-save load/store instructions.Geoff Berry2016-04-152-2/+38
| | | | | | | | | | | | | | Summary: Without MMOs, the callee-save load/store instructions were treated as volatile by the MI post-RA scheduler and AArch64LoadStoreOptimizer. Reviewers: t.p.northover, mcrosier Subscribers: aemerson, rengolin, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D17661 llvm-svn: 266439
* Fix typing on generated LXV2DX/STXV2DX instructionsNirav Dave2016-04-152-5/+49
| | | | | | | | | | | | | | | | | [PPC] Previously when casting generic loads to LXV2DX/ST instructions we would leave the original load return type in place allowing for an assertion failure when we merge two equivalent LXV2DX nodes with different types. This fixes PR27350. Reviewers: nemanjai Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D19133 llvm-svn: 266438
* [MachineScheduler]Add support for store clusteringJun Bum Lim2016-04-1510-66/+254
| | | | | | | | | | | | Perform store clustering just like load clustering. This change add StoreClusterMutation in machine-scheduler. To control StoreClusterMutation, added enableClusterStores() in TargetInstrInfo.h. This is enabled only on AArch64 for now. This change also add support for unscaled stores which were not handled in getMemOpBaseRegImmOfs(). llvm-svn: 266437
* [Coverage] Prevent detection of false instantiations in case of macro expansion.Igor Kudrin2016-04-157-19/+102
| | | | | | | | | | | | | The root of the problem was that findMainViewFileID(File, Function) could return some ID for any given file, even though that file was not the main file for that function. This patch ensures that the result of this function is conformed with the result of findMainViewFileID(Function). Differential Revision: http://reviews.llvm.org/D18787 llvm-svn: 266436
* [SimplifyCFG] add metadata to show failure to propagate (PR27344)Sanjay Patel2016-04-151-7/+10
| | | | llvm-svn: 266435
* [Coverage] Add support for making test data for more than one function.Igor Kudrin2016-04-151-83/+169
| | | | | | Differential Revision: http://reviews.llvm.org/D18758 llvm-svn: 266434
* AMDGPU/SI: Fix regression with no-return atomicsNicolai Haehnle2016-04-152-0/+10
| | | | | | | | | | | | | | | Summary: In the added test-case, the atomic instruction feeds into a non-machine CopyToReg node which hasn't been selected yet, so guard against non-machine opcodes here. Reviewers: arsenm, tstellarAMD Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D19043 llvm-svn: 266433
* Store a Symbol for EntrySym.Rafael Espindola2016-04-155-7/+10
| | | | | | This makes it impossible to forget to call repl on the SymbolBody. llvm-svn: 266432
* Revert r266415, it broke parsing SDK headers (PR27367).Nico Weber2016-04-1520-163/+48
| | | | llvm-svn: 266431
* prepare-builtins: Remove call to getGlobalContext()Tom Stellard2016-04-151-1/+1
| | | | | | | | This function has been removed from LLVM. Patch By: Laurent Carlier llvm-svn: 266430
* Add a testcase for symbol resolution with -r.Rafael Espindola2016-04-151-0/+14
| | | | llvm-svn: 266429
* Remove include duplicate. NFC.Alexey Bader2016-04-151-1/+0
| | | | llvm-svn: 266428
* Don't create relocations for absolute got entries.Rafael Espindola2016-04-152-7/+22
| | | | llvm-svn: 266427
* [TSAN] Make tsan tests more portable (take 3)Renato Golin2016-04-1551-73/+73
| | | | | | | | Some tests didn't merge stderr with stdout. Patch by Maxim Kuvyrkov. llvm-svn: 266426
* Don't create relocations for non preemptable absolute symbols.Rafael Espindola2016-04-153-1/+41
| | | | llvm-svn: 266425
* Two small related fixes.Rafael Espindola2016-04-153-3/+33
| | | | | | | * A hidden undefined is not preemptable. * It is always zero, so we don't need a dynamic reloc for it. llvm-svn: 266424
* Work around a linux libc bug causing a crash in TaskPoolPavel Labath2016-04-151-2/+3
| | | | | | | | | | | | | | | | | | Summary: Doing a pthread_detach while the thread is exiting can cause crashes or other mischief, so we make sure the thread stays around long enough. The performance impact of the added synchronization should be minimal, as the parent thread is already holding a mutex, so I am just making sure it holds it for a little while longer. It's possible the new thread will block on this mutex immediately after startup, but it should be unblocked really quickly and some blocking is unavoidable if we actually want to have this synchronization. Reviewers: tberghammer Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D19153 llvm-svn: 266423
* Fix usage of APInt.getRawData for big-endian systemsUlrich Weigand2016-04-157-290/+266
| | | | | | | | | | | | | Recommit modified version of r266311 including build bot regression fix. This differs from the original r266311 by: - Fixing Scalar::Promote to correctly zero- or sign-extend value depending on signedness of the *source* type, not the target type. - Omitting a few stand-alone fixes that were already committed separately. llvm-svn: 266422
* [ELF] Remove redundant empty line. NFCSimon Atanasyan2016-04-151-1/+0
| | | | llvm-svn: 266421
* Make Scalar::SChar return an explicit signed typeUlrich Weigand2016-04-152-2/+2
| | | | | | | | This is needed for platforms where the default "char" type is unsigned. Originally committed as part of (now reverted) r266311. llvm-svn: 266420
* Fix Scalar::MakeSigned for 128- and 256-bit types.Ulrich Weigand2016-04-151-2/+2
| | | | | | | | Obvious fix for incorrect result types of the operation. Originally committed as part of (now reverted) r266311. llvm-svn: 266419
* Fix Scalar::SetValueFromData for 128- and 256-bit typesUlrich Weigand2016-04-151-16/+16
| | | | | | | | Obvious fix for incorrect use of GetU64 offset pointer. Originally committed as part of (now reverted) r266311. llvm-svn: 266418
* Fix ABISysV_s390x::GetArgumentValuesUlrich Weigand2016-04-151-2/+1
| | | | | | | | This routine contained a stray "return false;" making part of the code never executed. Also, the stack offset where to find on-stack arguments was incorrect. llvm-svn: 266417
* Make destructor breakpoint location test more resilientPavel Labath2016-04-152-8/+43
| | | | | | | | | | | | | | | | | | | | | | Summary: The original breakpoint location test was failing for linux, because the compilers here tend to merge the full-object and subobject destructors even at -O0 (as a result, we are getting only 2 breakpoint locations, and not 4 as the test expected. The fixup in r266164 substantially weakened the test, as it now did not check whether both kinds of destructors were being found. Because of these contraints, I have altered the logic of the test. It sets the breakpoint by name, and then independently verifies that the breakpoint is set on the correct demangled symbol name (which is not very meaningful since both kinds of destructors demangle to the same name) *and* the correct symbol address (which is obtained by looking up the mangled symbol name). Reviewers: clayborg Subscribers: ovyalov, zturner, lldb-commits Differential Revision: http://reviews.llvm.org/D19052 llvm-svn: 266416
* [MSVC Compat] Implementation of __unaligned (MS extension) as a type qualifierAndrey Bokhanko2016-04-1520-48/+163
| | | | | | | | | | | This patch implements __unaligned as a type qualifier; before that, it was modeled as an attribute. Proper mangling of __unaligned is implemented as well. Some OpenCL code/tests are tangenially affected, as they relied on existing number and sizes of type qualifiers. Differential Revision: http://reviews.llvm.org/D18596 llvm-svn: 266415
* Use MVT instead of EVT to remove a bunch of unnecessary calls to getSimpleVT.Craig Topper2016-04-154-61/+58
| | | | llvm-svn: 266414
* Add a setOperationPromotedToType convenience method that sets an operation ↵Craig Topper2016-04-152-36/+25
| | | | | | to promoted and set the type in one call. Use it so save code in X86. llvm-svn: 266413
* [X86] AND, OR, and XOR of vectors are always legal no need to set them legal ↵Craig Topper2016-04-151-5/+0
| | | | | | explicitly. llvm-svn: 266412
* [Polly] Remove unwanted --check-prefix=CHECK from unit tests. NFC.Mandeep Singh Grang2016-04-152-2/+2
| | | | | | | | | | | | | | | | | Summary: Removed unwanted --check-prefix=CHECK from the following unit tests: DeadCodeElimination/dead_iteration_elimination.ll Isl/CodeGen/simple_vec_cast.ll Patch by: Mandeep Singh Grang (mgrang) Reviewers: jdoerfert, zinob, spop, grosser Projects: #polly Differential Revision: http://reviews.llvm.org/D19143 llvm-svn: 266411
* [X86] Combine an if and else block that had the same set of calls to ↵Craig Topper2016-04-151-47/+24
| | | | | | setOperationAction that only varied in Legal/Custom. Use the ternary operator on that argument instead. NFC llvm-svn: 266410
* [libcxx] Remove the "reduced-arity-initialization" extension from the ↵Eric Fiselier2016-04-153-70/+116
| | | | | | | | | | | | | | | | | uses-allocator constructors Summary: A default uses-allocator constructor has been added since that overload was previously provided by the extended constructor. Since Clang does implicit conversion checking after substitution this constructor has to deduce the allocator_arg_t parameter so that it can prevent the evaluation of "is_default_constructible" if the first argument doesn't match. See http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#1391 for more information. This patch fixes PR24779 (https://llvm.org/bugs/show_bug.cgi?id=24779) Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19006 llvm-svn: 266409
* Revert "[LTO] Add a new splitCodeGen() API which takes a TargetMachineFactory."Davide Italiano2016-04-152-41/+20
| | | | | | This reverts commits r266390 and r266396 as they broke some bots. llvm-svn: 266408
* Add the PDBParser.{cpp,h} files to the Xcode project.Jim Ingham2016-04-151-0/+6
| | | | llvm-svn: 266407
* [NVPTX] Set NVPTXTTI::getInliningThresholdMultiplier to 5.Justin Lebar2016-04-151-0/+4
| | | | | | | | | | | | | | | Summary: Calls on NVPTX are unusually expensive (for one thing, lots of state needs to be saved to memory, which is slow), so make the inlininer much more aggressive. Reviewers: chandlerc Subscribers: jholewinski, llvm-commits, tra Differential Revision: http://reviews.llvm.org/D18561 llvm-svn: 266406
* [TTI] Add getInliningThresholdMultiplier.Justin Lebar2016-04-155-0/+24
| | | | | | | | | | | | | | | | Summary: InlineCost's threshold is multiplied by this value. This lets us adjust the inlining threshold up or down on a per-target basis. For example, we might want to increase the threshold on targets where calls are unusually expensive. Reviewers: chandlerc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18560 llvm-svn: 266405
* [ifcnv] Don't duplicate blocks that contain convergent instructions.Justin Lebar2016-04-151-1/+31
| | | | | | | | | | | It's unsafe to duplicate blocks that contain convergent instructions during ifcnv. See the patch for details. Reviewers: hfinkel Differential Revision: http://reviews.llvm.org/D17518 llvm-svn: 266404
* Move divergent-target test into CodeGen/NVPTX because it requires an NVPTX ↵Justin Lebar2016-04-151-2/+4
| | | | | | target. llvm-svn: 266403
* clang-cl: Don't check for existence of linker inputs when /link is usedHans Wennborg2016-04-152-7/+24
| | | | | | | | | There might be flags passed to the linker (e.g. /libpath), causing it to search in paths the Clang driver doesn't know about. PR27234 llvm-svn: 266402
* Rename out->std_out in AppleObjCRuntimeV2.cpp.Oleksiy Vyalov2016-04-151-17/+17
| | | | llvm-svn: 266401
* Blocks are only reliably supported on Darwin. Disable the test otherwise.Sean Callanan2016-04-151-0/+3
| | | | llvm-svn: 266400
* [PM] Add a SpeculativeExecution pass for targets with divergent branches.Justin Lebar2016-04-151-0/+2
| | | | | | | | | | | | | | Summary: This IR pass is helpful for GPUs, and other targets with divergent branches. It's a nop on targets without divergent branches. Reviewers: chandlerc Subscribers: llvm-commits, jingyue, rnk, joker.eph, tra Differential Revision: http://reviews.llvm.org/D18626 llvm-svn: 266399
* [Speculation] Add a SpeculativeExecution mode where the pass does nothing ↵Justin Lebar2016-04-154-5/+70
| | | | | | | | | | | | | | | | unless TTI::hasBranchDivergence() is true. Summary: This lets us add this pass to the IR pass manager unconditionally; it will simply not do anything on targets without branch divergence. Reviewers: tra Subscribers: llvm-commits, jingyue, rnk, chandlerc Differential Revision: http://reviews.llvm.org/D18625 llvm-svn: 266398
* Added a testcase for defining and using lambdas in the expression parser.Sean Callanan2016-04-152-0/+21
| | | | | | <rdar://problem/25739133> llvm-svn: 266397
* [ParallelCG] Attempt to placate MSVC.Davide Italiano2016-04-151-0/+2
| | | | llvm-svn: 266396
* clang-cl: Make /link accept an optional joined argument.Hans Wennborg2016-04-152-3/+4
| | | | | | | | | | For example, "cl.exe a.c /linkfoo bar" is a valid invocation and forwards "foo" and "bar" to link.exe. This makes clang-cl handle that kind of invocation. Depends on LLVM r266394. llvm-svn: 266395
* Option parser: class for consuming a joined arg in addition to all remaining ↵Hans Wennborg2016-04-156-1/+73
| | | | | | args llvm-svn: 266394
OpenPOWER on IntegriCloud