summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Put FreeBSD note types in their own namespaceEd Maste2015-01-061-10/+14
| | | | | | | Note types are inherently OS-specific, but some note type names are common to both FreeBSD and Linux. llvm-svn: 225299
* [Sanitizer] Improve unit tests in COMPILER_RT_DEBUG=ON mode.Alexey Samsonov2015-01-064-3/+6
| | | | | | | Propagate -DSANITIZER_DEBUG definition to unit tests. Make sure unit tests depend on compiler-rt headers. llvm-svn: 225298
* Remove a lock acquisition from ProcessWindows::OnExitProcess.Zachary Turner2015-01-061-11/+12
| | | | | | | | | | | | | This was causing a race condition where DoDestroy() would acquire the lock and then initiate a shutdown and then wait for it to complete. But part of the shutdown involved acquiring the same lock from a different thread. So the main thread would timeout waiting for the shutdown to complete and return too soon. The end result of this is that SBProcess::Kill() was broken on Windows. llvm-svn: 225297
* Use amdgcn triple for SI+ GPUsTom Stellard2015-01-061-4/+7
| | | | llvm-svn: 225296
* Make registerPollyPasses publicTobias Grosser2015-01-062-1/+2
| | | | | | This function is needed for the integration of Polly into Julia. llvm-svn: 225295
* R600: Handle amdgcn tripleTom Stellard2015-01-069-12/+19
| | | | | | For now there is no difference between amdgcn and r600. llvm-svn: 225294
* Use -DSANITIZER_DEBUG=1 if COMPILER_RT_DEBUG=ON, now that PR22083 is fixed.Alexey Samsonov2015-01-061-2/+1
| | | | llvm-svn: 225293
* Use a Factory Method for MachineFunctionInfo CreationMehdi Amini2015-01-061-1/+10
| | | | | | | | The goal is to allows MachineFunctionInfo to override this create function to customize the creation. No change intended in existing backend in this patch. llvm-svn: 225292
* [Hexagon] Adding compound jump encodings.Colin LeMahieu2015-01-063-0/+414
| | | | llvm-svn: 225291
* R600/SI: Insert s_waitcnt before s_barrier instructions.Tom Stellard2015-01-063-1/+10
| | | | | | | This ensures that all memory operations are complete when all threads reach the barrier. llvm-svn: 225290
* R600/SI: Fix dependency calculation for DS writes instructions in SIInsertWaitsTom Stellard2015-01-061-0/+23
| | | | | | | | | | | | In DS write instructions, the address operand comes before the value operand(s) which is reversed from every other instruction type. The SIInsertWait assumed that the first use for each instruction was the value, so for DS write it was protecting the address operand with s_waitcnt instructions when it should have been protecting the value operand. llvm-svn: 225289
* Revert "Reapply: Teach SROA how to update debug info for fragmented variables."Adrian Prantl2015-01-065-326/+12
| | | | | | | | | because of a tsan buildbot failure. This reverts commit 225272. Fix should be coming soon. llvm-svn: 225288
* Make a test UNSUPPORTED if libcpp-has-no-threads.Dan Albert2015-01-061-0/+2
| | | | llvm-svn: 225287
* Appease MSAN buildbots.Dan Albert2015-01-061-1/+1
| | | | | | | This is just a compile time test, but we have MSAN buildbots that will fail since `exp` was uninitialized. llvm-svn: 225286
* Fix PR 22106; make std::swap work for multi-dimensional arrays. Thanks to ↵Marshall Clow2015-01-062-0/+53
| | | | | | Peter Griess for the report and suggested fix llvm-svn: 225285
* Added a test case for launching a process in a separate terminal window to ↵Greg Clayton2015-01-061-0/+35
| | | | | | | | ensure we don't regress on this. A recent POSIX host thread issue where HostThreadPosix::Join() wasn't returning the thread result was responsible for this regression, yet we had no test case covering this so it wasn't discovered. llvm-svn: 225284
* [Hexagon] Adding encoding for misc v4 instructions: boundscheck, tlbmatch, ↵Colin LeMahieu2015-01-065-1/+109
| | | | | | dcfetch. llvm-svn: 225283
* This patch teaches IndVarSimplify to add nuw and nsw to certain kindsSanjoy Das2015-01-064-2/+341
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of operations that provably don't overflow. For example, we can prove %civ.inc below does not sign-overflow. With this change, IndVarSimplify changes %civ.inc to an add nsw. define i32 @foo(i32* %array, i32* %length_ptr, i32 %init) { entry: %length = load i32* %length_ptr, !range !0 %len.sub.1 = sub i32 %length, 1 %upper = icmp slt i32 %init, %len.sub.1 br i1 %upper, label %loop, label %exit loop: %civ = phi i32 [ %init, %entry ], [ %civ.inc, %latch ] %civ.inc = add i32 %civ, 1 %cmp = icmp slt i32 %civ.inc, %length br i1 %cmp, label %latch, label %break latch: store i32 0, i32* %array %check = icmp slt i32 %civ.inc, %len.sub.1 br i1 %check, label %loop, label %break break: ret i32 %civ.inc exit: ret i32 42 } Differential Revision: http://reviews.llvm.org/D6748 llvm-svn: 225282
* [ubsan] disable coverage-levels.cc on darwin until we can investigate what's ↵Kostya Serebryany2015-01-061-0/+2
| | | | | | wrong there. llvm-svn: 225281
* Obey [atomics.types.operations.req]/21 for GCC.Dan Albert2015-01-062-6/+57
| | | | | | | | | | | | | | | | | | | | | | | | Summary: Excerpt from [atomics.types.operations.req]/21: > When only one memory_order argument is supplied, the value of > success is order, and the value of failure is order except that a > value of memory_order_acq_rel shall be replaced by the value > memory_order_acquire and a value of memory_order_release shall be > replaced by the value memory_order_relaxed. Clean up some copy pasta while I'm here (someone added a return statement to a void function). Reviewers: EricWF, jroelofs, mclow.lists Reviewed By: mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6632 llvm-svn: 225280
* [Hexagon] Adding encoding information for absolute address loads.Colin LeMahieu2015-01-062-124/+198
| | | | llvm-svn: 225279
* SelectionDAGBuilder: move constant initialization out of loopMehdi Amini2015-01-061-15/+19
| | | | | | | | | | No semantic change intended. Reviewers: resistor Differential Revision: http://reviews.llvm.org/D6834 llvm-svn: 225278
* R600/SI: Add a stub GCNTargetMachineTom Stellard2015-01-06286-310/+355
| | | | | | | | | | | | This is equivalent to the AMDGPUTargetMachine now, but it is the starting point for separating R600 and GCN functionality into separate targets. It is recommened that users start using the gcn triple for GCN-based GPUs, because using the r600 triple for these GPUs will be deprecated in the future. llvm-svn: 225277
* Triple: Add amdgcn tripleTom Stellard2015-01-062-1/+9
| | | | | | | This will be used for AMD GPUs with the Graphics Core Next architecture, which are currently using by the r600 triple. llvm-svn: 225276
* R600/SI: Remove MachineFunction dump from AsmPrinterTom Stellard2015-01-061-17/+12
| | | | | | | The dump was dependent on a feature string, which meant that it couldn't be disabled or enable on a per compile basis. llvm-svn: 225275
* [CodeGenPrepare] Improved logic to speculate calls to cttz/ctlz.Andrea Di Biagio2015-01-062-6/+207
| | | | | | | | | | | | | | | | | | | | | This patch improves the logic added at revision 224899 (see review D6728) that teaches the backend when it is profitable to speculate calls to cttz/ctlz. The original algorithm conservatively avoided speculating more than one instruction from a basic block in a control flow grap modelling an if-statement. In particular, the only allowed instruction (excluding the terminator) was a call to cttz/ctlz. However, there are cases where we could be less conservative and still be able to speculate a call to cttz/ctlz. With this patch, CodeGenPrepare now tries to speculate a cttz/ctlz if the result is zero extended/truncated in the same basic block, and the zext/trunc instruction is "free" for the target. Added new test cases to CodeGen/X86/cttz-ctlz.ll Differential Revision: http://reviews.llvm.org/D6853 llvm-svn: 225274
* [libcxx] Set _LIBCPP_ELAST for mingw.Dan Albert2015-01-064-23/+50
| | | | | | | | | | | | Reviewers: K-ballo, mclow.lists, EricWF Reviewed By: EricWF Subscribers: jfb, jroelofs, majnemer, cfe-commits Differential Revision: http://reviews.llvm.org/D6558 llvm-svn: 225273
* Reapply: Teach SROA how to update debug info for fragmented variables.Adrian Prantl2015-01-065-12/+326
| | | | | | | | | | This also rolls in the changes discussed in http://reviews.llvm.org/D6766. Defers migrating the debug info for new allocas until after all partitions are created. Thanks to Chandler for reviewing! llvm-svn: 225272
* Don't loop endlessly for MachO files with 0 ncmdsFilipe Cabecinhas2015-01-064-0/+14
| | | | llvm-svn: 225271
* [Hexagon] Fix 225267. GP register is not yet fully implemented. Removing ↵Colin LeMahieu2015-01-061-2/+2
| | | | | | Uses [GP] maintains existing behavior. llvm-svn: 225270
* Implement a very basic colored syntax highlighting for llvm-dwarfdump.Adrian Prantl2015-01-065-21/+112
| | | | | | | | | | The color scheme is the same as the one used by the colorize dwarfdump script on Darwin. A new --color option can be used to forcibly turn color on or off. http://reviews.llvm.org/D6852 llvm-svn: 225269
* [PowerPC] Add a regression test for r225251Hal Finkel2015-01-061-0/+23
| | | | | | | | In r225251, I removed an old entry from the README.txt file. While there are several contributing factors (including pieces in Clang's ABI code), upon further reflection, the backend part deserves a regression test. llvm-svn: 225268
* [Hexagon] Adding dealloc_return encoding and absolute address stores.Colin LeMahieu2015-01-068-240/+376
| | | | llvm-svn: 225267
* [ARM] Cleanup so_imm* tblgen defintionsAsiri Rathnayake2015-01-062-109/+43
| | | | | | | | | | | No functional changes. Support for ARM's modified immediate syntax was added in r223113 and r223115 (review: D6408). That patch introduced the mod_imm* tblegen definitions which renders the existing so_imm* definitions redundant. This patch gets rid of them completely. Reviewed as: D6722 llvm-svn: 225266
* Convert fcmp with 0.0 from casted integers to icmpMatt Arsenault2015-01-062-4/+488
| | | | | | | | | | | | | | | | | | | This is already handled in general when it is known the conversion can't lose bits with smaller integer types casted into wider floating point types. This pattern happens somewhat often in GPU programs that cast workitem intrinsics to float, which are often compared with 0. Specifically handle the special case of compares with zero which should also be known to not lose information. I had a more general version of this which allows equality compares if the casted float is exactly representable in the integer, but I'm not 100% confident that is always correct. Also fold cases that aren't integers to true / false. llvm-svn: 225265
* www: Draft changelog for the upcoming release.Tobias Grosser2015-01-062-0/+40
| | | | llvm-svn: 225264
* Fix htmlTobias Grosser2015-01-061-2/+2
| | | | llvm-svn: 225263
* We currently do not create these result for pollyTobias Grosser2015-01-061-0/+3
| | | | | | | | We should reconsider this after having switched to imath (instead of gmp) as the default isl backend, as this would allow us to keep a copy of isl in the polly svn and to consequently make it easier to distribute Polly. llvm-svn: 225262
* [asan] Bump the self-imposed stack limit from 128k to 256k. PowerPC64Jay Foad2015-01-061-1/+1
| | | | | | | | | | | | | | | Linux has 64k pages, so the old limit was only two pages. With ASLR the initial sp might be right at the start of the second page, so the stack will immediately grow down into the first page; and if you use all pages of a limited stack then asan hits a kernel bug to do with how stack guard pages are reported in /proc/self/maps: http://lkml.iu.edu//hypermail/linux/kernel/1501.0/01025.html We should still fix the underlying problems, but in the mean time this patch makes the test work with 64k pages as well as it does with 4k pages. llvm-svn: 225261
* [CMake] Silence stderr on "COMMAND ${CMAKE_C_COMPILER} -Wl,--version". It ↵NAKAMURA Takumi2015-01-061-0/+1
| | | | | | was noisy during configuraion. llvm-svn: 225260
* Reformat.NAKAMURA Takumi2015-01-061-2/+4
| | | | llvm-svn: 225259
* [PM] Hide a function we only use in an assert behind NDEBUG.Chandler Carruth2015-01-061-0/+2
| | | | llvm-svn: 225258
* [PM] Introduce a utility pass that preserves no analyses.Chandler Carruth2015-01-063-0/+50
| | | | | | | | | Use this to test that path of invalidation. This test actually shows redundant invalidation here that is really bad. I'm going to work on fixing that next, but wanted to commit the test harness now that its all working. llvm-svn: 225257
* [X86] Add OpSize32 to XBEGIN_4. Add XBEGIN_2 with OpSize16.Craig Topper2015-01-066-9/+47
| | | | | | Requires new AsmParserOperand types that detect 16-bit and 32/64-bit mode so that we choose the right instruction based on default sizing without predicates. This is necessary since predicates mess up the disassembler table building. llvm-svn: 225256
* InstCombine: Bitcast call arguments from/to pointer/integer typeDavid Majnemer2015-01-063-8/+56
| | | | | | | Try harder to get rid of bitcast'd calls by ptrtoint/inttoptr'ing arguments and return values when DataLayout says it is safe to do so. llvm-svn: 225254
* [PM] Simplify how we parse the outer layer of the pass pipeline text andChandler Carruth2015-01-063-28/+50
| | | | | | | | | | | | | | remove an extra, redundant pass manager wrapping every run. I had kept seeing these when manually testing, but it was getting really annoying and was going to cause problems with overly eager invalidation. The root cause was an overly complex and unnecessary pile of code for parsing the outer layer of the pass pipeline. We can instead delegate most of this to the recursive pipeline parsing. I've added some somewhat more basic and precise tests to catch this. llvm-svn: 225253
* [X86] Make isel select the 2-byte register form of INC/DEC even in ↵Craig Topper2015-01-065-126/+78
| | | | | | | | non-64-bit mode. Convert to the 1-byte form in non-64-bit mode as part of MCInst lowering. Overall this seems simpler. It reduces duplication of patterns between both modes and it simplifies the memory folding/unfolding tables as they don't need to create fake instructions just to keep track of 64-bitness. llvm-svn: 225252
* [PowerPC] Remove old README.txt entry regarding struct passingHal Finkel2015-01-061-8/+0
| | | | | | | Because of how Clang represents structs as arrays (at least on non-Darwin platforms), and what SROA does, etc. this is no longer a problem. llvm-svn: 225251
* X86: Don't make illegal GOTTPOFF relocationsDavid Majnemer2015-01-063-0/+25
| | | | | | | | | | | | | "ELF Handling for Thread-Local Storage" specifies that R_X86_64_GOTTPOFF relocation target a movq or addq instruction. Prohibit the truncation of such loads to movl or addl. This fixes PR22083. Differential Revision: http://reviews.llvm.org/D6839 llvm-svn: 225250
* [PowerPC] Add some missing names in getTargetNodeNameHal Finkel2015-01-061-0/+7
| | | | | | These are used for debugging output; NFC. llvm-svn: 225249
OpenPOWER on IntegriCloud