summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [DebugInfo] Remove the DIFlagArgumentNotModified debug info flagDjordje Todorovic2019-11-2023-58/+39
| | | | | | | Due to changes in D68206, we remove the DIFlagArgumentNotModified and its usage. Differential Revision: https://reviews.llvm.org/D68207
* gn build: Merge ea8678d1c78LLVM GN Syncbot2019-11-201-0/+1
|
* [lldb][NFC] Remove unused ClangASTContext::GetUnknownAnyTypeRaphael Isemann2019-11-202-13/+0
|
* [clangd] Treat UserDefinedLiteral as a leaf in SelectionTree, sidestepping ↵Sam McCall2019-11-202-0/+24
| | | | | | | | | | | | | | tokenization issues Summary: Fixes https://github.com/clangd/clangd/issues/203 Reviewers: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D70446
* Move floating point related entities to namespace levelSerge Pavlov2019-11-208-157/+198
| | | | | | | | | | | | | | | | | | This is recommit of commit e6584b2b7b2d, which was reverted in 30e7ee3c4bac together with af57dbf12e54. Original message is below. Enumerations that describe rounding mode and exception behavior were defined inside ConstrainedFPIntrinsic. It makes sense to use the same definitions to represent the same properties in other cases, not only in constrained intrinsics. It was however inconvenient as required to include constrained intrinsics definitions even if they were not needed. Also using long scope prefix reduced readability. This change moves these definitioins to the namespace llvm::fp. No functional changes. Differential Revision: https://reviews.llvm.org/D69552
* [lldb][NFC] Simplify ClangASTContext::GetBasicTypesRaphael Isemann2019-11-204-34/+19
| | | | | static convenience methods that do the clang::ASTContext -> ClangASTContext conversion and handle errors by simply ignoring them are not a good idea.
* [lldb][NFC] Remove ClangASTContext::GetAsDeclContextRaphael Isemann2019-11-203-23/+4
| | | | Everything we pass to this function is already a DeclContext.
* [lldb][NFC] Remove ClangASTContext::FieldIsBitfield overloadRaphael Isemann2019-11-202-14/+4
|
* [lldb][NFC] Remove ClangASTContext::GetUniqueNamespaceDeclaration overloadRaphael Isemann2019-11-203-19/+6
| | | | | | This overload is only used in one place and having static overloads for all methods that only do an additional clang::ASTContext -> ClangASTContext conversion is just not sustainable.
* [AMDGPU] add support for hostcall buffer pointer as hidden kernel argumentSameer Sahasrabuddhe2019-11-2013-2/+278
| | | | | | | | | | | Hostcall is a service that allows a kernel to submit requests to the host using shared buffers, and block until a response is received. This will eventually replace the shared buffer currently used for printf, and repurposes the same hidden kernel argument. This change introduces a new ValueKind in the HSA metadata to represent the hostcall buffer. Differential Revision: https://reviews.llvm.org/D70038
* [ExecutionEngine] Add a missing break to avoid warningsMartin Storsjö2019-11-201-0/+1
| | | | This fixes buildbot errors since dc3ee330891c2.
* [llvm-readobj] - Improve dumping of the SHT_LLVM_LINKER_OPTIONS sections.Georgii Rymar2019-11-202-13/+62
| | | | | | | I've added a few tests that shows how the current code could overrun the section data buffer while dumping. I had to rewrite the code to fix this. Differential revision: https://reviews.llvm.org/D70112
* Reland "[clang] Remove the DIFlagArgumentNotModified debug info flag"Djordje Todorovic2019-11-204-72/+2
| | | | | | | | | | It turns out that the ExprMutationAnalyzer can be very slow when AST gets huge in some cases. The idea is to move this analysis to the LLVM back-end level (more precisely, in the LiveDebugValues pass). The new approach will remove the performance regression, simplify the implementation and give us front-end independent implementation. Differential Revision: https://reviews.llvm.org/D68206
* ExecutionEngine: add preliminary support for COFF ARM64Adam Kallai2019-11-204-1/+523
| | | | Differential Revision: https://reviews.llvm.org/D69434
* [llvm-readobj/llvm-readelf] - Improve dumping of versioning sections.Georgii Rymar2019-11-2010-62/+204
| | | | | | | | | | | | | Our elf-versioninfo.test is not perfect. It does not properly test how flags are dumped and also we have a bug: they are dumped as enums in LLVM style now, i.e not dumped properly. GNU style uses a `versionFlagToString` method to build a string from flags which seems is consistent with GNU readelf. In this patch I fixed the issues mentioned. Differential revision: https://reviews.llvm.org/D70399
* Introduce llvm-install-name-toolAlexander Shaposhnikov2019-11-1917-21/+402
| | | | | | | | | | This diff adds a new "driver" for llvm-objcopy which is supposed to emulate the behavior of install-name-tool. This is a recommit of b5913e6 with ubsan, test dependencies issues fixed. Differential revision: https://reviews.llvm.org/D69146 Test plan: make check-all
* [FEnv] Fix AddingConstrainedIntrinsics.rst after ↵Fangrui Song2019-11-191-1/+1
| | | | llvmorg-10-init-10282-g0c50c0b0552
* [FEnv] File with properties of constrained intrinsicsSerge Pavlov2019-11-2012-594/+208
| | | | | | | | | | | | | | | | | | Summary In several places we need to enumerate all constrained intrinsics or IR nodes that should be represented by them. It is easy to miss some of the cases. To make working with these intrinsics more convenient and robust, this change introduces file containing definitions of all constrained intrinsics and some of their properties. This file can be included to generate constrained intrinsics processing code. Reviewers: kpn, andrew.w.kaylor, cameron.mcinally, uweigand Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69887
* AMDGPU/GlobalISel: Legalize FDIV64Austin Kerbow2019-11-193-41/+555
| | | | | | | | | | | | Reviewers: arsenm Reviewed By: arsenm Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, dstuttard, tpr, t-tye, hiraditya, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D70403
* Use lld::make<T> to make TpiSource objectsRui Ueyama2019-11-201-10/+7
| | | | | | | | In lld we rarely use std::unique_ptr but instead allocate new instances using lld::make<T>() so that they are deallocated at the end of linking. This patch changes existing code so that that follows the convention. Differential Revision: https://reviews.llvm.org/D70420
* Extends the tblgen macro to allow mlir-tblgen to be installedEric Schweitz2019-11-191-1/+1
| | | | | | | The mlir-tblgen tool was not getting installed. This change allows the MLIR project to be installed along with llvm-tblgen. Differential Revision: https://reviews.llvm.org/D69824
* Revert "[clang][IFS] Driver Pipeline: generate stubs after standard pipeline ↵Puyan Lotfi2019-11-197-136/+39
| | | | | | (2)" This reverts commit ea8e02822341e2421b94167d828d3f224e767424.
* Revert "[clang][IFS] Fixing failing bots that do not have PPC target or ↵Puyan Lotfi2019-11-192-4/+0
| | | | | | "orbis-ld"" This reverts commit 377d70cdea733e36107e99d9148864d24797d51c.
* Revert "[clang][IFS] Attempting to fix missing 'orbis-ld' on scei-ps4-ubuntu ↵Puyan Lotfi2019-11-191-3/+1
| | | | | | bot." This reverts commit 29fd1e1f4a372f3870e054da24b57a4f45861808.
* Revert "[clang][IFS] Fixing unsupported emulation mode on ↵Puyan Lotfi2019-11-191-1/+0
| | | | | | clang-ppc64be-linux bot." This reverts commit 1b387484b9b38a4a1e98a9d22a9a26065b0d184e.
* Revert "[clang][IFS][test] Removing driver-test.c. Test is still too brittle."Puyan Lotfi2019-11-191-0/+15
| | | | This reverts commit f37356d6f60ae5db978611621d3a375ed87ec0f0.
* [clang][IFS][test] Removing driver-test.c. Test is still too brittle.Puyan Lotfi2019-11-191-15/+0
| | | | | | | Removing this test because if I add a triple then there are link falures on targets like ppc and s390x. If I don't add a triple then on PS4 targets the clang driver tries to invoke orbis-ld which ends up being not found.
* clang/Modules: Early return in CompilerInstance::createModuleManager, NFCDuncan P. N. Exon Smith2019-11-191-43/+44
| | | | Reduce nesting with an early `return`.
* [musttail] Don't forward AL on Win64Reid Kleckner2019-11-193-20/+47
| | | | | | | | | | | | | | | | AL is only used for varargs on SysV platforms. Don't forward it on Windows. This allows control flow guard to set up an extra hidden parameter in RAX, as described in PR44049. This also has the effect of freeing up RAX for use in virtual member pointer thunks, which may also be a nice little code size improvement on Win64. Fixes PR44049 Reviewers: ajpaverd, efriedma, hans Differential Revision: https://reviews.llvm.org/D70413
* [LTO][Legacy] Add API for passing LLVM options separatelyFrancis Visoiu Mistrih2019-11-195-9/+32
| | | | | | | | | | | | In order to correctly pass options to LLVM, including options containing spaces which are used as delimiters for multiple options in lto_codegen_debug_options, add a new API: lto_codegen_debug_options_array. Unfortunately, tools/lto has no testing infrastructure yet, so there are no tests associated with this patch. Differential Revision: https://reviews.llvm.org/D70463
* [clang][IFS] Fixing unsupported emulation mode on clang-ppc64be-linux bot.Puyan Lotfi2019-11-191-0/+1
| | | | | | I am in another pickle here where if I specify a triple, I get the wrong elf target arch on the PPC bot (error from the PPC elf Linker). To avoid this I am going to turn this test off on the PPC bots for now.
* Revert "Introduce llvm-install-name-tool"Alexander Shaposhnikov2019-11-1915-398/+20
| | | | | This temporarily reverts the commit 88f00aef684ff84a6494e1f17d5466c5678f703d. The change broke the buildbot http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/36836
* [Reproducer] Namespace the reproducer dump options.Jonas Devlieghere2019-11-192-3/+3
| | | | Make it clear that the current reproducer options are for dumping.
* [LegalizeDAG][X86] Enable STRICT_FP_TO_SINT/UINT to be promotedCraig Topper2019-11-193-20/+174
| | | | Differential Revision: https://reviews.llvm.org/D70220
* scudo: Switch from std::random_shuffle to std::shuffle in a test.Peter Collingbourne2019-11-191-1/+2
| | | | | | This lets the test build with C++17. Differential Revision: https://reviews.llvm.org/D70471
* clang/Modules: Sink ASTReadResult in ReadControlBlock, NFCDuncan P. N. Exon Smith2019-11-191-5/+5
| | | | | | | | Simplify the code by avoiding some state that wasn't being used. The function-level `Result` was only assigned a value other than `Success` in the handler for `OPTIONS_BLOCK_ID`, but in that case it also hits an early return. Remove it at the function-level to make it obvious that the normal case always returns `Success`.
* [X86] Add custom type legalization and lowering for scalar ↵Craig Topper2019-11-194-172/+866
| | | | | | | | | | | | | | | STRICT_FP_TO_SINT/UINT This is a first pass at Custom lowering for these operations. I also updated some of the vector code where it was obviously easy and straightforward. More work needed in follow up. This enables these operations to be handled with X87 where special rounding control adjustments are needed to perform a truncate. Still need to fix Promotion in the target independent code in LegalizeDAG. llrint/llround split into separate test file because we can't make a strict libcall properly yet either and we need to do that when i64 isn't a legal type. This does not include any isel support. So we still rely on the mutation in SelectionDAGIsel to remove the strict from this stuff later. Except for the X87 stuff which goes through custom nodes that already had chains. Differential Revision: https://reviews.llvm.org/D70214
* [tests] Autogen a test to eliminate spurious diff from following patchPhilip Reames2019-11-191-20/+20
|
* [ARC] Add InitializePasses header to fix ARC build.Pete Couperus2019-11-192-0/+2
|
* [clang][IFS] Attempting to fix missing 'orbis-ld' on scei-ps4-ubuntu bot.Puyan Lotfi2019-11-191-1/+3
| | | | | | I want this test to run end to end, but I am still having trouble with missing linkers on the scei-ps4 bot. Will remove this test if it continues to be a source of brittle failures. Sorry for the noise.
* [lldb][test] Prevent \n in calls to lldb's expect() test helper.Jordan Rupprecht2019-11-192-17/+15
| | | | | | | | | | | | | | | | | Summary: expect() forwards its command to sendline(). This can be problematic if the command already contains a newline: sendline() unconditionally adds a newline to the command, which causes the command to run twice (hitting enter in lldb runs the previous command). The expect() helper looks for the prompt and finds the first one, but because the command has run a second time, the buffer will contain the contents of the second time the command ran, causing potential erroneous matching. Simplify the editline test, which was using different commands to workaround this misunderstanding. Reviewers: labath Reviewed By: labath Subscribers: merge_guards_bot, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D70324
* Introduce llvm-install-name-toolAlexander Shaposhnikov2019-11-1915-20/+398
| | | | | | | | | | This diff adds a new "driver" for llvm-objcopy which is supposed to emulate the behavior of install-name-tool. This is a recommit of b5913e6d2 with ubsan issues fixed. Differential revision: https://reviews.llvm.org/D69146 Test plan: make check-all
* [GuardWidening] Remove WidenFrequentBranches transformPhilip Reames2019-11-192-888/+6
| | | | This code has never been enabled. While it is tested, it's complicating some refactoring. If we decide to re-implement this, doing it in SimplifyCFG would probably make more sense anyways.
* [clang][IFS] Fixing failing bots that do not have PPC target or "orbis-ld"Puyan Lotfi2019-11-192-0/+4
|
* [clang][IFS] Driver Pipeline: generate stubs after standard pipeline (2)Puyan Lotfi2019-11-197-39/+136
| | | | | | | | | | | | | | | | | | | Second Landing Attempt: Up until now, clang interface stubs has replaced the standard PP -> C -> BE -> ASM -> LNK pipeline. With this change, it will happen in conjunction with it. So what when you build your code you will get an a.out or lib.so as well as an interface stub file. Example: clang -shared -o libfoo.so -emit-interface-stubs ... will generate both a libfoo.so and a libfoo.ifso. The .so file will contain the code from the standard compilation pipeline and the .ifso file will contain the ELF stub library. Differential Revision: https://reviews.llvm.org/D70274
* [NFC] Factor out utilities for manipulating widenable branchesPhilip Reames2019-11-196-13/+53
| | | | | | With the widenable condition construct, we have the ability to reason about branches which can be 'widened' (i.e. made to fail more often). We've got a couple o transforms which leverage this. This patch just cleans up the API a bit. This is prep work for generalizing our definition of a widenable branch slightly. At the moment "br i1 (and A, wc()), ..." is considered widenable, but oddly, neither "br i1 (and wc(), B), ..." or "br i1 wc(), ..." is. That clearly needs addressed, so first, let's centralize the code in one place.
* [LoopPred] Generalize profitability check to handle unswitch outputPhilip Reames2019-11-192-1/+93
| | | | Unswitch (and other loop transforms) like to generate loop exit blocks with unconditional successors, and phi nodes (LCSSA, or simple multiple exiting blocks sharing an exit). Generalize the "likely very rare exit" check slightly to handle this form.
* [AArch64] Fix MIR test instruction to not have invalid operand.Amara Emerson2019-11-191-2/+2
| | | | In anticipation of an improved verifier in D63973.
* [ValueTracking] Add a basic version of isKnownNonInfinity and use it to ↵Benjamin Kramer2019-11-193-7/+111
| | | | detect more NoNaNs
* Wrap C APIs with pragmas enforcing -Werror=strict-prototypesDuncan P. N. Exon Smith2019-11-1940-231/+210
| | | | | | | | | Force `-Werror=strict-prototypes` so that C API tests fail to compile if we add a non-prototype declaration. This should help avoid regressions like bddecba4b333f7772029b4937d2c34f9f2fda6ca was fixing. https://reviews.llvm.org/D70285 rdar://problem/57203137
OpenPOWER on IntegriCloud