summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* AMDGPU/GlobalISel: Fix misuse of div_scale intrinsicsMatt Arsenault2019-12-212-157/+157
| | | | | | | | | | | Confusingly, the intrinsic operands do not match the instruction/custom node. The order is shuffled, and the 3rd operand is an immediate to select operands. I'm not 100% sure I did this right, but fdiv still doesn't select end to end and it will be easier to tell when it does. This at least avoids an assertion in RegBankSelect and allows hitting the fallback on selection.
* AMDGPU/GlobalISel: Fix missing scc imp-def on scalar and/or/xorMatt Arsenault2019-12-214-56/+61
|
* AMDGPU/GlobalISel: Simplify codeMatt Arsenault2019-12-211-5/+5
| | | | | This can directly access the register bank, and doesn't need to get it through the ID.
* features.html: Remove some old infoSylvestre Ledru2019-12-211-3/+0
|
* clang is now under the apache2 licenseSylvestre Ledru2019-12-212-10/+9
|
* Remove a gcc 4.9 comparison as it doesn't make senseSylvestre Ledru2019-12-211-8/+2
|
* [libc++] Fix typo in std::midpointRuslan Baratov2019-12-211-1/+1
| | | | | | Reviewed By: mclow.lists Differential Revision: https://reviews.llvm.org/D71525
* Revert "[msan] Check qsort input." and "[msan] Intercept qsort, qsort_r."Jonas Devlieghere2019-12-203-169/+0
| | | | | | | | | | | | | | Temporarily revert the qsort changes because they fail to build on bots that build with modules: > error: thread-local storage is not supported for the current > target (iossim) http://green.lab.llvm.org/green/job/clang-stage2-Rthinlto/1820/console http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/4983/console This reverts commit ddf897fc80499ece298bc33201db6b697d2af50e. This reverts commit 07861e955d0095f25639d84c5726c73b528567cb.
* [lldb/test] Update !DIModule for isysroot renameJonas Devlieghere2019-12-201-2/+2
| | | | | The isysroot field in DIModule was renamed to sysroot but the test in LLDB wasn't updated. This fixes that.
* [ORC] De-register eh-frames in the RTDyldObjectLinkingLayer destructor.Lang Hames2019-12-202-0/+8
| | | | | This matches the behavior of the legacy layer, which automatically deregistered frames.
* [lldb/test] Skip editline tests when LLDB_ENABLE_LIBEDIT is off.Jonas Devlieghere2019-12-205-0/+8
| | | | | Add a new decorator that checks if LLDB was build with editline support and mark the relevant tests as skipped when that's not the case.
* [lldb] Expose more optional dependencies through GetBuildConfiguration()Jonas Devlieghere2019-12-201-0/+12
| | | | | Expose all the externally-observable optional dependencies through SBDebugger::GetBuildConfiguration().
* [lldb/CMake] Don't use return() from macro()Jonas Devlieghere2019-12-201-4/+7
| | | | | | | | | > A macro is executed as if the macro body were pasted in place of the > calling statement. This has the consequence that a return() in a macro > body does not just terminate execution of the macro After converting from a function() to a macro(), the return() became invalid. This modifies the control flow to elude the return.
* Re-land "[lldb/CMake] Change how we deal with optional dependencies"Jonas Devlieghere2019-12-204-46/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recently there has been some discussion about how we deal with optional dependencies in LLDB. The approach in LLVM is to make things work out of the box. If the dependency isn't there, we move on silently. That's not true for LLDB. Unless you explicitly disable the dependency with LLDB_ENABLE_*, you'll get a configuration-time error. The historical reason for this is that LLDB's dependencies have a much broader impact, think about Python for example which is required to run the test suite. The current approach can be frustrating from a user experience perspective. Sometimes you just want to ensure LLDB builds with a change in clang. This patch changes the optional dependencies (with the exception of Python) to a new scheme. The LLDB_ENABLE_* now takes three values: On, Off or Auto, with the latter being the default. On and Off behave the same as today, forcing the dependency to be enabled or disabled. If the dependency is set to On but is not found, it results in a configuration time warning. For Auto we detect if the dependency is there and either enable or disable it depending on whether it's found. Differential revision: https://reviews.llvm.org/D71306 PS: The reason Python isn't included yet is because it's so pervasive that I plan on doing that in a separate patch.
* hopefully last doc typo fix to cycle botsNico Weber2019-12-201-1/+1
|
* fix yet another doc typo to cycle botsNico Weber2019-12-201-2/+2
|
* fix another doc typo to cycle botsNico Weber2019-12-201-1/+1
|
* fix a doc typo to cycle botsNico Weber2019-12-201-1/+1
|
* Constrain the macho-stabs test added in f72d001e099 to run on systems ↵Michael Trent2019-12-201-0/+1
| | | | | | | | | | | | | | | | configured with an x86 backend. Summary: This fixes a failure on the Builder clang-cmake-armv7-quick bot. Reviewers: lhames, jhenderson Reviewed By: lhames Subscribers: kristof.beyls, rupprecht, seiya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71792
* Add a set of tests with basic coverage of the recently added boundary align ↵Philip Reames2019-12-201-0/+110
| | | | | | feature. There are tests in the included patch, but the duplication is non obvious, so I'm starting with basic coverage beore cleaning up a few of them
* gn build: Silence mismatched-new-delete warning in scudo C++ wrapper tests.Peter Collingbourne2019-12-201-0/+4
| | | | | | | These tests are deliberately mismatching new and delete, so the warnings are just noise. Differential Revision: https://reviews.llvm.org/D71783
* [NFC][MachineOutliner] Rewrite setSuffixIndices to be iterativeJessica Paquette2019-12-201-18/+25
| | | | | | | | Having this function be recursive could use up way too much stack space. Rewrite it as an iterative traversal in the tree instead to prevent this. Fixes PR44344.
* [X86] Add test cases for missing propagation of fpexcept flag on strict fp ↵Craig Topper2019-12-203-0/+191
| | | | | | | operations. NFC The flag is being lost during type legalization or lowering. This covers some of the cases. I'm sure there are many missing.
* [llvm-symbolizer] Prefix invocations in test with envPetr Hosek2019-12-201-2/+2
| | | | | This addresses an issue introduced in dedad08 and is needed to make sure this test works properly on Windows.
* Revert "[lldb/CMake] Change how we deal with optional dependencies"Jonas Devlieghere2019-12-203-47/+44
| | | | This is failing on both the Windows and Debian bot.
* [DWARF] Defer creating declaration DIEs until we prepare call site infoVedant Kumar2019-12-204-31/+12
| | | | | | | | It isn't necessary to create DIEs for all of the declaration subprograms in a CU's retainedTypes list. We can defer creating these subprograms until we need to prepare a call site tag that refers to one. This cleanup was mentioned in passing in D70350.
* Reland: [DWARF] Allow cross-CU references of subprogram definitionsVedant Kumar2019-12-206-7/+297
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows a call site tag in CU A to reference a callee DIE in CU B without resorting to creating an incomplete duplicate DIE for the callee inside of CU A. We already allow cross-CU references of subprogram declarations, so it doesn't seem like definitions ought to be special. This improves entry value evaluation and tail call frame synthesis in the LTO setting. During LTO, it's common for cross-module inlining to produce a call in some CU A where the callee resides in a different CU, and there is no declaration subprogram for the callee anywhere. In this case llvm would (unnecessarily, I think) emit an empty DW_TAG_subprogram in order to fill in the call site tag. That empty 'definition' defeats entry value evaluation etc., because the debugger can't figure out what it means. As a follow-up, maybe we could add a DWARF verifier check that a DW_TAG_subprogram at least has a DW_AT_name attribute. Update: Reland with a fix to create a declaration DIE when the declaration is missing from the CU's retainedTypes list. The declaration is left out of the retainedTypes list in two cases: 1) Re-compiling pre-r266445 bitcode (in which declarations weren't added to the retainedTypes list), and 2) Doing LTO function importing (which doesn't update the retainedTypes list). It's possible to handle (1) and (2) by modifying the retainedTypes list (in AutoUpgrade, or in the LTO importing logic resp.), but I don't see an advantage to doing it this way, as it would cause more DWARF to be emitted compared to creating the declaration DIEs lazily. Tested with a stage2 ThinLTO+RelWithDebInfo build of clang, and with a ReleaseLTO-g build of the test suite. rdar://46577651, rdar://57855316, rdar://57840415 Differential Revision: https://reviews.llvm.org/D70350
* llvm-objdump should ignore Mach-O stab symbols for disassembly.Michael Trent2019-12-203-2/+33
| | | | | | | | | | | | | | | | | | | | | | | | Summary: llvm-objdump will commonly error out when disassembling a Mach-O binary with stab symbols, or when printing a Mach-O symbol table that includesstab symbols. That is because the Mach-O N_OSO symbol has been modified to include the bottom 8-bit value of the Mach-O's cpusubtype value in the section field. In general, one cannot blindly assume a stab symbol's section field is valid unless one has actually consulted the specification for the specific stab. Since objdump mostly just walks the symbol table to get mnemonics for code disassembly it's best for objdump to just ignore stab symbols. llvm-nm will do a more complete and correct job of displaying Mach-O symbol table contents. Reviewers: pete, lhames, ab, thegameg, jhenderson, MaskRay Reviewed By: thegameg, MaskRay Subscribers: MaskRay, rupprecht, seiya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71394
* [WebAssembly] Use TargetIndex operands in DbgValue to track WebAssembly ↵Yury Delendik2019-12-2016-4/+244
| | | | | | | | | | | | | | | | | | operands locations Extends DWARF expression language to express locals/globals locations. (via target-index operands atm) (possible variants are: non-virtual registers or address spaces) The WebAssemblyExplicitLocals can replace virtual registers to targertindex operand type at the time when WebAssembly backend introduces {get,set,tee}_local instead of corresponding virtual registers. Reviewed By: aprantl, dschuff Tags: #debug-info, #llvm Differential Revision: https://reviews.llvm.org/D52634
* Fix name of InitLibcalls() function in commentSam Clegg2019-12-201-1/+1
| | | | Differential Revision: https://reviews.llvm.org/D71781
* Temporarily restrict the test for D71372 to darwin till we fix it on other ↵Jim Ingham2019-12-201-1/+1
| | | | systems.
* [lldb/CMake] Change how we deal with optional dependenciesJonas Devlieghere2019-12-203-44/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recently there has been some discussion about how we deal with optional dependencies in LLDB. The approach in LLVM is to make things work out of the box. If the dependency isn't there, we move on silently. That's not true for LLDB. Unless you explicitly disable the dependency with LLDB_ENABLE_*, you'll get a configuration-time error. The historical reason for this is that LLDB's dependencies have a much broader impact, think about Python for example which is required to run the test suite. The current approach can be frustrating from a user experience perspective. Sometimes you just want to ensure LLDB builds with a change in clang. This patch changes the optional dependencies (with the exception of Python) to a new scheme. The LLDB_ENABLE_* now takes three values: On, Off or Auto, with the latter being the default. On and Off behave the same as today, forcing the dependency to be enabled or disabled. If the dependency is set to On but is not found, it results in a configuration time warning. For Auto we detect if the dependency is there and either enable or disable it depending on whether it's found. Differential revision: https://reviews.llvm.org/D71306 PS: The reason Python isn't included yet is because it's so pervasive that I plan on doing that in a separate patch.
* [iOS sim] Ensure simulator device is booted in iossim_prepare.pyJulian Lettner2019-12-201-1/+13
| | | | | | | | | | | | | | Recent versions of the iOS simulator require that a "simulator device" is booted before we can use `simctl spawn` (see iossim_run.py) to start processes. We can use `simctl bootstatus` to ensure that the simulator device is booted before we run any tests via lit. The `-b` option starts the device if necessary. Reviewed By: delcypher Differential Revision: https://reviews.llvm.org/D71449
* Revert "Customize simplified dumping and matching of LambdaExpr"Stephen Kelly2019-12-204-204/+4
| | | | This reverts commit 494b1318ca77927e919bbf9a61749a58553d738c.
* [InstCombine] Improve infinite loop detectionJakub Kuderski2019-12-202-4/+18
| | | | | | | | | | | | | | | | | | | Summary: This patch limits the default number of iterations performed by InstCombine. It also exposes a new option that allows to specify how many iterations is considered getting stuck in an infinite loop. Based on experiments performed on real-world C++ programs, InstCombine seems to perform at most ~8-20 iterations, so treating 1000 iterations as an infinite loop seems like a safe choice. See D71145 for details. The two limits can be specified via command line options. Reviewers: spatel, lebedev.ri, nikic, xbolva00, grosser Reviewed By: spatel Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71673
* Customize simplified dumping and matching of LambdaExprStephen Kelly2019-12-204-4/+204
| | | | | | | | | | Reviewers: aaron.ballman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D71680
* Rename DW_AT_LLVM_isysroot to DW_AT_LLVM_sysrootAdrian Prantl2019-12-2019-45/+45
| | | | | | | | | | | | This is a purely cosmetic change that is NFC in terms of the binary output. I bugs me that I called the attribute DW_AT_LLVM_isysroot since the "i" is an artifact of GCC command line option syntax (-isysroot is in the category of -i options) and doesn't carry any useful information otherwise. This attribute only appears in Clang module debug info. Differential Revision: https://reviews.llvm.org/D71722
* [compiler-rt] [test] Disable MPROTECT for XRay tests on NetBSDMichał Górny2019-12-201-0/+3
|
* [scudo][standalone] Support __BIONIC__Kostya Kortchinsky2019-12-201-1/+5
| | | | | | | | | | | | | | Summary: Some Android builds that we are interested in define `__BIONIC__` but not `__ANDROID__`, so expand `SCUDO_ANDROID` to encompass those. Reviewers: cferris, hctim, pcc, eugenis, morehouse Subscribers: krytarowski, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D71772
* Add parentheses to silence warningBill Wendling2019-12-201-2/+2
|
* [llvm-symbolizer] Support reading options from environmentPetr Hosek2019-12-204-2/+16
| | | | | | | | | | | | | llvm-symbolizer is used by sanitizers to symbolize errors discovered by sanitizer, but there's no way to pass options to llvm-symbolizer since the tool is invoked directly by the sanitizer runtime. Therefore, we don't have a way to pass options needed to find debug symbols such as -dsym-hint or -debug-file-directory. This change enables reading options from the LLVM_SYMBOLIZER_OPTS in addition to command line which can be used to pass those additional options to llvm-symbolizer invocations made by sanitizer runtime. Differential Revision: https://reviews.llvm.org/D71668
* [msan] Check qsort input.Evgenii Stepanov2019-12-202-0/+23
| | | | | | | | | | | | | | | | | | Summary: Qsort interceptor suppresses all checks by unpoisoning the data in the wrapper of a comparator function, and then unpoisoning the output array as well. This change adds an explicit run of the comparator on all elements of the input array to catch any sanitizer bugs. Reviewers: vitalybuka Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D71780
* [analyzer] Add path notes to FuchsiaHandleCheck.Gabor Horvath2019-12-203-12/+126
| | | | Differential Revision: https://reviews.llvm.org/D70725
* [gn build] Port 82923c71efaLLVM GN Syncbot2019-12-201-0/+1
|
* [analyzer] Add Fuchsia Handle checkerGabor Horvath2019-12-207-0/+830
| | | | | | | The checker can diagnose handle use after releases, double releases, and handle leaks. Differential Revision: https://reviews.llvm.org/D70470
* [msan] Intercept qsort, qsort_r.Evgenii Stepanov2019-12-203-0/+146
| | | | | | | | | | | | | | | Summary: This fixes qsort-related false positives with glibc-2.27. I'm not entirely sure why they did not show up with the earlier versions; the code seems similar enough. Reviewers: vitalybuka Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D71740
* More style cleanups following rG14fc20ca6282 [NFC]Philip Reames2019-12-201-34/+28
| | | | | | | Demote member functions to static functions where possible Use early continue/early return to reduce nesting Clarify comments slightly. Reuse previously define expression in one case.
* Avoid unsupported LLD optionsSid Manning2019-12-203-3/+30
| | | | Differential Revision: https://reviews.llvm.org/D70919
* Fix a memory leak introduced w/the instruction padding support in rG14fc20ca6282Philip Reames2019-12-201-6/+6
| | | | Should have caught this in review, but only noticed when addressing post commit style items. We were creating a new instance of the X86MCInstrInfo class, and then never reclaiming the memory. This wasn't even conditional on the new off by default flags, so it was an unconditional leak.
* Comment and adjust style in the newly introduced MCBoundaryAlignFragment ↵Philip Reames2019-12-202-13/+14
| | | | infrastructure. More to follow.
OpenPOWER on IntegriCloud