- Jul 25, 2020
-
-
Jessica Paquette authored
We weren't performing this optimization on 16 and 32 bit stores. SDAG happily does this though. e.g. https://godbolt.org/z/cWocKr This saves about 0.2% in code size on CTMark at -O3. Differential Revision: https://reviews.llvm.org/D84568
-
Rong Xu authored
Skip profile count promotion if any of the ExitBlocks contains a ret instruction. This is to prevent dumping of incomplete profile -- if the the loop is a long running loop and dump is called in the middle of the loop, the result profile is incomplete. ExitBlocks containing a ret instruction is an indication of a long running loop -- early exit to error handling code. Differential Revision: https://reviews.llvm.org/D84379
-
Matt Arsenault authored
The full expansion involves the funnel shifts, which depend on another patch to expand those.
-
Amara Emerson authored
Fixes legalization failures.
-
Jonas Devlieghere authored
LangaugeRuntime and SystemRuntime now both inherit from Runtime.
-
Jonas Devlieghere authored
-
Jez Ng authored
XCode passes in this flag, which we do not yet implement. Skip over the argument for now so we can at least successfully parse the linker invocation. Reviewed By: #lld-macho, compnerd Differential Revision: https://reviews.llvm.org/D84485
-
Jez Ng authored
This diff adds support for weak definitions, though it doesn't handle weak symbols in dylibs quite correctly -- we need to emit binding opcodes for them in the weak binding section rather than the lazy binding section. What *is* covered in this diff: 1. Reading the weak flag from symbol table / export trie, and writing it to the export trie 2. Refining the symbol table's rules for choosing one symbol definition over another. Wrote a few dozen test cases to make sure we were matching ld64's behavior. We can now link basic C++ programs. Reviewed By: #lld-macho, compnerd Differential Revision: https://reviews.llvm.org/D83532
-
Alina Sbirlea authored
This is the part of the patch that's moving the Updates to a CFGDiff object. Splitting off from the clean-up work merging the two branches when BUI is null. Differential Revision: https://reviews.llvm.org/D77341
-
Jinsong Ji authored
We added -nostdinc++ to clang_rt.profile in https://reviews.llvm.org/D84205. This will cause warnings when building with LLVM_ENABLE_LIBCXX, and failure if with Werror on. This patch is to fix it by removing unused -stdlib, similar to what we have done in https://reviews.llvm.org/D42238. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D84543
-
Jon Roelofs authored
It broke one of the buildbots: http://lab.llvm.org:8080/green/job/clang-stage1-RA/13026/console
-
Matt Arsenault authored
PHIElimination/createPHISourceCopy inserts non-branch terminators after the control flow pseudo if a successor phi reads a register defined by the control flow pseudo. If this happens, we need to split the expansion of the control flow pseudo to ensure all the branches are after all of the other mask management instructions. GlobalISel hit this in testscases that happened to be tail duplicated. The original testcase still does not work, since the same problem appears to be present in a later pass.
-
Petr Hosek authored
This addresses the issue introduced by 10b1b4a2.
-
Yifan Shen authored
If a module has debug info, the size of debug symbol will be displayed after the Symbols Loaded Message for each module in the VScode modules view.{F12335461} Reviewed By: wallace, clayborg Differential Revision: https://reviews.llvm.org/D83731 -
Walter Erquinigo authored
This reverts commit 986e3af5. It incorrectly deleted clang/tools/clang-format/git-clang-format
-
Yifan Shen authored
Summary: If a module has debug info, the size of debug symbol will be displayed after the Symbols Loaded Message for each module in the VScode modules view.{F12335461} Reviewers: wallace, clayborg Reviewed By: wallace, clayborg Subscribers: cfe-commits, aprantl, lldb-commits Tags: #lldb, #clang Differential Revision: https://reviews.llvm.org/D83731 -
Eli Friedman authored
dacf8d35 added support for most fcmp operations, but there are some extra variations I hadn't considered: SelectionDAG supports float comparisons that are neither ordered nor unordered. Add support for the missing operations. Differential Revision: https://reviews.llvm.org/D84460
-
Johannes Doerfert authored
This is the second of two patches to address PR46753. We basically allow SROA to promote allocas that are used in doppable instructions, for now that means `llvm.assume`. The (transitive) uses are replaced by `undef` in the droppable instructions. See also D83976. Reviewed By: Tyker Differential Revision: https://reviews.llvm.org/D83978
-
Johannes Doerfert authored
This is the first of two patches to address PR46753. We basically allow mem2reg to promote allocas that are used in doppable instructions, for now that means `llvm.assume`. The uses of the alloca (or a bitcast or zero offset GEP from there) are replaced by `undef` in the droppable instructions. Reviewed By: Tyker Differential Revision: https://reviews.llvm.org/D83976
-
Johannes Doerfert authored
SROA knows that it can look through addrspacecast but PromoteMemoryToRegister did not handle them. This caused an assertion error for the test case, exposed while running `Transforms/PhaseOrdering/inlining-alignment-assumptions.ll` with D83978 applied. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D84085
-
Johannes Doerfert authored
See PR46515 for the rational but generally, we want to *really* abort not gracefully shut down. Reviewed By: grokos, ABataev Differential Revision: https://reviews.llvm.org/D83963
-
Jacques Pienaar authored
-
shafik authored
[ASTImporter] Modify ImportDefiniton for ObjCInterfaceDecl so that we always the ImportDeclContext one we start the definition Once we start the definition of an ObjCInterfaceDecl we won't attempt to ImportDeclContext later on. Unlike RecordDecl case which uses DefinitionCompleter to force completeDefinition we don't seem to have a similar mechanism for ObjCInterfaceDecl. This fix was needed due to a bug we see in LLDB expression parsing where an initial expression cause an ObjCInterfaceDecl to be defined and subsequent expressions during import do not call ImportDeclContext and we can end up in a situation where ivars are imported out of order and not all ivars are imported. Differential Revision: https://reviews.llvm.org/D83972
-
Gui Andrade authored
Flattens arrays by ORing together all their elements. Differential Revision: https://reviews.llvm.org/D84446
-
cgyurgyik authored
-
Jon Chesterfield authored
Summary: Make hip math headers easier to use from C Motivation is a step towards using the hip math headers to implement math.h for openmp, which needs to work with C as well as C++. NFC for C++ code. Reviewers: yaxunl, jdoerfert Reviewed By: yaxunl Subscribers: sstefan1, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D84476
-
Nemanja Ivanovic authored
Unfortunately this is another regression from my canonicalization patch (1fed1316). The patch contained two implicit assumptions: 1. That we would have a permuted load only if we are loading a partial vector 2. That a partial vector load would necessarily be as wide as the splat However, assumption 2 is not correct since it is possible to do a wider load and only splat a half of it. This patch corrects this assumption by simply checking if the load is permuted and adjusting the offset if it is.
-
Kirstóf Umann authored
Was accidentally squished into rGb6cbe6cb. The assert fires on the code snippet included in this commit. More discussion can be found in https://reviews.llvm.org/D82598.
-
Martin Storsjö authored
For comdats (e.g. caused by -ffunction-sections), Section is already set here; make sure it's null, for the weak external symbol to be undefined. This fixes PR46779. Differential Revision: https://reviews.llvm.org/D84507
-
Martin Storsjö authored
This fixes PR 42837. Differential Revision: https://reviews.llvm.org/D84465
-
Arthur Eubanks authored
Summary: To match NewPM name. Also the new name is clearer and more consistent. Subscribers: jvesely, nhaehnle, hiraditya, asbirlea, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D84542
-
Jonas Devlieghere authored
When a process is notified that modules got loaded, currently only existing language runtimes are given a chance to deal with that. This means that if the runtime for a given language wasn't needed before it won't be informed of the module chance. This is wrong because the module change might be what triggers the need for a certain runtime. Instead, we should give the language runtime for every supported language a chance to deal with the modified modules. Differential revision: https://reviews.llvm.org/D84475
-
Valentin Clement authored
This patch removes the OMP_DIRECTIVE definition from OMPKinds.def since they are now defined in OMP.td and OMP_DIRECTIVE is not used anymore in the code. Reviewed By: jdenny Differential Revision: https://reviews.llvm.org/D84329
-
cgyurgyik authored
Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D84469
-
madhur13490 authored
Reviewers: arsenm, foad, rampitec, scott.linder Reviewed By: arsenm Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D84391
-
Craig Topper authored
[X86] Move the implicit enabling of sse2 for 64-bit mode from X86Subtarget::initSubtargetFeatures to X86_MC::ParseX86Triple. ParseX86Triple already checks for 64-bit mode and produces a static string. We can just add +sse2 to the end of that static string. This avoids a potential reallocation when appending it to the std::string at runtime. This is a slight change to the behavior of tools that only use MC layer which weren't implicitly enabling sse2 before, but will now. I don't think we check for sse2 explicitly in any MC layer components so this shouldn't matter in practice. And if it did matter the new behavior is more correct.
-
Francesco Petrogalli authored
Reviewers: kmclaughlin, efriedma, sdesmalen Subscribers: tschuett, hiraditya, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D83357
-
Craig Topper authored
[X86] Use X86_MC::ParseX86Triple to add mode features to feature string in X86Subtarget::initSubtargetFeatures. Remove mode flags from constructor and remove calls to ToggleFeature for the mode bits. By adding them to the feature string we handle initializing the mode member variables in X86Subtarget and the feature bits in MCSubtargetInfo in one shot.
-
Meera Nakrani authored
Added extra patterns to VABD instruction so it is selected in place of VSUB and VABS. Added corresponding regression test too. Differential Revision: https://reviews.llvm.org/D84500
-
Kostya Kortchinsky authored
Summary: On 32-b, the release algo loops multiple times over the freelist for a size class, which lead to a decrease in performance when there were a lot of free blocks. This changes the release functions to loop only once over the freelist, at the cost of using a little bit more memory for the release process: instead of working on one region at a time, we pass the whole memory area covered by all the regions for a given size class, and work on sub-areas of `RegionSize` in this large area. For 64-b, we just have 1 sub-area encompassing the whole region. Of course, not all the sub-areas within that large memory area will belong to the class id we are working on, but those will just be left untouched (which will not add to the RSS during the release process). Reviewers: pcc, cferris, hctim, eugenis Subscribers: llvm-commits, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D83993
-