summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Fix the buildDavid Majnemer2014-10-131-9/+4
| | | | llvm-svn: 219637
* Migrate another set of getSubtargetImpl away.Eric Christopher2014-10-131-2/+2
| | | | llvm-svn: 219636
* Remove unused debug info constants.Peter Collingbourne2014-10-131-16/+0
| | | | | | | | These became unused in r219010. Differential Revision: http://reviews.llvm.org/D5760 llvm-svn: 219635
* InstCombine: Don't miscompile (x lshr C1) udiv C2David Majnemer2014-10-134-13/+40
| | | | | | | | | | | | | We have a transform that changes: (x lshr C1) udiv C2 into: x udiv (C2 << C1) However, it is unsafe to do so if C2 << C1 discards any of C2's bits. This fixes PR21255. llvm-svn: 219634
* Make first of several changes to bring up to AArch64 fast-isel styleReed Kotler2014-10-131-179/+204
| | | | | | | | | | | | | | | | | | | | | | | Summary: Make Mips fast-isel track the form of AArch64 where practical. This makes it easier for people to review the code, to borrow similar code, and to see how to eventually move a lot of this target code for fast-isels into target independent code. These are just cosmetic changes. Should be no functional difference. Test Plan: make check test-suite for 4 flavors mips32 r1/r2 , -O0/-O2 Reviewers: dsanders Reviewed By: dsanders Subscribers: aemerson, llvm-commits, rfuhler Differential Revision: http://reviews.llvm.org/D5595 llvm-svn: 219633
* Fix minor typos in comments.Filipe Cabecinhas2014-10-132-2/+2
| | | | llvm-svn: 219632
* Update the example of using a command-line option custom parser toPaul Robinson2014-10-131-5/+5
| | | | | | | | match the current implementation. Patch by Douglas Yung! llvm-svn: 219631
* Objective-C [Sema]. Fixes a bug in comparing qualifiedFariborz Jahanian2014-10-133-53/+70
| | | | | | | | Objective-C pointer types. In this case, checker incorrectly claims incompatible pointer types if redundant protocol conformance is specified. rdar://18491222 llvm-svn: 219630
* Correctly export _Unwind_[GS]et(GR|IP) for EHABI.Dan Albert2014-10-134-27/+25
| | | | | | | | | | | | | | | | | | These need to have normal linkage instead of being static inline as many libraries expect to be able to declare these and have the linker find them rather than needing to include the header. http://mentorembedded.github.io/cxx-abi/abi-eh.html Also clean up some warnings while I'm here. Reviewers: jroelofs, kledzik Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D5754 llvm-svn: 219629
* Add an assertion about the integrity of the iterator.Adrian Prantl2014-10-131-0/+5
| | | | | | | | | Broken parent scope pointers in inlined DIVariables can cause ensureAbstractVariableIsCreated to insert new abstract scopes, thus invalidating the iterator in this loop and leading to hard-to-debug crashes. Useful when manually reducing IR for testcases. llvm-svn: 219628
* constify the getters in SDNodeDbgValue.Adrian Prantl2014-10-131-12/+12
| | | | llvm-svn: 219627
* Refactor debug statement and remove dead argument. NFC.Chad Rosier2014-10-132-18/+13
| | | | llvm-svn: 219626
* [analyzer] Check all 'nonnull' attributes, not just the first one.Jordan Rose2014-10-132-5/+114
| | | | | | Patch by Daniel Fahlgren! llvm-svn: 219625
* Fix order of evaluation bug in DynTypedMatcher::constructVariadic().Samuel Benzaquen2014-10-131-2/+2
| | | | | | | | Fix order of evaluation bug in DynTypedMatcher::constructVariadic(). If it evaluates right-to-left, the vector gets moved before we read the kind from it. llvm-svn: 219624
* cleanup comments and remove an obsolete workaroundAdrian Prantl2014-10-131-4/+2
| | | | llvm-svn: 219623
* Fix bug in DynTypedMatcher::constructVariadic() that would cause false ↵Samuel Benzaquen2014-10-133-12/+25
| | | | | | | | | | | | | | | | | | | negatives. Summary: Change r219118 fixed the bug for anyOf and eachOf, but it is still present for unless. The variadic wrapper doesn't have enough information to know how to restrict the type. Different operators handle restrict failures in different ways. Reviewers: klimek Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D5731 llvm-svn: 219622
* Add VS2012-generated test inputs for ↵Timur Iskhodzhanov2014-10-136-4/+14
| | | | | | test/tools/llvm-readobj/codeview-linetables.test llvm-svn: 219621
* Don't lock the IOHandlerList::m_mutex in Debugger::RunIOHandler(...) since ↵Greg Clayton2014-10-131-1/+0
| | | | | | | | if a process is resumed or halted, it will try to push/pop the process IOHandler and it will deadlock. <rdar://problem/18610852> llvm-svn: 219620
* Relinquish ownership of MS-style inline assembly.Chad Rosier2014-10-131-1/+1
| | | | llvm-svn: 219619
* Address review comments from Justin Bogner.Adrian Prantl2014-10-131-3/+3
| | | | | | | - raise without arguments is preserving the backtrace - move the call to terminate lldb to the exit handler llvm-svn: 219618
* Fix a broadcast related regression on the vector shuffle lowering.Filipe Cabecinhas2014-10-133-3/+87
| | | | | | | | | | | | Summary: Test by Robert Lougher! Reviewers: chandlerc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5745 llvm-svn: 219617
* R600/SI: Minor cleanup of functionMatt Arsenault2014-10-131-9/+11
| | | | llvm-svn: 219616
* More OpenMP test case compatibility fixesUlrich Weigand2014-10-132-3/+3
| | | | | | | Allow "signext" in a couple of more places in recently added test cases to fix failures on SystemZ. llvm-svn: 219615
* [Refactor][NfC] Simplify and clean the handling of (new) access relationsJohannes Doerfert2014-10-134-34/+55
| | | | | | | | | | | | | | | This patch does not change the semantic on it's own. However, the dependence analysis as well as dce will now use the newest available access relation for each memory access, thus if at some point the json importer or any other pass will run before those two and set a new access relation the behaviour will be different. In general it is unclear if the dependence analysis and dce should be run on the old or new access functions anyway. If we need to access the original access function from the outside later, we can expose the getter again. Differential Revision: http://reviews.llvm.org/D5707 llvm-svn: 219612
* [clang-tidy] misc-braces-around-statements.ShortStatementLines optionAlexander Kornienko2014-10-136-22/+158
| | | | | | | | | | | | | | | | Add option ShortStatementLines to trigger this check only if the statement spans over at least a given number of lines. Modifications from the original patch: merged test/clang-tidy/misc-braces-around-statements-always.cpp into test/clang-tidy/misc-braces-around-statements.cpp and removed unnecessary CHECK-NOTs from the tests. http://reviews.llvm.org/D5642 Patch by Marek Kurdej! llvm-svn: 219611
* [asan-asm-instrumentation] Follow-up fixes to r219602: asserts are moved intoYuri Gorshenin2014-10-131-8/+8
| | | | | | function. llvm-svn: 219610
* Re-structure clang-rename into a library and the tool.Manuel Klimek2014-10-137-20/+39
| | | | | | | | This allows the unit tests to link the library. Patch by Xin Huang. llvm-svn: 219609
* [AArch64] Fixup test from A53 erratum patch after buildbot failuresBradley Smith2014-10-131-1/+1
| | | | | | Don't include stdint.h directly, instead typedef int64_t which is all we need. llvm-svn: 219608
* Adds support for the Cortex-A17 processor to ClangRenato Golin2014-10-135-5/+32
| | | | | | Patch by Matthew Wahab. llvm-svn: 219607
* Adds support for the Cortex-A17 to the ARM backendRenato Golin2014-10-133-1/+48
| | | | | | Patch by Matthew Wahab. llvm-svn: 219606
* [mips] Mark redundant instructions with a comment in ↵Daniel Sanders2014-10-131-2/+9
| | | | | | test/CodeGen/Mips/Fast-ISel/icmpa.ll. llvm-svn: 219605
* [AArch64] Add workaround for Cortex-A53 erratum (835769)Bradley Smith2014-10-134-0/+44
| | | | | | | | | | | | | | | | | | | Some early revisions of the Cortex-A53 have an erratum (835769) whereby it is possible for a 64-bit multiply-accumulate instruction in AArch64 state to generate an incorrect result. The details are quite complex and hard to determine statically, since branches in the code may exist in some circumstances, but all cases end with a memory (load, store, or prefetch) instruction followed immediately by the multiply-accumulate operation. The safest work-around for this issue is to make the compiler avoid emitting multiply-accumulate instructions immediately after memory instructions and the simplest way to do this is to insert a NOP. This patch implements clang options to enable this workaround in the backend. The work-around code generation is not enabled by default. llvm-svn: 219604
* [AArch64] Add workaround for Cortex-A53 erratum (835769)Bradley Smith2014-10-135-0/+763
| | | | | | | | | | | | | | | | | | | | Some early revisions of the Cortex-A53 have an erratum (835769) whereby it is possible for a 64-bit multiply-accumulate instruction in AArch64 state to generate an incorrect result. The details are quite complex and hard to determine statically, since branches in the code may exist in some circumstances, but all cases end with a memory (load, store, or prefetch) instruction followed immediately by the multiply-accumulate operation. The safest work-around for this issue is to make the compiler avoid emitting multiply-accumulate instructions immediately after memory instructions and the simplest way to do this is to insert a NOP. This patch implements such work-around in the backend, enabled via the option -aarch64-fix-cortex-a53-835769. The work-around code generation is not enabled by default. llvm-svn: 219603
* [asan-asm-instrumentation] Fixed memory references which includes %rsp as a ↵Yuri Gorshenin2014-10-132-111/+207
| | | | | | | | | | | | | | base or an index register. Summary: [asan-asm-instrumentation] Fixed memory references which includes %rsp as a base or an index register. Reviewers: eugenis Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5599 llvm-svn: 219602
* Fix incompatibility issue in /OpenMP/parallel_num_threads_codegen.cppAlexey Bataev2014-10-131-4/+4
| | | | llvm-svn: 219601
* tsan: better reporting for virtual-call-after-freeDmitry Vyukov2014-10-135-1/+42
| | | | | | | Previously we said that it's a data race, which is confusing if it happens in the same thread. llvm-svn: 219600
* [OPENMP] Codegen for 'num_threads' clause in 'parallel' directive.Alexey Bataev2014-10-135-8/+138
| | | | | | | This patch generates call to "kmpc_push_num_threads(ident_t *loc, kmp_int32 global_tid, kmp_int32 num_threads);" library function before calling "kmpc_fork_call" each time there is an associated "num_threads" clause in the "omp parallel" directive. Differential Revision: http://reviews.llvm.org/D5145 llvm-svn: 219599
OpenPOWER on IntegriCloud