summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* IR: Use a single ModuleSlotTracker in the VerifierDuncan P. N. Exon Smith2016-04-203-6/+35
| | | | | | | | | | | | Speed up Verifier output by sharing a single ModuleSlotTracker for the duration. There should be no functionality change here except for much faster output when there's more than one statement. Now the Verifier won't be traversing the full Metadata graph every time it prints an error. The TypePrinter is still not shared, but that would take some extra plumbing. llvm-svn: 266889
* Simplify mips gp0 handling.Rafael Espindola2016-04-203-8/+4
| | | | | | In all currently supported cases this is a nop. llvm-svn: 266888
* Add warning about CR+LF line endings on Windows.Adrian McCarthy2016-04-201-9/+12
| | | | | | | | s/checkout/check out/ when used as a verb. Differential Revision: http://reviews.llvm.org/D19285 llvm-svn: 266887
* Add missing file needed for PDB unittests.Zachary Turner2016-04-201-0/+0
| | | | llvm-svn: 266886
* test infra: move test event-related handling into its own packageTodd Fiala2016-04-2014-674/+734
| | | | | | | | | | | | | | | | | | | | | | | This change moves all the test event handling and its related ResultsFormatter classes out of the packages/Python/lldbsuite/test dir into a packages/Python/lldbsuite/test_event package. Formatters are moved into a sub-package under that. I am limiting the scope of this change to just the motion and a few minor issues caught by a static Python checker (e.g. removing unused import statements). This is a pre-step for adding package-level tests to the test event system. I also intend to simplify test event results formatter selection after I make sure this doesn't break anybody. See: http://reviews.llvm.org/D19288 Reviewed by: Pavel Labath llvm-svn: 266885
* IR: Don't use raw_null_ostream in VerifierDuncan P. N. Exon Smith2016-04-201-27/+32
| | | | | | | | While using a raw_null_ostream meant that the Verifier didn't have to think about whether to print, it's actually quite expensive to print out IR. Only print if the output is going somewhere. llvm-svn: 266884
* IR: Use default member initialization in Verifier, NFCDuncan P. N. Exon Smith2016-04-201-5/+4
| | | | llvm-svn: 266883
* [Hexagon] Fix handling of lcomm directiveKrzysztof Parzyszek2016-04-202-7/+31
| | | | | | Patch by Colin LeMahieu. llvm-svn: 266882
* Re-enable "[gold-plugin] Disable name for values other than GlobalValue"Teresa Johnson2016-04-204-0/+46
| | | | | | | | | | This restores r266871 with a fix for gold tests relying on the value names, when using a release compiler, by adding a way to disable the default discarding. Update affected tests to use the new mechanism so that value names are preserved as expected, regardless of how the compiler was built. llvm-svn: 266881
* Inline canRelaxTls.Rafael Espindola2016-04-201-27/+12
| | | | | | | It was always called in a position where the relocation type was already known. llvm-svn: 266880
* Simplify canRelaxTls.Rafael Espindola2016-04-201-10/+10
| | | | | | Check isTls in the called and pass a SymbolBody&. llvm-svn: 266879
* Move canRelaxTls to Writer.cpp. NFC.Rafael Espindola2016-04-203-29/+27
| | | | llvm-svn: 266878
* [ThinLTO] Prevent importing of "llvm.used" valuesTeresa Johnson2016-04-2012-27/+101
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch prevents importing from (and therefore exporting from) any module with a "llvm.used" local value. Local values need to be promoted and renamed when importing, and their presense on the llvm.used variable indicates that there are opaque uses that won't see the rename. One such example is a use in inline assembly. See also the discussion at: http://lists.llvm.org/pipermail/llvm-dev/2016-April/098047.html As part of this, move collectUsedGlobalVariables out of Transforms/Utils and into IR/Module so that it can be used more widely. There are several other places in LLVM that used copies of this code that can be cleaned up as a follow on NFC patch. Reviewers: joker.eph Subscribers: pcc, llvm-commits, joker.eph Differential Revision: http://reviews.llvm.org/D18986 llvm-svn: 266877
* Delete needsDynRelative.Rafael Espindola2016-04-203-7/+2
| | | | | | | | It is now redundant. Writer.cpp can reason that 2 dynamic relocations are needed: one to find the final got entry address and one to fill the got entry. llvm-svn: 266876
* [RDF] Consider register as live if any alias is liveKrzysztof Parzyszek2016-04-202-2/+30
| | | | | | This only affects the recomputation of kill flags. llvm-svn: 266875
* IncludeFixerTest.cpp: Tweak not to assume clang-tools-extra were onto ↵NAKAMURA Takumi2016-04-202-1/+4
| | | | | | clang/tools/extra. llvm-svn: 266874
* [mips][microMIPS] Implement BGEC, BGEUC, BLTC, BLTUC, BEQC and BNEC instructionsZoran Jovanovic2016-04-206-24/+207
| | | | | | Differential Revision: http://reviews.llvm.org/D14206 llvm-svn: 266873
* Revert "[gold-plugin] Disable name for values other than GlobalValue"Teresa Johnson2016-04-202-41/+0
| | | | | | | | This reverts commit r266871. Setting the default based on the NDEBUG flag is causing test failures. Need to figure out whether to change this approach or update tests. llvm-svn: 266872
* [gold-plugin] Disable name for values other than GlobalValueTeresa Johnson2016-04-202-0/+41
| | | | | | | | | | | | | | | Summary: Applies Mehdi's optimization (r263086) to disable value names other than for GlobalValues to LTO/ThinLTO performed via the gold-plugin, in the same manner as it is applied in libLTO. Reviewers: rafael, joker-eph Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D19269 llvm-svn: 266871
* [include-fixer] Add a prototype for a new include fixing tool.Benjamin Kramer2016-04-2012-0/+644
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The goal of this tool is fairly simple, look up unknown identifiers in a global database and add the corresponding #include line. It accomplishes this by hooking into Sema as an ExternalSemaSource and responding to typo correction callbacks. This means we can see the unknown identifier before it's being munged by error recovery. This doesn't work perfectly yet as some typo corrections don't emit callbacks (delayed typos), but I think this is fixable. We also handle only one include at a time as this is meant to be run directly from the editing environment eventually. Adding multiple includes at the same time is tricky because of error recovery. This version only has a a dummy database, so all you can do is fixing missing includes of <string>, but the indexer to build a database will follow soon. Reviewers: djasper Subscribers: ioeric, hokein, cfe-commits Differential Revision: http://reviews.llvm.org/D19314 llvm-svn: 266870
* Always inlining PrintCurrentStackSlow of tsan library to fix tail-call issueChuang-Yu Cheng2016-04-201-0/+8
| | | | | | | | | | | | | | | | | | | | The real problem is that sanitizer_print_stack_trace obtains current PC and expects the PC to be in the stack trace after function calls. We don't prevent tail calls in sanitizer runtimes, so this assumption does not necessary hold. We add "always inline" attribute on PrintCurrentStackSlow to address this issue, however this solution is not reliable enough, but unfortunately, we don't see any simple, reliable solution. Reviewers: samsonov hfinkel kbarton tjablin dvyukov kcc http://reviews.llvm.org/D19148 Thanks Hal, dvyukov, and kcc for invaluable discussion, I have even borrowed part of dvyukov's summary as my commit message! llvm-svn: 266869
* [sanitizer] Fix 'dyld: Symbol not found: _dyldVersionNumber' link error on ↵Maxim Ostapenko2016-04-201-1/+5
| | | | | | | | | | | | | old Darwin systems. This patch fixes https://github.com/google/sanitizers/issues/669. On older Darwin systems (in particular, Darwin 10), dyld doesn't export '_dyldVersionNumber' symbol so we would have 'undefined reference' error in sanitzer library. Although sanitizers support was added to LLVM on OS X 10.7+ where '_dyldVersionNumber' symbol is already exported, GCC users still may want use them on older systems. Differential Revision: http://reviews.llvm.org/D19218 llvm-svn: 266868
* Fix xfail for test_tilde_home_directory on windowsTamas Berghammer2016-04-201-1/+1
| | | | llvm-svn: 266867
* clang-tidy: [misc-unused-using-decls] Support template types.Daniel Jasper2016-04-202-3/+14
| | | | | | This fixes llvm.org/PR27429. llvm-svn: 266866
* AMDGPU/SI: Assembler: improvements to support trap handlers.Nikolay Haustov2016-04-203-70/+140
| | | | | | | | | | | | Add ParseAMDGPURegister which can be invoked recursively for parsing lists. Rename getRegForName to getSpecialRegForName. Support legacy SP3 register list syntax: [s2,s3,s4,s5] or [flat_scratch_lo,flat_scratch_hi]. Add 64-bit registers TBA, TMA where missing. Add some tests. Differential Revision: http://reviews.llvm.org/D19163 llvm-svn: 266865
* clang-tidy: [misc-unused-using-decls] Always use the canonical decl toDaniel Jasper2016-04-203-5/+8
| | | | | | | | identify things. This fixes llvm.org/PR27430. llvm-svn: 266864
* [X86] enable PIE for functionsAsaf Badouh2016-04-205-44/+81
| | | | | | | | Call locally defined function directly for PIE/fPIE Differential Revision: http://reviews.llvm.org/D19226 llvm-svn: 266863
* Fix a crash in cppcoreguidelines-pro-type-member-init related to missing ↵Haojian Wu2016-04-202-6/+11
| | | | | | | | | | | | | | | | constructor bodies. Summary: Fixes a crash in cppcoreguidelines-pro-type-member-init when checking some record types with a constructor without a body. We now check to make sure the constructor has a body before looking for missing members and base initializers. Patch by Michael Miller! Reviewers: aaron.ballman, alexfh, hokein Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19270 llvm-svn: 266862
* [mips][microMIPS]Implement CFC*, CTC* and LDC* instructionsHrvoje Varga2016-04-2016-15/+198
| | | | | | Differential Revision: http://reviews.llvm.org/D18640 llvm-svn: 266861
* [AVX512] Add avx512cd+vl runs to vector-tzcnt-128/256 tests to show using ↵Craig Topper2016-04-202-132/+594
| | | | | | the vplzcntd/q instructions. llvm-svn: 266860
* [AVX512] Update vector-tzcnt-512 test to show how bad v32i16 and v64i8 is ↵Craig Topper2016-04-201-113/+859
| | | | | | with avx512bw enabled. llvm-svn: 266859
* [AVX512] Add popcount support for v32i16 and v64i8.Craig Topper2016-04-202-44/+72
| | | | llvm-svn: 266858
* Revert "[ELF] - Avoid using memset for zero-initialization of struct member. ↵Sean Silva2016-04-202-1/+2
| | | | | | | | | | | | | | | | | | NFC." This reverts commit r266618. It breaks basically everything. I think VS2013 doesn't interpret this code in the same way. The size field (at least) is left uninitialized, causing all sorts of havok (e.g. creating a 34GB file for a trivial hello world program). The offending compiler reports itself as follows: c:\release-vs2013>cl /? Microsoft (R) C/C++ Optimizing Compiler Version 18.00.40629 for x64 Copyright (C) Microsoft Corporation. All rights reserved. llvm-svn: 266857
* ThinLTO: never promote as external weakMehdi Amini2016-04-202-2/+2
| | | | | | | | | This linkage is *not* intended to express that a declaration refers to a weak symbol, but that the symbol might not be present at link time. I don't believe it was the intent. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266856
* Add cxx_runtime_root options for testing against a different libc++ at runtimeEric Fiselier2016-04-203-9/+23
| | | | llvm-svn: 266855
* FunctionImport: make sure we always select the right callee in presence of aliasMehdi Amini2016-04-204-14/+56
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266854
* [OPENMP] Codegen for untied tasks.Alexey Bataev2016-04-207-92/+238
| | | | | | | | If the untied clause is present on a task construct, any thread in the team can resume the task region after a suspension. Patch adds proper codegen for untied tasks. llvm-svn: 266853
* Enable ODR uniquing of DITypes for ThinLTO backendsTeresa Johnson2016-04-201-0/+5
| | | | | | | | | | | | | | | | | Summary: This is a follow-on to apply Duncan's new DIType ODR uniquing from r266549 and r266713 in more places. When invoking ThinLTO backend compiles via clang (for a distributed build), invoke enableDebugTypeODRUniquing() before parsing the module. Reviewers: dexonsmith, joker.eph Subscribers: llvm-commits, joker.eph Differential Revision: http://reviews.llvm.org/D19264 llvm-svn: 266852
* [libcxx] Fix PR15638 - Only allocate in parent when starting a thread to ↵Eric Fiselier2016-04-202-32/+84
| | | | | | | | | | | | | | | | | | | | | prevent calling terminate. Summary: Hi, When creating a new thread libc++ performs at least 2 allocations. The first allocates a tuple of args and the functor that will be passed to the new thread. The second allocation is for the thread local storage needed internally by libc++. Currently the second allocation happens in the child thread, meaning that if it throws the program will terminate with an uncaught bad alloc. The solution to this is to allocate ALL memory in the parent thread and then pass it to the child. See https://llvm.org/bugs/show_bug.cgi?id=15638 Reviewers: mclow.lists, danalbert, jroelofs, EricWF Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D13748 llvm-svn: 266851
* [X86] Mark some floating point operations that are always expanded for ↵Craig Topper2016-04-201-13/+17
| | | | | | vector types as Expand in a floating point only loop instead of looping through all vector types. llvm-svn: 266850
* [X86] Don't mark vector loads and shifts Expand in advance. Loads are always ↵Craig Topper2016-04-201-23/+4
| | | | | | marked Legal or Promote for all the legal types later. Shifts are always marked custom. NFC llvm-svn: 266849
* [X86] Merge the two different SSE2 blocks in the X86TargetLowering ↵Craig Topper2016-04-201-21/+19
| | | | | | constructor. Also qualfiy the XOP block with !useSoftFloat to match the other vector blocks. llvm-svn: 266848
* [X86] Don't set vector FADD,FSUB,FMUL,FDIV,FNEG,FSQRT to Expand early. For ↵Craig Topper2016-04-201-27/+0
| | | | | | every legal FP type we either set them to Legal or Custom anyway. So let them stay defaulted to Legal and only change when they need to be Custom. llvm-svn: 266847
* llvm-lto: run the module verifier when doing IR level workMehdi Amini2016-04-201-0/+9
| | | | | | | It seems it was only running during CodeGen previously. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266846
* ThinLTO: Move alias importing decision on the summaryMehdi Amini2016-04-201-5/+16
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266845
* [SystemZ] Add support for llvm.thread.pointer intrinsic.Marcin Koscielnicki2016-04-203-8/+33
| | | | | | Differential Revision: http://reviews.llvm.org/D19054 llvm-svn: 266844
* [Clang] Remove unwanted --check-prefix=CHECK from unit tests. NFC.Mandeep Singh Grang2016-04-2014-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Removed unwanted --check-prefix=CHECK from the following unit tests: test/CXX/special/class.copy/implicit-move-def.cpp test/CodeGen/cleanup-destslot-simple.c test/CodeGen/inline-asm-immediate-ubsan.c test/CodeGen/mips-interrupt-attr.c test/CodeGenCXX/cfi-stats.cpp test/CodeGenCXX/copy-constructor-elim.cpp test/CodeGenCXX/microsoft-templ-uuidof.cpp test/CodeGenCXX/vtable-linkage.cpp test/CodeGenObjC/messages-2.m test/Driver/noinline.c test/Index/remap-load.c test/Index/retain-comments-from-system-headers.c test/OpenMP/task_if_codegen.cpp test/Preprocessor/comment_save_macro.c Patch by: Mandeep Singh Grang (mgrang) Reviewers: rafael, ABataev, rengolin Projects: #clang-c Differential Revision: http://reviews.llvm.org/D19232 llvm-svn: 266843
* Add LLVMGetAttrKindID in the C API in order to facilitate migration away ↵Amaury Sechet2016-04-204-0/+53
| | | | | | | | | | | | | | | | | from LLVMAttribute Summary: LLVMAttribute has outlived its utility and is becoming a problem for C API users that what to use all the LLVM attributes. In order to help moving away from LLVMAttribute in a smooth manner, this diff introduce LLVMGetAttrKindIDInContext, which can be used instead of the enum values. See D18749 for reference. Reviewers: Wallbraker, whitequark, joker.eph, echristo, rafael Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D19081 llvm-svn: 266842
* MipsAsmParser::loadImmediate(): Prune an obsolete \param in r266602. ↵NAKAMURA Takumi2016-04-201-1/+0
| | | | | | [-Wdocumentation] llvm-svn: 266841
* MarkEOLs should only be true for clang-cl.exe.Stephen Hines2016-04-203-6/+26
| | | | | | | | | | | | | | | | | | | | | Summary: https://llvm.org/bugs/show_bug.cgi?id=27396 This fixes an issue in response files where "\r\n" was being interpreted as two EOL markers (i.e. we consumed the '\r' as terminating the previous token, and then parsed the '\n' as a significant EOL). This breaks response files where joined arguments get split across multiple lines (like "-x\r\nc"). I also fixed an accidental issue in the response-file.c test, where the response file is appended to, instead of being overwritten. Reviewers: rnk Subscribers: danalbert, llvm-commits Differential Revision: http://reviews.llvm.org/D19289 llvm-svn: 266840
OpenPOWER on IntegriCloud