summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix dotest.py test runner exit code to return non-zero on failure/error.Todd Fiala2014-10-141-1/+1
| | | | | | | | | | | | | | | | | This addresses this bug: http://www.llvm.org/bugs/show_bug.cgi?id=21267 Which has been broken since svn r215256 on Aug 8 2014. DO NOT REVERT THIS COMMIT EVEN IF IT CREATES TEST FAILURES. The test failures are a result of accumulation of hidden failures that were masked by the bug this change fixes. Most of our test runners as part of build testing rely on dotest.py returning non-zero to indicate some kind of errant test run. Thus, we have been flying blind since Aug 8 2014. llvm-svn: 219689
* [LVI] Check for @llvm.assume dominating the edge branchHal Finkel2014-10-142-0/+41
| | | | | | | | | | | | | When LazyValueInfo uses @llvm.assume intrinsics to provide edge-value constraints, we should check for intrinsics that dominate the edge's branch, not just any potential context instructions. An assumption that dominates the edge's branch represents a truth on that edge. This is specifically useful, for example, if multiple predecessors assume a pointer to be nonnull, allowing us to simplify a later null comparison. The test case, and an initial patch, were provided by Philip Reames. Thanks! llvm-svn: 219688
* Revert r219638, (r219640 and r219676), "Removing the static destructor from ↵NAKAMURA Takumi2014-10-142-48/+6
| | | | | | | | ManagedStatic.cpp by controlling the allocation and de-allocation of the mutex." It caused hang-up on msc17 builder, probably deadlock. llvm-svn: 219687
* [AVX512] Extended avx512_binop_rm to DQ/VL subsets.Robert Khasanov2014-10-143-1/+172
| | | | | | Added encoding tests. llvm-svn: 219686
* [AVX512] Extended avx512_binop_rm to BW/VL subsets.Robert Khasanov2014-10-143-69/+1531
| | | | | | Added encoding tests. llvm-svn: 219685
* [AArch64] Fix crash with empty/pseudo-only blocks in A53 erratum (835769) ↵Bradley Smith2014-10-142-15/+35
| | | | | | workaround llvm-svn: 219684
* [sanitizer] Fix a crash in FP unwinder on ARM.Evgeniy Stepanov2014-10-142-11/+47
| | | | | | | | | | | | | This change fixes 2 issues in the fast unwinder from r217079: * A crash if a frame pointer points below current stack head, but inside the current thread stack limits. That memory may be unmapped. A check for this was lost in r217079. * The last valid stack frame (the first one with an invalid next frame pointer) is always interpreted as a GCC layout frame. This results in garbled last PC in the (expected) case when the last frame has LLVM layout. llvm-svn: 219683
* [llvm-symbolizer] Minor typedef cleanup. NFC.Alexander Potapenko2014-10-142-23/+20
| | | | llvm-svn: 219682
* Fix silly commit to disable test on ARMRenato Golin2014-10-141-1/+1
| | | | llvm-svn: 219681
* Disable failing ASAN LongJump test on ARMRenato Golin2014-10-141-3/+3
| | | | | | | Updated the URL to reflect information on the problem as well as build the case for ARM. This seems to be a wider problem, not ARM or PPC specific. llvm-svn: 219680
* [SystemZ] Add test case to verify default use of integrated assemblerUlrich Weigand2014-10-141-0/+14
| | | | llvm-svn: 219679
* tsan: remove trailing whitespaceDmitry Vyukov2014-10-141-1/+1
| | | | llvm-svn: 219678
* [asan] Add fast_unwind_on_check flag.Evgeniy Stepanov2014-10-144-1/+15
| | | | | | | | | Allows to specify the unwinder to use for CHECK failures. Previous behaviour was to use the "fatal" unwinder. As compiler-rt is built without frame pointers, only the slow unwinder really makes sense here, and it is the default. llvm-svn: 219677
* Threading.h: Use \tparam for template parameters. [-Wdocumentation]NAKAMURA Takumi2014-10-141-1/+1
| | | | llvm-svn: 219676
* tsan: refactor atexit handlingDmitry Vyukov2014-10-142-36/+109
| | | | | | | | | | The current handling (manual execution of atexit callbacks) is overly complex and leads to constant problems due to mutual ordering of callbacks. Instead simply wrap callbacks into our wrapper to establish the necessary synchronization. Fixes issue https://code.google.com/p/thread-sanitizer/issues/detail?id=80 llvm-svn: 219675
* Grab the subtarget info off of the MachineFunction rather thanEric Christopher2014-10-141-1/+1
| | | | | | indirecting through the TargetMachine. llvm-svn: 219674
* Use the triple to figure out if this is a darwin target, notEric Christopher2014-10-141-1/+1
| | | | | | the subtarget. llvm-svn: 219673
* Remove unnecessary TargetMachine.h includes.Eric Christopher2014-10-1425-26/+1
| | | | llvm-svn: 219672
* Grab the subtarget and subtarget dependent variables off ofEric Christopher2014-10-144-21/+10
| | | | | | MachineFunction rather than TargetMachine. llvm-svn: 219671
* Grab the subtarget and subtarget dependent variables off ofEric Christopher2014-10-142-9/+6
| | | | | | MachineFunction rather than TargetMachine. llvm-svn: 219670
* Instead of the TargetMachine cache the MachineFunctionEric Christopher2014-10-141-14/+13
| | | | | | | | and TargetRegisterInfo in the peephole optimizer. This makes it easier to grab subtarget dependent variables off of the MachineFunction rather than the TargetMachine. llvm-svn: 219669
* Access subtarget specific variables off of the MachineFunction'sEric Christopher2014-10-142-6/+4
| | | | | | cached subtarget and not the TargetMachine. llvm-svn: 219668
* Add lld to the parallel set of directories since it doesn't dependEric Christopher2014-10-141-1/+2
| | | | | | on any of the other tools directories. llvm-svn: 219667
* Access the subtarget off of the MachineFunction via the DAGEric Christopher2014-10-141-9/+7
| | | | | | | | scheduler or via the SelectionDAG if available. Otherwise grab the subtarget off of the MachineFunction by going up the parent chain. llvm-svn: 219666
* [AArch64]Select wide immediate offset into [Base+XReg] addressing modeHao Liu2014-10-144-20/+175
| | | | | | | | | | | | | | | e.g Currently we'll generate following instructions if the immediate is too wide: MOV X0, WideImmediate ADD X1, BaseReg, X0 LDR X2, [X1, 0] Using [Base+XReg] addressing mode can save one ADD as following: MOV X0, WideImmediate LDR X2, [BaseReg, X0] Differential Revision: http://reviews.llvm.org/D5477 llvm-svn: 219665
* Re-apply "Frontend: Extract SerializedDiagnosticReader out of ↵Justin Bogner2014-10-147-468/+653
| | | | | | | | | | | | CXLoadedDiagnostic (NFC)" I'd mispelled "Bitcode/BitCodes.h" before, and tested on a case insensitive filesystem. This reverts commit r219649, effectively re-applying r219647 and r219648. llvm-svn: 219664
* Remove the use and member variable of the TargetMachine fromEric Christopher2014-10-141-6/+4
| | | | | | MachineLICM as we can get the same data off of the MachineFunction. llvm-svn: 219663
* Have MachineInstrBundle use the MachineFunction for subtargetEric Christopher2014-10-141-5/+5
| | | | | | access rather than the TargetMachine. llvm-svn: 219662
* Access the subtarget off of the MachineFunction rather thanEric Christopher2014-10-142-5/+2
| | | | | | through the TargetMachine. llvm-svn: 219661
* Use PARALLEL_DIRS instead of DIRS in the MakefileEric Christopher2014-10-143-21/+21
| | | | | | | | based build since the subdirectories all appear to have no inter-directory dependencies. This speeds up parallel makefile builds greatly. llvm-svn: 219660
* Extend -Rmodule-build to also remark when module building finishes.Richard Smith2014-10-144-10/+23
| | | | | | | In cases of nested module builds, or when you care how long module builds take, this information was not previously easily available / obvious. llvm-svn: 219658
* [modules] Merging for class-scope using-declarations.Richard Smith2014-10-147-9/+265
| | | | llvm-svn: 219657
* Switch to select optimization for two-case switchesMarcello Maggioni2014-10-145-3/+289
| | | | | | | This is the same optimization of r219233 with modifications to support PHIs with multiple incoming edges from the same block and a test to check that this condition is handled. llvm-svn: 219656
* [mach-o] Add Pass to create are shim Atoms for ARM interworking.Nick Kledzik2014-10-1413-38/+574
| | | | | | | | | | | | | | | Arm code has two instruction encodings "thumb" and "arm". When branching from one code encoding to another, you need to use an instruction that switches the instruction mode. Usually the transition only happens at call sites, and the linker can transform a BL instruction in BLX (or vice versa). But if the compiler did a tail call optimization and a function ends with a branch (not branch and link), there is no pc-rel BX instruction. The ShimPass looks for pc-rel B instructions that will need to switch mode. For those cases it synthesizes a shim which does the transition, then modifies the original atom with the B instruction to target to the shim atom. llvm-svn: 219655
* This adds a "batch mode" to lldb kinda like the gdb batch mode. It will ↵Jim Ingham2014-10-1414-11/+236
| | | | | | | | | | | | | | | | quit the debugger after all the commands have been executed except if one of the commands was an execution control command that stopped because of a signal or exception. Also adds a variant of SBCommandInterpreter::HandleCommand that takes an SBExecutionContext. That way you can run an lldb command targeted at a particular target, thread or process w/o having to select same before running the command. Also exposes CommandInterpreter::HandleCommandsFromFile to the SBCommandInterpreter API, since that seemed generally useful. llvm-svn: 219654
* Don't include DFAPacketizer in TargetInstrInfo, there's no reason.Eric Christopher2014-10-141-1/+1
| | | | llvm-svn: 219653
* Include map into the A15SDOptimizer rather than pick it upEric Christopher2014-10-141-0/+1
| | | | | | transitively from the DFAPacketizer via TargetInstrInfo.h. llvm-svn: 219652
* Remove the TargetMachine from DFAPacketizer since it was onlyEric Christopher2014-10-143-7/+6
| | | | | | | being used to grab subtarget specific things that we can grab from the MachineFunction anyhow. llvm-svn: 219650
* Revert "Frontend: Extract SerializedDiagnosticReader out of ↵Justin Bogner2014-10-147-653/+468
| | | | | | | | | | | CXLoadedDiagnostic (NFC)" The bots can't seem to find an include file. Reverting for now and I'll look into it in a bit. This reverts commits r219647 and r219648. llvm-svn: 219649
* Frontend: Try to fix cmake builders after r219647Justin Bogner2014-10-141-0/+1
| | | | | | Looks like I missed a dependency here. llvm-svn: 219648
* Frontend: Extract SerializedDiagnosticReader out of CXLoadedDiagnostic (NFC)Justin Bogner2014-10-147-468/+652
| | | | | | | | | We currently read serialized diagnostics directly in the C API, which makes it difficult to reuse this logic elsewhere. This extracts the core of the serialized diagnostic parsing logic into a base class that can be subclassed using a visitor pattern. llvm-svn: 219647
* Introduce Go coding standards for LLVM.Peter Collingbourne2014-10-141-0/+19
| | | | | | | | | Rather than define our own standards, we adopt a set of best practices that are already in use by the Go community. Differential Revision: http://reviews.llvm.org/D5761 llvm-svn: 219646
* fix formatting; NFCSanjay Patel2014-10-141-33/+25
| | | | llvm-svn: 219645
* Add some optional passes around the vectorizer to both better prepareChandler Carruth2014-10-141-1/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the IR going into it and to clean up the IR produced by the vectorizers. Note that these are *off by default* right now while folks collect data on whether the performance tradeoff is reasonable. In a build of the 'opt' binary, I see about 2% compile time regression due to this change on average. This is in my mind essentially the worst expected case: very little of the opt binary is going to *benefit* from these extra passes. I've seen several benchmarks improve in performance my small amounts due to running these passes, and there are certain (rare) cases where these passes make a huge difference by either enabling the vectorizer at all or by hoisting runtime checks out of the outer loop. My primary motivation is to prevent people from seeing runtime check overhead in benchmarks where the existing passes and optimizers would be able to eliminate that. I've chosen the sequence of passes based on the kinds of things that seem likely to be relevant for the code at each stage: rotaing loops for the vectorizer, finding correlated values, loop invariants, and unswitching opportunities from any runtime checks, and cleaning up commonalities exposed by the SLP vectorizer. I'll be pinging existing threads where some of these issues have come up and will start new threads to get folks to benchmark and collect data on whether this is the right tradeoff or we should do something else. llvm-svn: 219644
* Introduce LLVMWriteBitcodeToMemoryBuffer C API function.Peter Collingbourne2014-10-142-0/+11
| | | | llvm-svn: 219643
* Sanitize upcasts and conversion to virtual base.Alexey Samsonov2014-10-138-27/+112
| | | | | | | | | | | This change adds UBSan check to upcasts. Namely, when we perform derived-to-base conversion, we: 1) check that the pointer-to-derived has suitable alignment and underlying storage, if this pointer is non-null. 2) if vptr-sanitizer is enabled, and we perform conversion to virtual base, we check that pointer-to-derived has a matching vptr. llvm-svn: 219642
* Resolve non-pointer isas for metaclasses.Sean Callanan2014-10-137-9/+68
| | | | | | | Patch by Enrico Granata. <rdar://problem/18618298> llvm-svn: 219641
* Updating documentation as per Chandler's feedback.Chris Bieneman2014-10-131-2/+15
| | | | | | | | | | | | | | | | This goes with the earlier commit to remove the static destructor from ManagedStatic.cpp by controlling the allocation and de-allocation of the mutex. Summary: This is part of the ongoing work to remove static constructors and destructors. Reviewers: chandlerc, rnk Reviewed By: rnk Subscribers: rnk, llvm-commits Differential Revision: http://reviews.llvm.org/D5473 llvm-svn: 219640
* InstCombine: Fix miscompile in X % -Y -> X % Y transformDavid Majnemer2014-10-133-14/+9
| | | | | | | | | | | We assumed that negation operations of the form (0 - %Z) resulted in a negative number. This isn't true if %Z was originally negative. Substituting the negative number into the remainder operation may result in undefined behavior because the dividend might be INT_MIN. This fixes PR21256. llvm-svn: 219639
* Removing the static destructor from ManagedStatic.cpp by controlling the ↵Chris Bieneman2014-10-132-6/+35
| | | | | | | | allocation and de-allocation of the mutex. This patch adds a new llvm_call_once function which is used by the ManagedStatic implementation to safely initialize a global to avoid static construction and destruction. llvm-svn: 219638
OpenPOWER on IntegriCloud