summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Skip oatdata and oatexec symbols in system@framework@boot.oatTamas Berghammer2015-07-131-2/+14
| | | | | | | | | | | | | | On Android the oatdata and the oatexec symbols in system@framework@boot.oat covers the full .text section what causes issues with displaying unusable symbol name to the user and very slow unwinding speed because the instruction emulation based unwind plans try to emulate all instructions in these symbols. Don't add these symbols to the symbol list as they have no use for the debugger and they are causing a lot of trouble. Differential revision: http://reviews.llvm.org/D11065 llvm-svn: 242017
* [LLDB][MIPS] Add mips cores in cores_match () in ArchSpecSagar Thakur2015-07-131-3/+93
| | | | | | | | | | | | | | | This patch: - Allows mips32 cores to match with any mips32/mips64 cores. - Allows mips32r2 cores to match with core only up-to mips32r2/mips64r2. - Allows mips32r3 cores to match with core only up-to mips32r3/mips64r3. - Allows mips32r5 cores to match with core only up-to mips32r3/mips64r5. - Allows mips32r6 core to match with only mips32r6/mips64r6 or mips32/mips64. Reviewers: emaste, jaydeep, clayborg Subscribers: mohit.bhakkad, nitesh.jain, bhushan, lldb-commits Differential Revision: http://reviews.llvm.org/D10921 llvm-svn: 242016
* [mips] Explained the 'w' modifier in the Inline Assembler documentation.Daniel Sanders2015-07-131-2/+5
| | | | | | | | It exists for compatibility with GCC which requires it to print MSA registers for the 'f' constraint. Although LLVM doesn't need it, the 'w' modifier should still be used for portability between the two compilers. llvm-svn: 242015
* [Mips] Support MIPS big-endian 32/64-bits targetsSimon Atanasyan2015-07-1320-60/+1017
| | | | llvm-svn: 242014
* profile: Autoconf build system support for r241824Justin Bogner2015-07-132-2/+2
| | | | | | | r241824 didn't update the autoconf build system to handle the new file in the profile library. llvm-svn: 242013
* Set the linkage before setting the visibility.Rafael Espindola2015-07-133-11/+30
| | | | | | | | | Otherwise the visibility setting code would not know that a given function was available_externally. Fixes PR24097. llvm-svn: 242012
* [LSR] don't attempt to promote ephemeral values to indvarsJingyue Wu2015-07-133-2/+63
| | | | | | | | | | | | | | | | | Summary: This at least saves compile time. I also encountered a case where ephemeral values affect whether other variables are promoted, causing performance issues. It may be a bug in LSR, but I didn't manage to reduce it yet. Anyhow, I believe it's in general not worth considering ephemeral values in LSR. Reviewers: atrick, hfinkel Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11115 llvm-svn: 242011
* Intrin.h: Don't invade the program's namespaceDavid Majnemer2015-07-131-34/+34
| | | | | | | The program is permitted to have stuff like '#define x' in it so avoid using identifiers not reserved for the implementation. llvm-svn: 242010
* Intrin.h: Clean up our atomic intrinsicsDavid Majnemer2015-07-131-43/+31
| | | | | | | | | | | | | | Three things: - The atomic intrinsics mandate memory barriers, let's start emitting some. - We don't need to manually create RMW operations, we can just do __atomic_fetch_foo instead of performing __atomic_foo_fetch and undoing foo. - Don't use inline assembly, we don't need it for these intrinsics. This fixes PR24101. llvm-svn: 242009
* [InstSimplify] Teach InstSimplify how to simplify extractelementDavid Majnemer2015-07-137-58/+142
| | | | llvm-svn: 242008
* [InstSimplify] Teach InstSimplify how to simplify extractvalueDavid Majnemer2015-07-135-10/+68
| | | | llvm-svn: 242007
* Make COFF linker work when it's built by clang again.Nico Weber2015-07-132-8/+3
| | | | | | | | clang-cl doesn't compile std::atomic_flag correctly (PR24101). Since the COFF linker doesn't use threads yet, just revert r241420 and r241481 for now to work around this clang-cl bug. llvm-svn: 242006
* Fix clang/unittests/ASTMatchers/Dynamic/Makefile. clangDynamicASTMatchers ↵NAKAMURA Takumi2015-07-131-1/+3
| | | | | | should be linked in advance of clangAST and clangASTMatchers. llvm-svn: 242005
* Fix lld tests with LLVM_ENABLE_THREADS disabled.Nico Weber2015-07-131-30/+60
| | | | | | | | | | | | With LLVM_ENABLE_THREADS disabled, all the llvm code assumes that it runs on a single thread and doesn't use any mutexes. lld still spawned lots of threads in that case and called into llvm, assuming that llvm is thread-safe. As fix, let lld use only a single thread if LLVM_ENABLE_THREADS is disabled. I left in all the mutexes in lld. That means lld is a bit slower than necessary in single-thread mode, but that's probably worth the simpler code. llvm-svn: 242004
* sanitizer_common: Only use _ReadWriteBarrier when targeting MSVC cl.exe.Peter Collingbourne2015-07-131-1/+1
| | | | | | Fixes check-ubsan when self hosting on Windows. llvm-svn: 242003
* sanitizer_common: Fix implementation of bit count operations on 64-bit Windows.Peter Collingbourne2015-07-131-11/+9
| | | | llvm-svn: 242002
* Minor simplification, no functionality change.Richard Smith2015-07-122-17/+3
| | | | llvm-svn: 242001
* [modules] Improve performance when there is a local declaration of an entityRichard Smith2015-07-126-149/+207
| | | | | | | | before the first imported declaration. We don't need to track all formerly-canonical declarations of an entity; it's sufficient to track those ones for which no other formerly-canonical declaration was imported into the same module. We call those ones "key declarations", and use them as our starting points for collecting redeclarations and performing namespace lookups. llvm-svn: 241999
* [Sema] If lvalue to rvalue reference cast is valid don't emit diagnostic.Davide Italiano2015-07-122-2/+12
| | | | | | | | | | | | | In the test, y1 is not reference compatible to y2 and we currently assume the cast is ill-formed so we emit a diagnostic. Instead, in order to honour the standard, if y1 it's not reference-compatible to y2 then it can't be converted using a static_cast, and a reinterpret_cast should be tried instead. Richard Smith provided the correct interpretation of the standard and explanation about the subtle difference between "can't be cast" and "the cast is ill-formed". The former applies in this case. PR: 23802 llvm-svn: 241998
* Fix PR24099 reported by Tomas Brukner.Yaron Keren2015-07-121-1/+1
| | | | llvm-svn: 241997
* [ARM] Add support for nest attribute using r12Renato Golin2015-07-122-0/+24
| | | | | | | | | | | | | | | | Register r12 ('ip') is used by GCC for this purpose and hence is used here. As discussed on the GCC mailing list, the register choice is an ABI issue and so choosing the same register as GCC means __builtin_call_with_static_chain is compatible. A similar patch has just gone in the AArch64 backend, so this is just the ARM counterpart, following the same discussion. Patch by Stephen Cross. llvm-svn: 241996
* [X86][SSE] Tidied up vector extend/truncation tests. NFCI.Simon Pilgrim2015-07-124-79/+81
| | | | llvm-svn: 241995
* [X86][SSE] (V)PMINSB is commutable.Simon Pilgrim2015-07-121-3/+0
| | | | | | (V)PMINSB is no different to the other (V)PMIN/(V)PMAX B/D/W instructions - it is fully commutable. llvm-svn: 241994
* Remove include directive for the unused libunwind_ext.h.Logan Chien2015-07-121-4/+0
| | | | llvm-svn: 241993
* Tweak libclang's users, c-arcmt-test, c-index-test and libclangTests to ↵NAKAMURA Takumi2015-07-123-0/+12
| | | | | | satisfy LDFLAGS=-static. llvm-svn: 241992
* Reformat Makefile.NAKAMURA Takumi2015-07-123-3/+18
| | | | llvm-svn: 241991
* Trim trailing whitespaces. NFC.Simon Pilgrim2015-07-121-3/+3
| | | | llvm-svn: 241990
* [X86][SSE] Vectorized v4i32 non-uniform shifts.Simon Pilgrim2015-07-129-385/+332
| | | | | | | | | | While the v4i32 shl operation is already vectorized using a cvttps2dq/pmulld pattern, the lshr/ashr opeations are still scalarized. This patch adds vectorization support for non-uniform v4i32 shift operations - it splats constant shift amounts to allow them to use the immediate sse shift instructions, or extracts/zero-extends non-constant shift amounts. The individual results are then blended together. Differential Revision: http://reviews.llvm.org/D11063 llvm-svn: 241989
* elf: Make error output from AtomSection<ELFT>::write() deterministic.Nico Weber2015-07-122-12/+19
| | | | | | | | | | | | | | | | The function uses parallel_for() and then writes error messages from the parallel loop's body. This produces nondetermistic error messages. Instead, copy error messages to a vector and sort it by the atom's file offsets before printing all error messages after the parallel_for(). This results in a few string copies, but only in the error case. (And passing tests seem more important than performance.) This makes tests elf/AArch64/rel-prel16-overflow.test and elf/AArch64/rel-prel32-overflow.test pass on Windows: Both tests check that atom error messages are emitted in a certain order, and on Windows they happened to be emitted in a different order before this patch. llvm-svn: 241988
* [LICM] Don't try to sink values out of loops without any exitsDavid Majnemer2015-07-122-1/+31
| | | | | | | | | | | | | There is no suitable basic block to sink instructions in loops without exits. The only way an instruction in a loop without exits can be used is as an incoming value to a PHI. In such cases, the incoming block for the corresponding value is unreachable. This fixes PR24013. Differential Revision: http://reviews.llvm.org/D10903 llvm-svn: 241987
* clang-format: Add Mozilla brace breaking styleBirunthan Mohanathas2015-07-126-1/+59
| | | | | | Differential Revision: http://reviews.llvm.org/D10883 llvm-svn: 241986
* [PowerPC] Make use of the TargetRecip systemHal Finkel2015-07-124-15/+62
| | | | | | | | | | r238842 added the TargetRecip system for controlling use of reciprocal estimates for sqrt and division using a set of parameters that can be set by the frontend. Clang now supports a sophisticated -mrecip option, and this will allow that option to effectively control the relevant code-generation functionality of the PPC backend. llvm-svn: 241985
* [PowerPC] Support the nest parameter attributeHal Finkel2015-07-125-16/+119
| | | | | | | | | | | | | This adds support for the 'nest' attribute, which allows the static chain register to be set for functions calls under non-Darwin PPC/PPC64 targets. r11 is the chain register (which the PPC64 ELF ABI calls the "environment pointer"). For indirect calls under PPC64 ELFv1, this would normally be loaded from the function descriptor, but providing an explicit 'nest' parameter will override that process and use the value provided. This allows __builtin_call_with_static_chain to work as expected on PowerPC. llvm-svn: 241984
* Revert "[ExecutionEngine] Use std::function rather than a function pointer ↵Renato Golin2015-07-112-70/+3
| | | | | | | | | | | | | for the LazyFunctionCreator." This reverts commit r241962, as it was breaking all ARM buildbots. It also reverts the two subsequent related commits: r241974: "[ExecutionEngine] Add a static cast to the unittest for r241962 to suppress a warning." r241973: "[ExecutionEngine] Remove cruft and fix a couple of warnings in the test case for r241962." llvm-svn: 241983
* Revert "Revert r236894 "[BasicAA] Fix zext & sext handling""Hal Finkel2015-07-113-60/+396
| | | | | | | | | | | r236894 caused PR23626 (Clang miscompiles webkit's base64 decoder), and was reverted in r237984. This reapplies the patch with an additional test case for PR23626 and the associated fix (both scales and offsets in the BasicAliasAnalysis::constantOffsetHeuristic should initially be zero). Patch by Nick White, thanks! llvm-svn: 241981
* Move getStrideFromPointer and friends from LoopVectorize to VectorUtilsHal Finkel2015-07-113-137/+169
| | | | | | | | | | | | | | | | The following functions are moved from the LoopVectorizer to VectorUtils: - getGEPInductionOperand - stripGetElementPtr - getUniqueCastUse - getStrideFromPointer These used to be static functions in LoopVectorize, but will also be used by the upcoming loop versioning LICM transformation. Patch by Ashutosh Nema! llvm-svn: 241980
* Add argmemonly attribute.Igor Laevsky2015-07-1117-35/+167
| | | | | | | | This change adds new attribute called "argmemonly". Function marked with this attribute can only access memory through it's argument pointers. This attribute directly corresponds to the "OnlyAccessesArgumentPointees" ModRef behaviour in alias analysis. Differential Revision: http://reviews.llvm.org/D10398 llvm-svn: 241979
* Fix include guard typo introduced in r239315.Yaron Keren2015-07-111-1/+1
| | | | llvm-svn: 241978
* Define a new intrinsic @llvm.canonicalize.Owen Anderson2015-07-112-0/+71
| | | | | | | | This is used the canonicalize floating point values, which is useful for implementing certain numeric primitives. See the LangRef changes for the full details of its semantics. llvm-svn: 241977
* clang-format: Extend vim integration so that a line range can be passed in.Daniel Jasper2015-07-111-2/+16
| | | | llvm-svn: 241976
* [PM/AA] Completely remove the AliasAnalysis::copyValue interface.Chandler Carruth2015-07-1111-45/+1
| | | | | | | | | | | | | | | | | | | | | No in-tree alias analysis used this facility, and it was not called in any particularly rigorous way, so it seems unlikely to be correct. Note that one of the only stateful AA implementations in-tree, GlobalsModRef is completely broken currently (and any AA passes like it are equally broken) because Module AA passes are not effectively invalidated when a function pass that fails to update the AA stack runs. Ultimately, it doesn't seem like we know how we want to build stateful AA, and until then trying to support and maintain correctness for an untested API is essentially impossible. To that end, I'm planning to rip out all of the update API. It can return if and when we need it and know how to build it on top of the new pass manager and as part of *tested* stateful AA implementations in the tree. Differential Revision: http://reviews.llvm.org/D10889 llvm-svn: 241975
* [ExecutionEngine] Add a static cast to the unittest for r241962 to suppress aLang Hames2015-07-111-1/+1
| | | | | | warning. llvm-svn: 241974
* [ExecutionEngine] Remove cruft and fix a couple of warnings in the test case forLang Hames2015-07-111-3/+2
| | | | | | r241962. llvm-svn: 241973
* Renamed some uses of unroll to interleave in the vectorizer.Tyler Nowicki2015-07-112-93/+100
| | | | llvm-svn: 241971
* MC: Shrink MCDwarfLoc/MCLineEntryDuncan P. N. Exon Smith2015-07-101-9/+18
| | | | | | | | | | | | Drop 8 bytes off of `MCDwarfLoc` by restricting the `Isa`, `Column`, and `Flags` members to appropriate sizes (from `DWARFDebugLine::Row`). Saves a little over 0.5% off the heap of llc with no real functionality change. (I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`; see r236629 for details.) llvm-svn: 241970
* Clean up the comments in DIBuilder.h to adhere to the coding standardsAdrian Prantl2015-07-101-315/+318
| | | | | | a little more. llvm-svn: 241969
* Revert "Clean up the comments in DIBuilder.h to adhere to the coding standards"Adrian Prantl2015-07-101-325/+315
| | | | | | This reverts commit 241965. (I accidentally committed too much). llvm-svn: 241968
* [libcxx] LWG2420 bits for bind<void> - Patch from K-BalloEric Fiselier2015-07-103-9/+26
| | | | | | | Implemented LWG2420 bits for bind<void> Review: http://reviews.llvm.org/D10997 llvm-svn: 241967
* Cleanup a couple of comments in DIBuilder.cppAdrian Prantl2015-07-101-3/+3
| | | | llvm-svn: 241966
* Clean up the comments in DIBuilder.h to adhere to the coding standardsAdrian Prantl2015-07-101-315/+325
| | | | | | a little more. llvm-svn: 241965
OpenPOWER on IntegriCloud