summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* ARM64: disable printing of swapped compare-mask aliasesTim Northover2014-05-161-12/+12
| | | | | | | | | | You can perform (say) an fcmle operation by swapping the operands on an fcmge, but it shouldn't be printed like that. This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208961
* ARM64: disable printing of LDUR -> LDR aliasesTim Northover2014-05-161-24/+40
| | | | | | | | | | We accept "ldr w3, [x1, #-1]" as a convenience, but we should still print the canonical "ldur" form. This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208960
* ARM64: give TST aliases priority over ANDS.Tim Northover2014-05-161-10/+10
| | | | | | | | | | If an ANDS instruction has Rd == ZR it should be printed as TST since its only effect is on the flags register NZCV. This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208959
* ARM64: give MOV priority over shorter ORR when printing aliases.Tim Northover2014-05-161-11/+17
| | | | | | | | | MOV is almost always the right thing to print if possile. People understand it. This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208958
* ARM64: give NEG priority over SUB when printing aliases.Tim Northover2014-05-162-23/+21
| | | | | | | | | | For example, the full instruction "sub w0, wzr, w1, uxtw" could print as either "neg w0, w1" or "sub w0, wzr, w1". The former is better. This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208957
* ARM64: disable printing of "lslv" type aliasesTim Northover2014-05-161-1/+1
| | | | | | | | | | You can write "lslv w0, w1, w2" (probably for legacy reasons), but it should be printed as simply "lsl". This will be tested when the TableGen "should I print this Alias" heuristic is fixed (very soon). llvm-svn: 208956
* [ARM64]Implement NEON post-increment LD1(lane) and post-increment LD1R.Hao Liu2014-05-164-13/+633
| | | | llvm-svn: 208955
* Initial version of clang-tidy check to use override instead of virual.Daniel Jasper2014-05-166-1/+300
| | | | | Review: http://reviews.llvm.org/D3688 llvm-svn: 208954
* MergeFunctions Pass, introduced total ordering among function attributes.Stepan Dyatkovskiy2014-05-161-0/+36
| | | | | | | This patch belongs to patch series that improves MergeFunctions performance time from O(N*N) to O(N*log(N)). llvm-svn: 208953
* [mips][mips64r6] Add Floating Point Fused Multiply Add SubtractZoran Jovanovic2014-05-163-5/+26
| | | | | | Differential Revision: http://reviews.llvm.org/D3727 llvm-svn: 208952
* Improve a scan-build messageSylvestre Ledru2014-05-161-1/+5
| | | | llvm-svn: 208951
* clang-format assembly.hSaleem Abdulrasool2014-05-161-75/+74
| | | | | | Reformat assembly.h with clang-format. NFC. llvm-svn: 208950
* ARM: add some integer/floating point conversion libcallsSaleem Abdulrasool2014-05-162-0/+96
| | | | | | | | Add some Windows on ARM specific library calls. These are provided by msvcrt, and can be used to perform integer to floating-point conversions (and vice-versa) mirroring similar functions in the RTABI. llvm-svn: 208949
* InstrProf: Look for the PIC-version of the profile runtimeDuncan P. N. Exon Smith2014-05-162-1/+66
| | | | | | | | If `-shared` is specified, pull in a PIC-version of the profile runtime, which was added to compiler-rt in r208947. I'm hoping this will get the bots on my side. llvm-svn: 208948
* InstrProf: Create a PIC version of the profile runtimeDuncan P. N. Exon Smith2014-05-163-4/+5
| | | | | | | | | | | | These tests were XPASS-ing on Linux bots creating Mach-O, which makes sense, since the real difference is the object format. I'm hoping a short-term fix to get these tests passing on ELF is to create two copies of the runtime -- one built with -fPIC, and one without. A follow-up patch will change clang's driver to pick between them depending on whether `-shared` is specified. llvm-svn: 208947
* InstrProf: XFAIL tests from r208940 on LinuxDuncan P. N. Exon Smith2014-05-162-0/+4
| | | | | | | | | | | | According to the buildbots, the new features for shared objects don't work on ELF since it requires an -fPIC when building the profile library. XFAIL these tests for now. It's possible we'll have to build two versions of the profile library on Linux (one with -fPIC and one without), but it's not clear to me exactly how to resolve this. llvm-svn: 208946
* Add C API for thread yielding callback.Juergen Ributzka2014-05-1611-4/+110
| | | | | | | | | | | | | | | | | | | | | Sometimes a LLVM compilation may take more time then a client would like to wait for. The problem is that it is not possible to safely suspend the LLVM thread from the outside. When the timing is bad it might be possible that the LLVM thread holds a global mutex and this would block any progress in any other thread. This commit adds a new yield callback function that can be registered with a context. LLVM will try to yield by calling this callback function, but there is no guaranteed frequency. LLVM will only do so if it can guarantee that suspending the thread won't block any forward progress in other LLVM contexts in the same process. Once the client receives the call back it can suspend the thread safely and resume it at another time. Related to <rdar://problem/16728690> llvm-svn: 208945
* Push implicitly-declared allocation functions into the IdResolver. Otherwise,Richard Smith2014-05-163-3/+7
| | | | | | | declaration merging in modules is unable to find them and we get bogus errors and even crashes. llvm-svn: 208944
* Replace a fake enum class with the real thing.Richard Smith2014-05-165-213/+196
| | | | llvm-svn: 208943
* Update cstddef after clang r207606.Nico Weber2014-05-161-6/+0
| | | | | | | | | | | r207606 changed the __need_foo macros to behave like they do with gcc: If they are set, _only_ the __need_foo stuff gets defined. As a consequence, cstddef no longer defined "offsetof". It looks like the __need_foo defines aren't needed anymore, so just remove them. Fixes PR19723. llvm-svn: 208942
* Switch another write_escaped to yaml::escapeBen Langmuir2014-05-162-4/+4
| | | | | | I missed one in r206443. llvm-svn: 208941
* InstrProf: Fix shared object profilingDuncan P. N. Exon Smith2014-05-1614-13/+162
| | | | | | | | | | | | | | | | | | Change the API of the instrumented profiling library to work with shared objects. - Most things are now declared hidden, so that each executable gets its own copy. - Initialization hooks up a linked list of writers. - The raw format with shared objects that are profiled consists of a concatenated series of profiles. llvm-profdata knows how to deal with that since r208938. <rdar://problem/16918688> llvm-svn: 208940
* InstrProf: Set profile data to visibility hiddenDuncan P. N. Exon Smith2014-05-1610-42/+51
| | | | | | | | | | | | | Shared objects are fairly broken for InstrProf right now -- a follow-up commit in compiler-rt will fix the rest of this. The main problem here is that at link time, profile data symbols in the shared object might get used instead of symbols from the main executable, creating invalid profile data sections. <rdar://problem/16918688> llvm-svn: 208939
* ProfileData: Allow multiple profiles in RawInstrProfReaderJustin Bogner2014-05-163-4/+95
| | | | | | | | | | | | | | | | | | | Allow multiple raw profiles to coexist in a single .profraw file, given the following conditions: - Zero padding at the end of or between profiles will be skipped. - Each profile must start with a valid header. - Mixing endianness or pointer sizes in concatenated profiles files is not allowed. This is needed to handle cases where a program's shared libraries are profiled as well as the main executable itself, as we'll need to emit each executable's counters. Combining the tables in the runtime would be expensive for the instrumented program. rdar://16918688 llvm-svn: 208938
* Remove the Options query functions and just access our Options directly.Eric Christopher2014-05-162-23/+8
| | | | llvm-svn: 208937
* test/CodeGenCXX/dllexport.cpp: we already correctly emit b() even whenHans Wennborg2014-05-161-2/+1
| | | | | | | it's not used, because CodeGenModule::EmitGlobal consults ASTContext::DeclMustBeEmitted via CodeGenModule::MayDeferGeneration. llvm-svn: 208936
OpenPOWER on IntegriCloud