summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add `#ifdef __cplusplus` around `extern "C"` in Compiler.h. NFC.Kuba Brecka2016-08-091-0/+4
| | | | llvm-svn: 278119
* Reapply "Rewrite gdb-remote's SendContinuePacketAndWaitForResponse"Pavel Labath2016-08-0916-895/+1214
| | | | | | | | | | | | Resumbitting the commit after fixing the following problems: - broken unit tests on windows: incorrect gtest usage on my part (TEST vs. TEST_F) - the new code did not correctly handle the case where we went to interrupt the process, but it stopped due to a different reason - the interrupt request would remain queued and would interfere with the following "continue". I also added a unit test for this case. This reapplies r277156 and r277139. llvm-svn: 278118
* AVX-512: A new test for FMA intrinsicElena Demikhovsky2016-08-091-0/+111
| | | | | | | A new test that explores sub-optimal sequence of FMA intrinsic and FNEG operation. An upcoming patch will fix it. llvm-svn: 278117
* [sanitizers] Make it possible to XFAIL on the effective target, not just the ↵Daniel Sanders2016-08-0911-9/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | default. Summary: The triple is not the right thing to XFAIL on since LIT only sees the default triple and not the effective triple chosen by any -target option in the RUN directives. This discrepancy is shown in the table below: Default Triple | Options | XFAIL | LIT's expected result | Desired expectation =================+===================================+========+=======================+==================== mips-linux-gnu | -target mips-linux-gnu | | Pass | Pass mips-linux-gnu | -target mips64-linux-gnu -mabi=64 | | Pass | Pass mips-linux-gnu | -target mips-linux-gnu | mips | Fail | Fail mips-linux-gnu | -target mips64-linux-gnu -mabi=64 | mips | Fail | Fail/Pass* (debatable**) mips-linux-gnu | -target mips-linux-gnu | mips- | Fail | Fail mips-linux-gnu | -target mips64-linux-gnu -mabi=64 | mips- | Fail | Pass* mips-linux-gnu | -target mips-linux-gnu | mips64 | Pass | Pass mips-linux-gnu | -target mips64-linux-gnu -mabi=64 | mips64 | Pass | Fail* mips64-linux-gnu | -target mips-linux-gnu | | Pass | Pass mips64-linux-gnu | -target mips64-linux-gnu -mabi=64 | | Pass | Pass mips64-linux-gnu | -target mips-linux-gnu | mips | Fail | Fail* mips64-linux-gnu | -target mips64-linux-gnu -mabi=64 | mips | Fail | Fail/Pass (debatable**) mips64-linux-gnu | -target mips-linux-gnu | mips- | Pass | Fail* mips64-linux-gnu | -target mips64-linux-gnu -mabi=64 | mips- | Pass | Pass mips64-linux-gnu | -target mips-linux-gnu | mips64 | Fail | Pass* mips64-linux-gnu | -target mips64-linux-gnu -mabi=64 | mips64 | Fail | Fail x64_64-linux-gnu | -target i386-linux-gnu | | Pass | Pass x64_64-linux-gnu | -target x86_64-linux-gnu | | Pass | Pass x64_64-linux-gnu | -target i386-linux-gnu | i386 | Pass | Fail* x64_64-linux-gnu | -target x86_64-linux-gnu | i386 | Pass | Pass x64_64-linux-gnu | -target i386-linux-gnu | x86_64 | Fail | Pass x64_64-linux-gnu | -target x86_64-linux-gnu | x86_64 | Fail | Fail* * These all differ from LIT's current behaviour. ** People's expectations vary depending on whether they know that LIT does a substring match on the default triple or think it's an exact match on an architecture. This patch adds "target-is-${target_arch}" to the available features list and updates the mips XFAIL's to use them. XFAIL'ing on these features will correctly account for the target being tested. Making the table: Options | XFAIL | LIT's expected result ==================================+==================+====================== -target mips-linux-gnu | | Pass -target mips64-linux-gnu -mabi=64 | | Pass -target mips-linux-gnu | target-is-mips | Fail -target mips64-linux-gnu -mabi=64 | target-is-mips | Pass -target mips-linux-gnu | target-is-mips64 | Pass -target mips64-linux-gnu -mabi=64 | target-is-mips64 | Fail -target i386-linux-gnu | | Pass -target x86_64-linux-gnu | | Pass -target i386-linux-gnu | target-is-i386 | Fail -target x86_64-linux-gnu | target-is-i386 | Pass -target i386-linux-gnu | target-is-x86_64 | Pass -target x86_64-linux-gnu | target-is-x86_64 | Fail Reviewers: probinson Subscribers: probinson, kubabrecka, llvm-commits, samsonov Differential Revision: https://reviews.llvm.org/D22802 llvm-svn: 278116
* [ELF] - Removed dead code. NFC.George Rimar2016-08-092-9/+0
| | | | llvm-svn: 278115
* [X86][XOP] Add support for combining target shuffles to VPPERMSimon Pilgrim2016-08-092-0/+51
| | | | llvm-svn: 278114
* [XRay] Test for xray_instr_map in object file. (NFC)Dean Michael Berris2016-08-092-3/+6
| | | | | | | | This makes a trivial change in the emission of the per-function XRay tables, and makes sure that the xray_instr_map section does show up in the object file. llvm-svn: 278113
* [clang-rename] cleanup: use isWrittenKirill Bobyrev2016-08-092-4/+4
| | | | | | | | | | | | | | nit: use isWritten and const auto *Initializer in NamedDeclFindingASTVisitor::VisitCXXConstructorDecl method. Test plan: make -j8 check-clang-tools (passed) Patch by Alexander Shaposhnikov! Reviewers: omtcyfz Differential Revision: https://reviews.llvm.org/D23298 llvm-svn: 278112
* Fix Wdocumentation unknown parameter warningSimon Pilgrim2016-08-091-1/+1
| | | | llvm-svn: 278111
* [analyzer] Try to fix coverity CID 1360469.Vassil Vassilev2016-08-091-1/+1
| | | | | | Patch by Raphael Isemann! llvm-svn: 278110
* Revert 278107 which causes buildbot failures and in addition has wrong ↵Artur Pilipenko2016-08-092-145/+19
| | | | | | commit message llvm-svn: 278109
* [modules]Add missing include.Vassil Vassilev2016-08-091-0/+1
| | | | llvm-svn: 278108
* Teach CorrelatedValuePropagation to mark adds as no wrapArtur Pilipenko2016-08-092-19/+145
| | | | | | | | | | Use LVI to prove that adds do not wrap. The change is motivated by https://llvm.org/bugs/show_bug.cgi?id=28620 bug and it's the first step to fix that problem. Reviewed By: sanjoy Differential Revision: http://reviews.llvm.org/D23059 llvm-svn: 278107
* [X86][SSE] Fix memory folding of (v)roundsd / (v)roundssSimon Pilgrim2016-08-094-8/+64
| | | | | | | | | | We only had partial memory folding support for the intrinsic definitions, and (as noted on PR27481) was causing FR32/FR64/VR128 mismatch errors with the machine verifier. This patch adds missing memory folding support for both intrinsics and the ffloor/fnearbyint/fceil/frint/ftrunc patterns and in doing so fixes the failing machine verifier stack folding tests from PR27481. Differential Revision: https://reviews.llvm.org/D23276 llvm-svn: 278106
* [LVI] NFC. Fix a typo Bofore -> BeforeArtur Pilipenko2016-08-091-1/+1
| | | | llvm-svn: 278105
* [tests] Add two missing 'REQUIRES' linesTobias Grosser2016-08-092-0/+4
| | | | llvm-svn: 278104
* [BlockGenerator] Also eliminate dead code not originating from BBTobias Grosser2016-08-095-33/+127
| | | | | | | | | | | | | | | | | After having generated the code for a ScopStmt, we run a simple dead-code elimination that drops all instructions that are known to be and remain unused. Until this change, we only considered instructions for dead-code elimination, if they have a corresponding instruction in the original BB that belongs to ScopStmt. However, when generating code we do not only copy code from the BB belonging to a ScopStmt, but also generate code for operands referenced from BB. After this change, we now also considers code for dead code elimination, which does not have a corresponding instruction in BB. This fixes a bug in Polly-ACC where such dead-code referenced CPU code from within a GPU kernel, which is possible as we do not guarantee that all variables that are used in known-dead-code are moved to the GPU. llvm-svn: 278103
* [include-fixer] Support processing multiple files in one run.Haojian Wu2016-08-099-75/+116
| | | | | | | | | | | | | | | | | | | Summary: Previously, if we pass multiple files or a file pattern (e.g. /path/to/*.cc) to include-fixer, include-fixer will apply all replacements to the first argument, which probably causes crashes. With this patch, include-fixer can process multiple files now. Vim and Emacs integration are tested manually. Reviewers: bkramer Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D23266 llvm-svn: 278102
* Fix clang-tidy crash when a single fix is applied on multiple files.Eric Liu2016-08-096-47/+83
| | | | | | | | | | | | | | | Summary: tooling::Replacements only holds replacements for a single file, so this patch makes Fix a map from file paths to tooling::Replacements so that it can be applied on multiple files. Reviewers: hokein, alexfh Subscribers: Prazek, cfe-commits Differential Revision: https://reviews.llvm.org/D23257 llvm-svn: 278101
* [GPGPU] Pass parameters always by using their own typeTobias Grosser2016-08-092-2/+47
| | | | llvm-svn: 278100
* [clang-rename] fix bug with initializer listsKirill Bobyrev2016-08-093-19/+30
| | | | | | | | | | | Clang-rename is currently not able to find a symbol in initializer list. This patch fixes described issue. Reviewers: alexfh Differential Revision: https://reviews.llvm.org/D23193 llvm-svn: 278099
* [X86] Reduce duplicated code in the execution domain lookup functions by ↵Craig Topper2016-08-091-37/+17
| | | | | | passing tables as an argument. llvm-svn: 278098
* [AVX-512] Add support for execution domain switching masked logical ops ↵Craig Topper2016-08-092-11/+287
| | | | | | | | between floating point and integer domain. This switches PS<->D and PD<->Q. llvm-svn: 278097
* Remove unreachable `return`. NFC.Rui Ueyama2016-08-091-1/+0
| | | | llvm-svn: 278096
* Remove isOutputDynamic and use Out<ELFT>::DynSymTab instead.Rui Ueyama2016-08-094-24/+19
| | | | | | | This patch is to not instantiate DynSymTab and DynStrTab if the output is not a dynamic output. llvm-svn: 278095
* Remove redundant variable.Rui Ueyama2016-08-093-7/+4
| | | | llvm-svn: 278094
* Separate {Preinit,Init,Fini}Arrays from Out<ELFT>::Dynamic.Rui Ueyama2016-08-093-23/+28
| | | | | | | | Even if an output is not a dynamic object, the output may have .{preinit,init,fini} sections. Therefore, managing these sections as Out<ELFT>::Dynamic's members is not correct. llvm-svn: 278093
* [Profile] Implement new API __llvm_profile_dumpXinliang David Li2016-08-095-0/+120
| | | | | | | | | The API is intended to be used by user to do fine grained (per-region) control of profile dumping. Differential Revision: http://reviews.llvm.org/D23106 llvm-svn: 278092
* Do not pass the SymbolTable to writeResult.Rui Ueyama2016-08-093-42/+38
| | | | | | | The SymbolTable is always accessible as Symtab<ELFT>::X, so no need to pass it as an argument. llvm-svn: 278091
* [X86] Remove the Fv packed logical operation alias instructions. Replace ↵Craig Topper2016-08-097-88/+133
| | | | | | | | them with patterns to the regular instructions. This enables execution domain fixing which is why the tests changed. llvm-svn: 278090
* [X86] Cleanup patterns for AVX/SSE for PS operations. Always try to look for ↵Craig Topper2016-08-091-9/+18
| | | | | | | | bitcasts from floating point types. If only AVX1 is supported we also need to handle integer types with floating point ops without looking for bitcasts. Previously SSE1 had a pattern that looked for integer types without bitcasts, but the type wasn't legal with only SSE1 and SSE2 add an identical pattern for the integer instructions. llvm-svn: 278089
* [X86] Remove unnecessary bitcast from the front of AVX1Only 256-bit logical ↵Craig Topper2016-08-096-54/+42
| | | | | | operation patterns. llvm-svn: 278088
* Remove *super* old test suite results doc for Linux and Windows.Eric Fiselier2016-08-093-1005/+0
| | | | | | | | | Neither of these results files has been update in years. Linux now has a dozen or so buildbots tracking it and the Windows results are no longer relevant. I plan on looking into getting a Windows buildbot going using Appveyor in the coming days. llvm-svn: 278087
* X86InstrInfo: Update liveness in classifyLea()Matthias Braun2016-08-093-9/+71
| | | | | | | | | We need to update liveness information when we create COPYs in classifyLea(). This fixes http://llvm.org/28301 llvm-svn: 278086
* Remove redundant local variable.Rui Ueyama2016-08-091-4/+1
| | | | llvm-svn: 278085
* Reduce dependency to OutputSectionFactory.Rui Ueyama2016-08-091-9/+15
| | | | | | | | The Factory class is too object-oriented-ish and easy to be abused. This patch reduces dependency to that class. Eventually we want to remove the dependency to that class from LinkerScript. llvm-svn: 278084
* Do not initialize Out<ELFT>::Opd until needed.Rui Ueyama2016-08-091-10/+6
| | | | | | | This change makes it clear that we need the variable only within writeSections. llvm-svn: 278083
* [WebAssembly] Fix bugs in WebAssemblyLowerEmscriptenExceptions passDerek Schuff2016-08-093-40/+145
| | | | | | | | | | | | | | | | | | * Delete extra '_' prefixes from JS library function names. fixImports() function in JS glue code deals with this for wasm. * Change command-line option names in order to be consistent with asm.js. * Add missing lowering code for llvm.eh.typeid.for intrinsics * Delete commas in mangled function names * Fix a function argument attributes bug. Because we add the pointer to the original callee as the first argument of invoke wrapper, all argument attribute indices have to be incremented by one. Patch by Heejin Ahn Differential Revision: https://reviews.llvm.org/D23258 llvm-svn: 278081
* Consistently use CGSCCAnalysisManagerSean Silva2016-08-091-2/+2
| | | | | | | | | | | Besides a general consistently benefit, the extra layer of indirection allows the mechanical part of https://reviews.llvm.org/D23256 that requires touching every transformation and analysis to be factored out cleanly. Thanks to David for the suggestion. llvm-svn: 278080
* Consistently use LoopAnalysisManagerSean Silva2016-08-0925-32/+43
| | | | | | | | | | | | | | | | | One exception here is LoopInfo which must forward-declare it (because the typedef is in LoopPassManager.h which depends on LoopInfo). Also, some includes for LoopPassManager.h were needed since that file provides the typedef. Besides a general consistently benefit, the extra layer of indirection allows the mechanical part of https://reviews.llvm.org/D23256 that requires touching every transformation and analysis to be factored out cleanly. Thanks to David for the suggestion. llvm-svn: 278079
* Consistently use ModuleAnalysisManagerSean Silva2016-08-0933-37/+37
| | | | | | | | | | | Besides a general consistently benefit, the extra layer of indirection allows the mechanical part of https://reviews.llvm.org/D23256 that requires touching every transformation and analysis to be factored out cleanly. Thanks to David for the suggestion. llvm-svn: 278078
* Consistently use FunctionAnalysisManagerSean Silva2016-08-0983-108/+108
| | | | | | | | | | | Besides a general consistently benefit, the extra layer of indirection allows the mechanical part of https://reviews.llvm.org/D23256 that requires touching every transformation and analysis to be factored out cleanly. Thanks to David for the suggestion. llvm-svn: 278077
* Add lib directory to linker paths when using libunwindPetr Hosek2016-08-091-0/+3
| | | | | | | | | | When using libunwind and not building as standalone project, we need to add LLVM library directory to the list of linker directories to ensure it can find libunwind dependency. Differential Revision: https://reviews.llvm.org/D23287 llvm-svn: 278076
* CodeView: extract the OMF Directory HeaderSaleem Abdulrasool2016-08-095-28/+79
| | | | | | | | | | | | The DebugDirectory contains a pointer to the CodeView info structure which is a derivative of the OMF debug directory. The structure has evolved a bit over time, and PDB 2.0 used a slightly different definition from PDB 7.0. Both of these are specific to CodeView and not COFF. Reflect this by moving the structure definitions into the DebugInfo/CodeView headers. Define a generic DebugInfo union type that can be used to pass around a reference to the DebugInfo irrespective of the versioning. NFC. llvm-svn: 278075
* [x86] split combineVSelectWithAllOnesOrZeros into a helper function; NFCISanjay Patel2016-08-091-47/+61
| | | | llvm-svn: 278074
* [WebAssembly] Fix CFI index to account for padding nullptr functionDerek Schuff2016-08-085-10/+12
| | | | | | | | | | | | | The WebAssembly linker now creates a dummy function at index 0 to prevent miscomparisons with the NULL pointer, see https://github.com/WebAssembly/binaryen/pull/658. Thanks to pcc for pointing out this problem! Patch by Dominic Chen Differential Revision: https://reviews.llvm.org/D23137 llvm-svn: 278073
* The first string table entry should be a null terminated space, not just null.Pete Cooper2016-08-082-2/+71
| | | | | | | This matches the behaviour of ld64 which initializes the string table with ' ' then '\0'. lld only had the '\0' and needed the ' '. llvm-svn: 278071
* Revert "Do not ignore SizeOfOptionalHeader in COFF header even if PE header ↵Rui Ueyama2016-08-081-2/+1
| | | | | | | | is not present." This reverts commit r278066 to unbreak buildbots. llvm-svn: 278070
* Revert r278065 while I investigate some build-bot breakage.Lang Hames2016-08-086-92/+2
| | | | llvm-svn: 278069
* Allow building both shared and static libraryPetr Hosek2016-08-083-24/+63
| | | | | | | | | This change allows building both shared and static version of libc++ in a single build, sharing object files between both versions. Differential Revision: https://reviews.llvm.org/D23232 llvm-svn: 278068
OpenPOWER on IntegriCloud