summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use std::bitset for SubtargetFeaturesMichael Kuperstein2015-03-2433-308/+348
| | | | | | | | | | | | | Previously, subtarget features were a bitfield with the underlying type being uint64_t. Since several targets (X86 and ARM, in particular) have hit or were very close to hitting this bound, switching the features to use a bitset. No functional change. The first time this was committed (r229831), it caused several buildbot failures. At least some of the ARM ones were due to gcc/binutils issues, and should now be fixed. Differential Revision: http://reviews.llvm.org/D8542 llvm-svn: 233055
* [Mips] Fix typo in the error messageSimon Atanasyan2015-03-244-4/+4
| | | | llvm-svn: 233054
* Silence unused warning in non-assert builds.Daniel Jasper2015-03-241-0/+1
| | | | llvm-svn: 233053
* [modules] Deserialize CXXCtorInitializer list for a constructor lazily.Richard Smith2015-03-2418-138/+360
| | | | | | | | | | | | | Previously we'd deserialize the list of mem-initializers for a constructor when we deserialized the declaration of the constructor. That could trigger a significant amount of unnecessary work (pulling in all base classes recursively, for a start) and was causing problems for the modules buildbot due to cyclic deserializations. We now deserialize these on demand. This creates a certain amount of duplication with the handling of CXXBaseSpecifiers; I'll look into reducing that next. llvm-svn: 233052
* [ELF/X86_64] Fix handling of R_X86_64_GOTTPOFF relocation.Davide Italiano2015-03-242-0/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | The aforementioned relocation generate a GOT entry with a R_X86_64_TPOFF64. The new relocation is processed at startup time by the loader. lld didn't generate the outstanding relocation, now it does. This bug was found while trying to link ls(1) on FreeBSD. Simplified repro: #include <stdio.h> #include <wchar.h> #include <wctype.h> int main(void) { wchar_t wc = 98; if (!iswprint(wc)) printf("blah\n"); else printf("foo\n"); return (0); } which incorrectly outputs "blah" when linked with lld before this patch. llvm-svn: 233051
* A couple of readASTFileSignature improvements (NFC)Ben Langmuir2015-03-243-22/+18
| | | | | | | | | | * Strength reduce a std::function to a function pointer, * Factor out checking the AST file magic number, * Add a brief doc comment to readAStFileSignature Thanks to Chandler for spotting these oddities. llvm-svn: 233050
* [Orc] Move delta-handling for trampoline sizes into the resolver block.Lang Hames2015-03-243-4/+4
| | | | | | | This is the first step towards adding a target-independent callback handler API. llvm-svn: 233049
* [Orc] Whitespace fix. NFC.Lang Hames2015-03-241-2/+2
| | | | llvm-svn: 233048
* [Orc] Use std::string to capture name by value.Lang Hames2015-03-241-1/+1
| | | | | | | | This just updates the code to reflect the comment, but this bug actually hit the out-of-tree lazy demo. I'm working on a patch to add the lazy-demo's functionality to lli so that we can test this in-tree soon. llvm-svn: 233047
* [modules] More removal of unnecessary deserialization of lexical decls.Richard Smith2015-03-241-2/+0
| | | | | | | | Even if we have no external visible declarations, we may still have external lexical decls that lookup() would import to fill its lookup table. It's simpler and faster to always take the no-deserialization path through noload_lookup. llvm-svn: 233046
* When looking for lexical decls from an external source, check all contextsRichard Smith2015-03-242-16/+22
| | | | | | | | rather than just the primary context. This is technically correct but results in no functionality change (in Clang nor LLDB) because all users of this functionality only use it on single-context DCs. llvm-svn: 233045
* [TSan] Disable -Wno-maybe-uninitialized in yet another place.Alexey Samsonov2015-03-241-0/+1
| | | | llvm-svn: 233044
* Cleanup: no need to pass DefinitionKind into ParseCXXInlineMethodDefEli Bendersky2015-03-233-7/+5
| | | | | | | | | | All ParseCXXInlineMethodDef does with it is assign it on the ParsingDeclarator. Since that is passed in as well, the (single) caller may as well set the DefinitionKind, thus simplifying the code. No change in functionality. llvm-svn: 233043
* [TSan] Fixup for r233038: restrict the -Wno-maybe-uninitialized flag to GCC ↵Alexey Samsonov2015-03-231-2/+3
| | | | | | only. llvm-svn: 233042
* Fix format compilation warning in PlatformAndroidRemoteGDBServer.cpp.Oleksiy Vyalov2015-03-231-1/+1
| | | | llvm-svn: 233041
* [ASan] Remove XFAIL from now passing test.Alexey Samsonov2015-03-231-1/+1
| | | | llvm-svn: 233040
* [TSan] Disable noisy GCC warning.Alexey Samsonov2015-03-231-0/+1
| | | | llvm-svn: 233038
* [sanitizer] instead of comparing pointers to module_names while initializing ↵Kostya Serebryany2015-03-231-10/+12
| | | | | | coverage do a proper strcmp and strdup. NFC llvm-svn: 233037
* [UBSan] Use shared library for UBSan on OS X (compiler-rt part).Alexey Samsonov2015-03-234-37/+61
| | | | | | | | | | | | | | | | Summary: Switch to shared library for UBSan. Add support for building UBSan on OSX and iossim by cargo-culting ASan build rules. Test Plan: regression test suite Reviewers: zaks.anna, kubabrecka Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8473 llvm-svn: 233036
* [UBSan] Use shared library for UBSan on OS X (Clang part).Alexey Samsonov2015-03-234-39/+44
| | | | | | | | | | | | | | | | | | Summary: UBSan is now used in the same way as ASan, and is supported on OSX and on iOS simulator. At the moment ASan and UBSan can't be used together due to PR21112, but I hope to resolve it soon by embedding UBSan into ASan. Test Plan: regression test suite. Reviewers: zaks.anna, kubabrecka Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D8471 llvm-svn: 233035
* Turn off 'quit' confirmation in lldb-miIlia K2015-03-236-5/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: # Turn off interpreter.prompt-on-quit on startup (MI) # Add CommandInterpreter::SetPromptOnQuit # Add SBCommandInterpreter::GetPromptOnQuit/SetPromptOnQuit All tests pass on OS X. Test Plan: ``` -file-exec-and-symbols ~/p/hello -break-insert -f main -exec-run -interpreter-exec console quit ``` Reviewers: abidh, clayborg Reviewed By: abidh, clayborg Subscribers: lldb-commits, clayborg, abidh Differential Revision: http://reviews.llvm.org/D8444 llvm-svn: 233034
* [SelectionDAG] Fixed issue with uitofp vector constant folding being treated ↵Simon Pilgrim2015-03-232-4/+17
| | | | | | | | | | | | | | | | | | | | | | | as sitofp While the uitofp scalar constant folding treats an integer as an unsigned value (from lang ref): %X = sitofp i8 -1 to double ; yields double:-1.0 %Y = uitofp i8 -1 to double ; yields double:255.0 The vector constant folding was always using sitofp: %X = sitofp <2 x i8> <i8 -1, i8 -1> to <2 x double> ; yields <double -1.0, double -1.0> %Y = uitofp <2 x i8> <i8 -1, i8 -1> to <2 x double> ; yields <double -1.0, double -1.0> This patch fixes this so that the correct opcode is used for sitofp and uitofp. %X = sitofp <2 x i8> <i8 -1, i8 -1> to <2 x double> ; yields <double -1.0, double -1.0> %Y = uitofp <2 x i8> <i8 -1, i8 -1> to <2 x double> ; yields <double 255.0, double 255.0> Differential Revision: http://reviews.llvm.org/D8560 llvm-svn: 233033
* Fix clang-tidy to not assume wrong source locations for defaulted members.Eli Bendersky2015-03-231-1/+6
| | | | | | | | | | Followup to http://reviews.llvm.org/D8465, which would break a test in clang-tidy. clang-tidy previously assumes that source locations of defaulted/deleted members are (incorrectly) not including the '= ...' part. Differential Revision: http://reviews.llvm.org/D8466 llvm-svn: 233032
* Remove dead prototype DebugInfoFinder::processExpression(), NFCDuncan P. N. Exon Smith2015-03-231-3/+0
| | | | llvm-svn: 233031
* DebugInfo: Overload get() in DIDescriptor subclassesDuncan P. N. Exon Smith2015-03-234-113/+274
| | | | | | | | | | | | | | | Continue to simplify the `DIDescriptor` subclasses, so that they behave more like raw pointers. Remove `getRaw()`, replace it with an overloaded `get()`, and overload the arrow and cast operators. Two testcases started to crash on the arrow operators with this change because of `scope:` references that weren't real scopes. I fixed them. Soon I'll add verifier checks for them too. This also adds explicit dereference operators. Previously, the builtin dereference against `operator MDNode *()` would have worked, but now the builtins are ambiguous. llvm-svn: 233030
* Fix missing interfaces to scripts/Python/interface after r229110, r231858 ↵Ilia K2015-03-233-1/+28
| | | | | | | | | | | and r232891 This includes: # SBCommandInterpreter::EventIsCommandInterpreterEvent # SBModule::GetSymbolFileSpec/GetObjectFileHeaderAddress # SBTarget::EventIsTargetEvent/GetTargetFromEvent/GetNumModulesFromEvent/GetModuleAtIndexFromEvent/GetLaunchInfo/SetLaunchInfo llvm-svn: 233029
* Record correct source range for defaulted/deleted members.Eli Bendersky2015-03-234-12/+30
| | | | | | | | | | | | | | | | | | | Fixes https://llvm.org/bugs/show_bug.cgi?id=20744 struct A { A() = default; }; Previously the source range of the declaration of A ended at the ')'. It should include the '= default' part as well. The same for '= delete'. Note: this will break one of the clang-tidy fixers, which is going to be addessed in a follow-up patch. Differential Revision: http://reviews.llvm.org/D8465 llvm-svn: 233028
* Refactor how passes get a symbol at the end of a section.Rafael Espindola2015-03-238-31/+42
| | | | | | | | | | There is now a canonical symbol at the end of a section that different passes can request. This also allows us to assert that we don't switch back to a section whose end symbol has already been printed. llvm-svn: 233026
* Cleanup else-after-return and add an early-return to llvm-nmDavid Blaikie2015-03-231-71/+59
| | | | | | | | | | | | The loop and error handling in checkMachOAndArchFlags didn't make sense to me (a loop that only ever executes once? An error path that uses the element the loop stopped at (which must always be a buffer overrun if I'm reading that right?)... I'm confused) but I've made a guess at what was intended. Based on a patch by Richard Thomson to simplify boolean expressions. llvm-svn: 233025
* [AArch64, ARM] Enable GlobalMerge with -O3 rather than -O1.Ahmed Bougacha2015-03-2313-26/+27
| | | | | | | | | | | | | | | | | | | | The pass used to be enabled by default with CodeGenOpt::Less (-O1). This is too aggressive, considering the pass indiscriminately merges all globals together. Currently, performance doesn't always improve, and, on code that uses few globals (e.g., the odd file- or function- static), more often than not is degraded by the optimization. Lengthy discussion can be found on llvmdev (AArch64-focused; ARM has similar problems): http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-February/082800.html Also, it makes tooling and debuggers less useful when dealing with globals and data sections. GlobalMerge needs to better identify those cases that benefit, and this will be done separately. In the meantime, move the pass to run with -O3 rather than -O1, on both ARM and AArch64. llvm-svn: 233024
* MS ABI: lambda call operators are instance methods and should use thiscallReid Kleckner2015-03-233-8/+28
| | | | | | Fixes an issue reported by Daniel Berenyi on cfe-dev. llvm-svn: 233023
* Fix Target::Launch in case of synchronous executionIlia K2015-03-231-20/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch fixes Target::Launch in case of synchronous execution. Test Plan: # Create file with source commands: ``` $ cat start_script target create ~/p/hello process launch -s continue ``` # Run lldb and execute "command source -c 0 -s 0 start_script": ``` $ bin/lldb (lldb) command source -c 0 -s 0 start_script Executing commands in '/Users/IliaK/p/llvm/build_ninja/start_script'. (lldb) target create ~/p/hello Current executable set to '~/p/hello' (x86_64). (lldb) process launch -s Process 92028 stopped * thread #1: tid = 0x26731, 0x00007fff5fc01000 dyld`_dyld_start, stop reason = signal SIGSTOP frame #0: 0x00007fff5fc01000 dyld`_dyld_start dyld`_dyld_start: -> 0x7fff5fc01000 <+0>: popq %rdi 0x7fff5fc01001 <+1>: pushq $0x0 0x7fff5fc01003 <+3>: movq %rsp, %rbp 0x7fff5fc01006 <+6>: andq $-0x10, %rsp (lldb) Process 92028 launched: '/Users/IliaK/p/hello' (x86_64) (lldb) continue ' ` - it's \ni=1 j=2 x=3 y=4 argc: /Users/IliaK/p/hello argc: (null) Process 92028 resuming Process 92028 exited with status = 0 (0x00000000) (lldb) ``` was: ``` $ bin/lldb (lldb) command source -c 0 -s 0 start_script Executing commands in '/Users/IliaK/p/llvm/build_ninja/start_script'. (lldb) target create ~/p/hello Current executable set to '~/p/hello' (x86_64). (lldb) process launch -s Process 92100 launched: '/Users/IliaK/p/hello' (x86_64) (lldb) continue error: Process must be launched. Process 92100 stopped * thread #1: tid = 0x2699a, 0x00007fff5fc01000 dyld`_dyld_start, stop reason = signal SIGSTOP frame #0: 0x00007fff5fc01000 dyld`_dyld_start dyld`_dyld_start: -> 0x7fff5fc01000 <+0>: popq %rdi 0x7fff5fc01001 <+1>: pushq $0x0 0x7fff5fc01003 <+3>: movq %rsp, %rbp 0x7fff5fc01006 <+6>: andq $-0x10, %rsp (lldb) ``` Reviewers: jingham, clayborg Reviewed By: clayborg Subscribers: labath, lldb-commits, clayborg, jingham Differential Revision: http://reviews.llvm.org/D8541 llvm-svn: 233022
* Move ADB communications to AdbClient class - to make it accessible by other ↵Oleksiy Vyalov2015-03-235-111/+285
| | | | | | | | components. http://reviews.llvm.org/D8535 llvm-svn: 233021
* Refactor: Simplify boolean expressions in R600 targetDavid Blaikie2015-03-231-2/+2
| | | | | | | | | | Simplify boolean expressions with `true` and `false` using `clang-tidy` Patch by Richard Thomson. Differential Revision: http://reviews.llvm.org/D8520 llvm-svn: 233020
* [SDK modernizer PATCH]. Fixes a bug whereby a call to superFariborz Jahanian2015-03-233-8/+21
| | | | | | | was not converted to property-dot syntax by removing an unused code. rdar://19140267 llvm-svn: 233019
* Add target-async option in -gdb-set command (MI)Ilia K2015-03-234-1/+48
| | | | llvm-svn: 233018
* Fix/Add comments in CMICmdCmdGdbSet (MI)Ilia K2015-03-232-9/+14
| | | | llvm-svn: 233017
* [cmake] Clang's install should install clang/Config/config.hChris Bieneman2015-03-231-0/+1
| | | | llvm-svn: 233016
* Adds a warning for unrecognized argument to #pragma comment() on PS4.Yunzhong Gao2015-03-234-9/+46
| | | | | | | | | | | PS4 target recognizes the #pragma comment() syntax as in -fms-extensions, but only handles the case of #pragma comment(lib). This patch adds a warning if any other arguments are encountered. This patch also refactors the code in ParsePragma.cpp a little bit to make it more obvious that some codes are being shared between -fms-extensions and PS4. llvm-svn: 233015
* Update variable name and reuse existing variable. NFC.Rafael Espindola2015-03-231-5/+5
| | | | llvm-svn: 233014
* [AArch64] Add FileCheck that was missing from test in r232967.Chad Rosier2015-03-231-1/+1
| | | | llvm-svn: 233013
* Fix incorrect error handling of call to mbrtowc. This is PR#13759. Leaving ↵Marshall Clow2015-03-231-1/+1
| | | | | | the bug open because (1) I'm not sure that we're correct here, only better than before, and (2) no tests llvm-svn: 233012
* [UBSan] Introduce "ubsan_standalone" library (compiler-rt part).Alexey Samsonov2015-03-232-13/+27
| | | | | | | | | | | | Get rid of "libclang_rt.san" library that used to contain sanitizer_common pieces required by UBSan if it's used in a standalone mode. Instead, build two variants of UBSan runtime: "ubsan" and "ubsan_standalone" (same for "ubsan_cxx" and "ubsan_standalone_cxx"). Later "ubsan" and "ubsan_cxx" libraries will go away, as they will embedded it into corresponding ASan runtimes. llvm-svn: 233011
* [UBSan] Introduce "ubsan_standalone" library (Clang part).Alexey Samsonov2015-03-232-29/+17
| | | | | | | | | | | | Get rid of "libclang_rt.san" library that used to contain sanitizer_common pieces required by UBSan if it's used in a standalone mode. Instead, build two variants of UBSan runtime: "ubsan" and "ubsan_standalone" (same for "ubsan_cxx" and "ubsan_standalone_cxx"). Later "ubsan" and "ubsan_cxx" libraries will go away, as they will embedded it into corresponding ASan runtimes. llvm-svn: 233010
* Re-land: Generate targets for each lit suite.Chris Bieneman2015-03-232-0/+27
| | | | | | | | | | | | | | | | | | | | | Summary: This change makes CMake scan for lit suites and generate a target for each lit test suite. The targets follow the format check-<project>-<suite path>. For example: check-llvm-unit - Runs the LLVM unit tests check-llvm-codegen-arm - Runs the ARM codeine tests Note: These targets are not generated during multi-configuration generators (i.e. Xcode and Visual Studio) because target clutter impacts UI usability. * Also fixed a minor issue that Duncan pointed out to me I was passing the suite to lit twice Reviewers: chandlerc Subscribers: aemerson, llvm-commits Differential Revision: http://reviews.llvm.org/D8380 llvm-svn: 233009
* Raising minimum required CMake version to 2.8.12.2.Chris Bieneman2015-03-235-18/+8
| | | | | | This commit is in reference to the llvm-dev thread: http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-March/083672.html llvm-svn: 233008
* [modules] Fix an iterator invalidation bug found by the modules selfhost bot.Richard Smith2015-03-231-4/+8
| | | | llvm-svn: 233007
* Make Oveflow tracking more legible (CR feedback from Richard Smith on r232999)David Blaikie2015-03-231-1/+2
| | | | llvm-svn: 233006
* Refactor: Simplify boolean expressions in llvm IRDavid Blaikie2015-03-231-28/+22
| | | | | | | | | | | Simplify boolean expressions using `true` and `false` with `clang-tidy` Patch by Richard Thomson with a few other simplifications to fix else-after-returns in the surrounding code. Differential Revision: http://reviews.llvm.org/D8527 llvm-svn: 233005
* Refactor: Simplify boolean expressions in llvm SupportDavid Blaikie2015-03-231-1/+1
| | | | | | | | | | | | | Simplify boolean expressions using `true` and `false` with `clang-tidy` Patch by Richard Thomson - I dropped the parens and != 0 test, for consistency with other patches/tests like this, but I'm open to the notion that we should add the explicit non-zero test in all these sort of cases (non-bool assigned to a bool). Differential Revision: http://reviews.llvm.org/D8526 llvm-svn: 233004
OpenPOWER on IntegriCloud