summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Exclude several ASan tests from test suite if we're using GCCAlexey Samsonov2014-05-166-1/+17
| | | | llvm-svn: 209013
* Fix a warning in builds without asserts.Rafael Espindola2014-05-161-2/+1
| | | | llvm-svn: 209012
* Fix from: Scott Knight(knightsc@gmail.com):Jim Ingham2014-05-161-14/+9
| | | | | | | Use a map rather than a vector to store the objects managed by the shared cluster since mostly want this for random lookup, so the map is much faster. llvm-svn: 209010
* DebugInfo: Add an assert regarding the subprogram in the subprogram map ↵David Blaikie2014-05-161-0/+1
| | | | | | | | | | matching the abstract subprogram. I'm not sure this is how it'll be going forward (I'd rather prefer the definition to be in the main SP mapping, for various reasons) but this helps me understand how it is today. llvm-svn: 209009
* Update for llvm api change.Rafael Espindola2014-05-1611-58/+71
| | | | | | | | | | Now that llvm cannot represent alias cycles, we have to diagnose erros just before trying to close the cycle. This degrades the errors a bit. The real solution is what it was before: if we want to provide good errors for these cases, we have to be able to find a clang level decl given a mangled name and produce the error from Sema. llvm-svn: 209008
* Fix most of PR10367.Rafael Espindola2014-05-1641-156/+308
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch changes the design of GlobalAlias so that it doesn't take a ConstantExpr anymore. It now points directly to a GlobalObject, but its type is independent of the aliasee type. To avoid changing all alias related tests in this patches, I kept the common syntax @foo = alias i32* @bar to mean the same as now. The cases that used to use cast now use the more general syntax @foo = alias i16, i32* @bar. Note that GlobalAlias now behaves a bit more like GlobalVariable. We know that its type is always a pointer, so we omit the '*'. For the bitcode, a nice surprise is that we were writing both identical types already, so the format change is minimal. Auto upgrade is handled by looking through the casts and no new fields are needed for now. New bitcode will simply have different types for Alias and Aliasee. One last interesting point in the patch is that replaceAllUsesWith becomes smart enough to avoid putting a ConstantExpr in the aliasee. This seems better than checking and updating every caller. A followup patch will delete getAliasedGlobal now that it is redundant. Another patch will add support for an explicit offset. llvm-svn: 209007
* [ASTMatchers] Move the 'isImplicit' matcher from CXXConstructorDecl to Decl.Joey Gouly2014-05-162-6/+9
| | | | llvm-svn: 209006
* Merge a couple of copy-and-pasted functionsAlp Toker2014-05-162-59/+31
| | | | | | No change in functionality. llvm-svn: 209005
* DebugInfo: Assume the CU's Subprogram list only contains definitions.David Blaikie2014-05-165-8/+5
| | | | | | | | | | | DIBuilder maintains this invariant and the current DwarfDebug code could end up doing weird things if it contained declarations (such as putting the definition DIE inside a CU that contained the declaration - this doesn't seem like a good idea, so rather than adding logic to handle this case we'll just ban in for now & cross that bridge if we come to it later). llvm-svn: 209004
* [CMake] Don't build libcxx_tsan with compilers other than ClangAlexey Samsonov2014-05-162-2/+4
| | | | llvm-svn: 209003
* Rename SourceManager::createFileIDForMemBuffer()Alp Toker2014-05-168-13/+12
| | | | | | | | It makes more sense to just overload createFileID(). Gardening only. llvm-svn: 209002
* [ARM64] Increases the Sched Model accuracy for Cortex-A53.Chad Rosier2014-05-168-53/+249
| | | | | | | Patch by Dave Estes <cestes@codeaurora.org> http://reviews.llvm.org/D3769 llvm-svn: 209001
* InstSimplify: Improve handling of ashr/lshrDavid Majnemer2014-05-162-1/+61
| | | | | | | | | | | | | | Summary: Analyze the range of values produced by ashr/lshr cst, %V when it is being used in an icmp. Reviewers: nicholas Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D3774 llvm-svn: 209000
* InstSimplify: Optimize using dividend in sdivDavid Majnemer2014-05-162-0/+13
| | | | | | | | | | | | | | | Summary: The dividend in an sdiv tells us the largest and smallest possible results. Use this fact to optimize comparisons against an sdiv with a constant dividend. Reviewers: nicholas Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D3795 llvm-svn: 208999
* [ARM64] Fix wrong comment in load/store optimization pass.Tilmann Scheller2014-05-161-1/+1
| | | | | | | | | | | | | | | | ldr x1, [x0, #64] add x0, x0, #64 -> ldr x1, [x0], #64 is not a valid transformation, the correct transformation (and what the code actually does) is: ldr x1, [x0, #64] add x0, x0, #64 -> ldr x1, [x0, #64]! llvm-svn: 208998
* DwarfDebug: Refactor AT_ranges/AT_high_pc+AT_low_pc emission into helper ↵David Blaikie2014-05-162-39/+19
| | | | | | function. llvm-svn: 208997
* [yaml2obj][ELF] Add an optional `Size` field to the YAML section declaration.Simon Atanasyan2014-05-166-2/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now the only method to configure ELF section's content and size is to assign a hexadecimal string to the `Content` field. Unfortunately this way is completely useless when you need to declare a really large section. To solve this problem this patch adds one more optional field `Size` to the `RawContentSection` structure. When yaml2obj generates an ELF file it uses the following algorithm: 1. If both `Content` and `Size` fields are missed create an empty section. 2. If only `Content` field is missed take section length from the `Size` field and fill the section by zero. 3. If only `Size` field is missed create a section using data from the `Content` field. 4. If both `Content` and `Size` fields are provided validate that the `Size` value is not less than size of `Content` data. Than take section length from the `Size`, fill beginning of the section by `Content` and the rest by zero. Examples -------- * Create a section 0x10000 bytes long filled by zero Name: .data Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] Size: 0x10000 * Create a section 0x10000 bytes long starting from 'CA' 'FE' 'BA' 'BE' Name: .data Type: SHT_PROGBITS Flags: [ SHF_ALLOC ] Content: CAFEBABE Size: 0x10000 The patch reviewed by Michael Spencer. llvm-svn: 208995
* Re-enable inline memcpy expansion for Thumb1.James Molloy2014-05-164-11/+65
| | | | | | Patch by Moritz Roth! llvm-svn: 208994
* Small dyn_cast and auto cleanup.Rafael Espindola2014-05-161-3/+3
| | | | llvm-svn: 208993
* Fix the Load/Store optimization pass to work with Thumb1.James Molloy2014-05-165-41/+286
| | | | | | Patch by Moritz Roth! llvm-svn: 208992
* Enable the Load/Store optimization pass for Thumb1 but make it return ↵James Molloy2014-05-162-8/+14
| | | | | | | | immediately for now. Patch by Moritz Roth! llvm-svn: 208991
* Fix a few comment typos and style issues.James Molloy2014-05-161-16/+17
| | | | | | Patch by Moritz Roth! llvm-svn: 208990
* [ASan/Win] Refactor __interception::OverrideFunction a bit, allow the ↵Timur Iskhodzhanov2014-05-161-49/+72
| | | | | | | | orig_old_func parameter to be zero Reviewed at http://reviews.llvm.org/D3798 llvm-svn: 208989
* Tooling: use stderr, not stdout for missing command line messagesAlp Toker2014-05-161-2/+2
| | | | | | Matches other tooling output that use stderr. llvm-svn: 208988
* [mips][mips64r6] Add SELEQZ and SELNEZ instructionsZoran Jovanovic2014-05-163-2/+19
| | | | | | Differential Revision: http://reviews.llvm.org/D3743 llvm-svn: 208987
* Initializer list is unavailable. Use the constructor instead.NAKAMURA Takumi2014-05-161-2/+3
| | | | llvm-svn: 208986
* clang-tidy/misc/UseOverride.cpp: Appease targeting msvc.NAKAMURA Takumi2014-05-161-1/+1
| | | | | | With IsLateTemplateParsed, FunctionDecl::doesThisDeclarationHaveABody() returns True regardless of Body. llvm-svn: 208985
* Update for llvm API change.Rafael Espindola2014-05-165-16/+17
| | | | llvm-svn: 208984
* Change the GlobalAlias constructor to look a bit more like GlobalVariable.Rafael Espindola2014-05-1610-28/+42
| | | | | | | This is part of the fix for pr10367. A GlobalAlias always has a pointer type, so just have the constructor build the type. llvm-svn: 208983
* Do not require the triple to be hard-codedDeepak Panickal2014-05-163-8/+10
| | | | llvm-svn: 208982
* [mips][mips64r6] Add Compact indexed jumps.Zoran Jovanovic2014-05-167-2/+85
| | | | | | Differential Revision: http://reviews.llvm.org/D3707 llvm-svn: 208981
* Fix hardcoded slash to native path seperator which was exposed from ↵Yaron Keren2014-05-164-2/+14
| | | | | | | | llvm::sys::path. http://reviews.llvm.org/D3687 llvm-svn: 208980
* Update clang-tidy documentation.Alexander Kornienko2014-05-162-29/+55
| | | | | | | | | | | | | | | | Summary: Updated the help message, updated description of -checks=, removed mentions of -disable-checks. Reviewers: klimek Reviewed By: klimek Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D3793 llvm-svn: 208979
* Revert "Implement global merge optimization for global variables."Rafael Espindola2014-05-1620-448/+68
| | | | | | | | | | | | This reverts commit r208934. The patch depends on aliases to GEPs with non zero offsets. That is not supported and fairly broken. The good news is that GlobalAlias is being redesigned and will have support for offsets, so this patch should be a nice match for it. llvm-svn: 208978
* [mips][mips64r6] Add Compact zero-compare branch-and-link instructionsZoran Jovanovic2014-05-163-6/+49
| | | | | | Differential Revision: http://reviews.llvm.org/D3718 llvm-svn: 208977
* MergeFunctions Pass, introduced total ordering among GEP operations.Stepan Dyatkovskiy2014-05-161-23/+41
| | | | | | | | | | Patch replaces old isEquivalentGEP implementation, and changes type of comparison result from bool (equal or not) to {-1, 0, 1} (less, equal, greater). This patch belongs to patch series that improves MergeFunctions performance time from O(N*N) to O(N*log(N)). llvm-svn: 208976
* MC: Add DwarfTypesDWOSection also to MCCOFF.NAKAMURA Takumi2014-05-161-0/+4
| | | | llvm-svn: 208975
* [mips][mips64r6] Add compact branch instructionsZoran Jovanovic2014-05-168-10/+256
| | | | | | Differential Revision: http://reviews.llvm.org/D3691 llvm-svn: 208974
* MergeFunctions Pass, introduced total ordering among operations.Stepan Dyatkovskiy2014-05-161-50/+135
| | | | | | | | | | Patch replaces old isEquivalentOperation implementation, and changes type of comparison result from bool (equal or not) to {-1, 0, 1} (less, equal, greater). This patch belongs to patch series that improves MergeFunctions performance time from O(N*N) to O(N*log(N)). llvm-svn: 208973
* Initial commit of LLDB Machine Interface Frontend.Deepak Panickal2014-05-16148-0/+29083
| | | | | | | | | | - Tested with Eclipse, likely to work with other GDB/MI compatible GUIs. - Some but not all MI commands have been implemented. See MIReadme.txt for more info. - Written from scratch, no GPL code, based on LLDB Public API. - Built for Linux, Windows and OSX. Tested on Linux and Windows. - GDB/MI Command Reference, https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI.html llvm-svn: 208972
* [mips][mips64r6] Add LWPC and LWUPC instructionsZoran Jovanovic2014-05-164-4/+15
| | | | | | Differential Revision: http://reviews.llvm.org/D3788 llvm-svn: 208971
* [mips][mips64r6] Add Floating Point Compare setting Mask - CMP.condn.fmtZoran Jovanovic2014-05-164-2/+175
| | | | | | Differential Revision: http://reviews.llvm.org/D3750 llvm-svn: 208970
* TableGen: fix operand counting for aliasesTim Northover2014-05-1621-243/+124
| | | | | | | | | | | | | | | | | | | | | TableGen has a fairly dubious heuristic to decide whether an alias should be printed: does the alias have lest operands than the real instruction. This is bad enough (particularly with no way to override it), but it should at least be calculated consistently for both strings. This patch implements that logic: first get the *correct* string for the variant, in the same way as the Matcher, without guessing; then count the number of whitespace chars. There are basically 4 changes this brings about after the previous commits; all of these appear to be good, so I have changed the tests: + ARM64: we print "neg X, Y" instead of "sub X, xzr, Y". + ARM64: we skip implicit "uxtx" and "uxtw" modifiers. + Sparc: we print "mov A, B" instead of "or %g0, A, B". + Sparc: we print "fcmpX A, B" instead of "fcmpX %fcc0, A, B" llvm-svn: 208969
* ARM64: disable printing of "fcmXY ..., #0" aliasesTim Northover2014-05-161-2/+2
| | | | | | | | | The canonical syntax is "fcmXY ..., #0.0". This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208968
* AArch64: disable printing of add/sub aliasTim Northover2014-05-161-1/+2
| | | | | | | | | | This alias appears not to have an appropriate PrintMethod. Normally, I'd look into it, but since AArch64 is disappearing soon it's probably not worth it. This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208967
* Sparc: disable printing of jmp/call aliases (C++ does it)Tim Northover2014-05-161-4/+4
| | | | | | | | | | These aliases are handled entirely in C++ and only having TableGen InstAliases for some of them was confusing LLVM. This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208966
* Sparc: disable printing on longer "brX,pt" aliasesTim Northover2014-05-161-2/+2
| | | | | | | This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208965
* Mips: don't print subu alias for addiuTim Northover2014-05-161-2/+2
| | | | | | | | | | Certainly not without having a custom PrintMethod to invert the immediate beforehand. But probably not at all. This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208964
* X86: disable printing of bare "mov" aliasesTim Northover2014-05-161-3/+3
| | | | | | | | | | | In AT&T syntax, we should probably print the full "movl" or "movw". TableGen used to ignore these aliases because it was miscounting the number of operands. This fixes the issue. This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208963
* AArch64: disable printing of MOV -> MOVZ aliasesTim Northover2014-05-161-1/+1
| | | | | | | | | | Actually, MOV sometimes is canonical, but for now this is a better approximation than what's there. This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208962
OpenPOWER on IntegriCloud