summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* DWARFDebugInfoEntry: delete unused Extract() and rename FastExtract() to ↵Fangrui Song2019-05-303-172/+10
| | | | | | | | | | | | | Extract() The function Extract() is almost a duplicate of FastExtract() but is not used. Delete it and rename FastExtract() to Extract(). Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D62593 llvm-svn: 362049
* [runtimes] Support ELF dependent libraries featurePetr Hosek2019-05-3015-0/+63
| | | | | | | | | | | | | | | | | | | As of r360984, LLD supports dependent libraries feature for ELF. libunwind, libc++abi and libc++ have library dependencies: libdl librt and libpthread, which means that when libunwind and libc++ are being statically linked (using -static-libstdc++ flag), user has to manually specify -ldl -lpthread which is onerous. This change includes the lib pragma to specify the library dependencies directly in the source that uses those libraries. This doesn't make any difference when using linkers that don't support dependent libraries. However, when using LLD that has dependent libraries feature, users no longer have to manually specifying library dependencies when using static linking, linker will pick the library automatically. Differential Revision: https://reviews.llvm.org/D62090 llvm-svn: 362048
* [CMake] Set LLVM_PATH in the runtimes buildPetr Hosek2019-05-301-4/+6
| | | | | | | | | | | This avoids using llvm-config for inferring various paths within the runtimes build. We also set LLVM_INCLUDE_DIR variable that's used by these builds and move assignment of LLVM_BINARY_DIR and LLVM_LIBRARY_DIR to the same location for consistency. Differential Revision: https://reviews.llvm.org/D62637 llvm-svn: 362047
* [BitstreamWriter][NFC] Remove obsolete comment.Jan Korous2019-05-301-3/+1
| | | | | | The Abbv parameter was just a raw pointer when the comment was written. llvm-svn: 362046
* clang support gnu asm goto.Jennifer Yu2019-05-3028-148/+732
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Syntax: asm [volatile] goto ( AssemblerTemplate : : InputOperands : Clobbers : GotoLabels) https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html New llvm IR is "callbr" for inline asm goto instead "call" for inline asm For: asm goto("testl %0, %0; jne %l1;" :: "r"(cond)::label_true, loop); IR: callbr void asm sideeffect "testl $0, $0; jne ${1:l};", "r,X,X,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@foo, %label_true), i8* blockaddress(@foo, %loop)) #1 to label %asm.fallthrough [label %label_true, label %loop], !srcloc !3 asm.fallthrough: Compiler need to generate: 1> a dummy constarint 'X' for each label. 2> an unique fallthrough label for each asm goto stmt " asm.fallthrough%number". Diagnostic 1> duplicate asm operand name are used in output, input and label. 2> goto out of scope. llvm-svn: 362045
* [crashlog] Add a missing call to decode.Davide Italiano2019-05-301-1/+1
| | | | | | <rdar://problem/51139357> llvm-svn: 362044
* [Commands] Remove commented out codeAlex Langford2019-05-291-4/+0
| | | | llvm-svn: 362042
* [llvm-objcopy][MachO] Print an error message on use of unsupported optionsSeiya Nuta2019-05-291-1/+37
| | | | | | | | | | | | | | | | | | | Summary: It is better to print an error message instead of silently ignoring unsupported options. As mentioned in https://reviews.llvm.org/D57045, this is not the best solution and we should print which flag is not supported at some time. Reviewers: alexshap, rupprecht, jhenderson, jakehehrlich Reviewed By: alexshap, rupprecht, jakehehrlich Subscribers: jakehehrlich, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62578 llvm-svn: 362040
* Move the pybool logic from CMake to Python for simplicityReid Kleckner2019-05-292-4/+1
| | | | | | | This is how similar booleans are handled, and seems to work for me locally. llvm-svn: 362039
* CodeView - add static data members to global variable debug info.Amy Huang2019-05-294-32/+79
| | | | | | | | | | | | | | | | | | Summary: Add static data members to IR debug info's list of global variables so that they are emitted as S_CONSTANT records. Related to https://bugs.llvm.org/show_bug.cgi?id=41615. Reviewers: rnk Subscribers: aprantl, cfe-commits, llvm-commits, thakis Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D62167 llvm-svn: 362038
* [llvm-pdbutil] Dump inline call site line table annotationsReid Kleckner2019-05-293-30/+135
| | | | | | | | | This ports and improves on some existing llvm-readobj -codeview dumping functionality that llvm-pdbutil lacked. Helpful for comparing inline line tables between MSVC and clang. llvm-svn: 362037
* Use correct format specifier to silence -Wformat warning.Richard Trieu2019-05-291-1/+2
| | | | llvm-svn: 362035
* [ObjC] Fix encoding of ObjC pointer types that are pointers to typedefsAkira Hatanaka2019-05-295-43/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | clang was encoding pointers to typedefs as if they were pointers to structs because that is apparently what gcc is doing. For example: ``` @class Class1; typedef NSArray<Class1 *> MyArray; void foo1(void) { const char *s0 = @encode(MyArray *); // "^{NSArray=#}" const char *s1 = @encode(NSArray<Class1 *> *); // "@" } ``` This commit removes the code that was there to make clang compatible with gcc and make clang emit the correct encoding for ObjC pointers, which is "@". rdar://problem/50563529 Differential Revision: https://reviews.llvm.org/D61974 llvm-svn: 362034
* Fix Xcode project lldb unit test target so it compiles.Greg Clayton2019-05-291-0/+4
| | | | llvm-svn: 362033
* [Target] Sink some asserts into Process::GetLanguageRuntimeAlex Langford2019-05-291-5/+14
| | | | llvm-svn: 362032
* LoopVersioningLICM: Respect convergent and noduplicateMatt Arsenault2019-05-292-1/+106
| | | | llvm-svn: 362031
* [analyzer] Remove EndPath function as it is dead codeCsaba Dabis2019-05-293-7/+0
| | | | | | | | | | | | | | | | | Summary: - Reviewers: george.karpenkov Reviewed By: george.karpenkov Subscribers: baloghadamsoftware, cfe-commits, xazax.hun, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D53720 llvm-svn: 362030
* Revert "IR: add optional type to 'byval' function parameters"Tim Northover2019-05-2940-425/+41
| | | | | | | The IRLinker doesn't delve into the new byval attribute when mapping types, and this breaks LTO. llvm-svn: 362029
* Revert "LLVM IR: update Clang tests for byval being a typed attribute."Tim Northover2019-05-296-18/+18
| | | | | | The underlying LLVM change couldn't cope with llvm-link and broke LTO builds. llvm-svn: 362028
* [analyzer] ConditionBRVisitor: Boolean supportCsaba Dabis2019-05-295-14/+21
| | | | | | | | | | | | | | | | | Summary: - Reviewers: NoQ, george.karpenkov Reviewed By: NoQ, george.karpenkov Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D58207 llvm-svn: 362027
* [analyzer] ConditionBRVisitor: MemberExpr supportCsaba Dabis2019-05-2911-33/+164
| | | | | | | | | | | | | | | | | Summary: - Reviewers: NoQ, george.karpenkov Reviewed By: NoQ Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D58206 llvm-svn: 362026
* [analyzer] ConditionBRVisitor: Remove duplicated codeCsaba Dabis2019-05-292-27/+44
| | | | | | | | | | | | | | | | | Summary: - Reviewers: NoQ, george.karpenkov Reviewed By: NoQ Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D58199 llvm-svn: 362025
* [analyzer] ConditionBRVisitor: Test 'add-pop-up-notes=false'Csaba Dabis2019-05-292-132/+114
| | | | | | | | | | | | | | | | | Summary: - Reviewers: NoQ, alexfh Reviewed By: alexfh Subscribers: cfe-commits, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D61060 llvm-svn: 362023
* [LoopIdiomRecognize][NFC] Use DEBUG_TYPE, add LLVM_DEBUG() to ↵Roman Lebedev2019-05-291-2/+8
| | | | | | | | runOnNoncountableLoop() Split off from D61144 llvm-svn: 362022
* [ARC] Cleanup ARCAsmPrinter.Pete Couperus2019-05-291-16/+0
| | | | | | | | | | | | | | | | Summary: Remove unused getTargetStreamer. Remove unused headers. Reviewers: dantrushin Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62549 llvm-svn: 362021
* [analyzer] ConditionBRVisitor: Enhance to write out more informationCsaba Dabis2019-05-2920-243/+2144
| | | | | | | | | | | | | | | | | | | | Summary: Add extra messages to the bug report to inform the user why the analyzer `Taking true/false branch`. Reviewers: NoQ, george.karpenkov Reviewed By: NoQ Subscribers: gerazo, gsd, dkrupp, whisperity, baloghadamsoftware, xazax.hun, eraman, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D53076 llvm-svn: 362020
* UpdateTestChecks: Lanai triple supportRoman Lebedev2019-05-292-41/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The assembly structure most resembles the SPARC pattern: ``` .globl f6 ! -- Begin function f6 .p2align 2 .type f6,@function f6: ! @f6 .cfi_startproc ! %bb.0: st %fp, [--%sp] <...> ld -8[%fp], %fp .Lfunc_end0: .size f6, .Lfunc_end0-f6 .cfi_endproc ! -- End function ``` Test being affected by upcoming patch, so regenerate it. Reviewers: RKSimon, jpienaar Reviewed By: RKSimon Subscribers: jyknight, fedor.sergeev, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62545 llvm-svn: 362019
* gn build: Make it possible to build with coverage informationNico Weber2019-05-291-0/+28
| | | | | | Differential Revision: https://reviews.llvm.org/D62508 llvm-svn: 362018
* [DAGCombiner] Replace gathers with a zero mask with the passthru valueBenjamin Kramer2019-05-292-3/+28
| | | | | | | | | | These can be created by the legalizer when splitting a larger gather. See https://llvm.org/PR42055 for a motivating example. Differential Revision: https://reviews.llvm.org/D62613 llvm-svn: 362015
* [analyzer] [NFC] PathDiagnostic: Create PathDiagnosticPopUpPieceCsaba Dabis2019-05-299-46/+243
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This new piece is similar to our macro expansion printing in HTML reports: On mouse-hover event it pops up on variables. Similar to note pieces it supports `plist` diagnostics as well. It is optional, on by default: `add-pop-up-notes=true`. Extra: In HTML reports `background-color: LemonChiffon` was too light, changed to `PaleGoldenRod`. Reviewers: NoQ, alexfh Reviewed By: NoQ Subscribers: cfe-commits, gerazo, gsd, george.karpenkov, alexfh, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D60670 llvm-svn: 362014
* LLVM IR: update Clang tests for byval being a typed attribute.Tim Northover2019-05-296-18/+18
| | | | | | | | Since byval is now a typed attribute it gets sorted slightly differently by LLVM when the order of attributes is being canonicalized. This updates the few Clang tests that depend on the old order. llvm-svn: 362013
* IR: add optional type to 'byval' function parametersTim Northover2019-05-2940-41/+425
| | | | | | | | | | | | | | When we switch to opaque pointer types we will need some way to describe how many bytes a 'byval' parameter should occupy on the stack. This adds a (for now) optional extra type parameter. If present, the type must match the pointee type of the argument. Note to front-end maintainers: if this causes test failures, it's probably because the "byval" attribute is printed after attributes without any parameter after this change. llvm-svn: 362012
* [analyzer] print() JSONify chain: Generic stmt_idCsaba Dabis2019-05-292-3/+3
| | | | | Summary: Some environment create less statements so make them generic. llvm-svn: 362011
* mac: Make ubsan test config look more like asan test configNico Weber2019-05-291-4/+1
| | | | | | | | | | | | | | | | | | | | | | | In particular, don't call get_target_flags_for_arch() since that will cause an error in some situations: If DARWIN_iossim_ARCHS=i386;x86_64, DARWIN_osx_ARCHS=x86_64, and DARWIN_iossym_SYSROOT isn't set (due to the simulator sysroot not being available), then config-ix.cmake won't add i386 to COMPILER_RT_SUPPORTED_ARCH but ubsan's test/CMakeLists.txt would call get_target_flags_for_arch() with i386, which would then run into the error in get_target_flags_for_arch(). Having these conditions isn't ideal. The background here is that we configure our mac-hosted trunk bots all the same (so they all have the same DARWIN_*_archs, and we don't easily know if a mac host bot is targeting mac or ios at the place where we call cmake), but only the ios-targeting bots have ios sysroots available. This will hopefully unbreak that use case without impacting anything else -- and it makes ubsan and asan test setup more alike. llvm-svn: 362010
* [analyzer] SATestBuild.py: Use driver for analyzing single-file tests.Artem Dergachev2019-05-292-23/+6
| | | | | | | | Don't bother coming up with a -cc1 run-line ourselves. This, in particular, gets rid of a macOS-specific code path. llvm-svn: 362009
* [analyzer] print() JSONify: SVal implementationCsaba Dabis2019-05-293-2/+17
| | | | | | | | | | | | | | | | | Summary: - Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus Reviewed By: NoQ Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D62497 llvm-svn: 362008
* [CMake] [Runtimes] Set *_STANDALONE_BUILDChris Bieneman2019-05-291-0/+6
| | | | | | | | | | | | | | | | | | | | | Summary: The runtimes use `*_STANDALONE_BUILD=OFF` to signify that clang is an in-tree target. This is not the case with the runtime builds, so we really need this set to `ON`. In order to resolve the issues phosek was having with checks, we should use checks that don't link. We can use compiler-rt's `try_compile_only` as a basis for that. This patch is *required* to be able to run the runtime libraries check-* targets. Reviewers: smeenai, phosek, compnerd Reviewed By: phosek Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62410 llvm-svn: 362007
* [InstCombine] Optimize always overflowing signed saturating add/subNikita Popov2019-05-292-24/+16
| | | | | | | | | Based on the overflow direction information added in D62463, we can now fold always overflowing signed saturating add/sub to signed min/max. Differential Revision: https://reviews.llvm.org/D62544 llvm-svn: 362006
* Fix an unused-variable error.Haojian Wu2019-05-291-0/+1
| | | | llvm-svn: 362005
* [WebAssembly] Support VPtr sanitizer for EmscriptenThomas Lively2019-05-293-0/+29
| | | | | | | | | | | | | | | | | | | | | | | Summary: After https://github.com/emscripten-core/emscripten/pull/8651, Emscripten supports the full UBSan runtime. This includes the VPtr sanitizer. This diff allows clang to generate code that uses the VPtr sanitizer for Emscripten. Patch by Guanzhong Chen Reviewers: tlively, aheejin Reviewed By: aheejin Subscribers: dschuff, sbc100, jgravelle-google, sunfish, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D62559 llvm-svn: 362004
* [analyzer] print() JSONify: CFG implementationCsaba Dabis2019-05-293-6/+25
| | | | | | | | | | | | | | | | | Summary: - Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus Reviewed By: NoQ Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D62496 llvm-svn: 362003
* [analyzer] print() JSONify: Decl revisionCsaba Dabis2019-05-291-6/+4
| | | | | | | | | | | | | | | | | Summary: - Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus Reviewed By: NoQ Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D62495 llvm-svn: 362002
* AMDGPU: Return address loweringAakanksha Patil2019-05-293-1/+92
| | | | | | | | The patch computes the return address for the current function. Differential revision: https://reviews.llvm.org/D59666 llvm-svn: 362001
* [analyzer][AST] print() JSONify: Stmt implementationCsaba Dabis2019-05-296-54/+79
| | | | | | | | | | | | | | | | | | | | Summary: This patch also adds a function called `JsonFormat()` which: - Flattens the string so removes the new-lines. - Escapes double quotes. Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus Reviewed By: NoQ Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D62494 llvm-svn: 362000
* [Target] Introduce Process::GetLanguageRuntimesAlex Langford2019-05-295-10/+42
| | | | | | | | | | | | | | | | Summary: Currently there's not really a good way to iterate over the language runtimes a process has. This is sometimes desirable (as seen in my change to Thread). Additionally, there's not really a good reason to iterate over every available language, but rather only over languages for which we have a plugin loaded. Reviewers: JDevlieghere, davide, jingham Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D62562 llvm-svn: 361999
* lit: modernize the lit configuration for the lit testsStella Stamenova2019-05-293-33/+17
| | | | | | | | | | | | | | Summary: This also normalizes the config feature that represents the windows platform to "system-windows" as opposed to having both "windows" and "system-windows" Reviewers: asmith, probinson Subscribers: delcypher, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D61798 llvm-svn: 361998
* [analyzer] print() JSONify: getNodeLabel implementationCsaba Dabis2019-05-295-119/+157
| | | | | | | | | | | | | | | | | Summary: This patch also rewrites the ProgramPoint printing. Reviewers: NoQ, xazax.hun, ravikandhadai, baloghadamsoftware, Szelethus Reviewed By: NoQ Subscribers: cfe-commits, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp Tags: #clang Differential Revision: https://reviews.llvm.org/D62346 llvm-svn: 361997
* [Index] Compute correct symbol kind for variable templatesIlya Biryukov2019-05-292-0/+49
| | | | | | | | | | | | | | | | | | Summary: The index library itself seems to never pass variable templates as input, however clangd does. Reviewers: kadircet Reviewed By: kadircet Subscribers: jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D62579 llvm-svn: 361996
* Fixed source header [NFC]Greg Clayton2019-05-291-1/+1
| | | | llvm-svn: 361995
* [CUDA][HIP] Skip setting `externally_initialized` for static device variables.Michael Liao2019-05-292-1/+12
| | | | | | | | | | | | | | | | | Summary: - By declaring device variables as `static`, we assume they won't be addressable from the host side. Thus, no `externally_initialized` is required. Reviewers: yaxunl Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D62603 llvm-svn: 361994
OpenPOWER on IntegriCloud