- Jul 25, 2020
-
-
Adrian Prantl authored
-
Rong Xu authored
Function entry count might be zero after the profile counts reset and before reentry to the function. Zero profile entry count is very bad as the profile count from BFI will be wrong. A simple fix is to set the profile entry count to 1 if there are non-zero profile counts in this function. Differential Revision: https://reviews.llvm.org/D84378
-
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
-
Amy Kwan authored
This patch implements the `vec_xst_trunc` function in altivec.h in order to utilize the Store VSX Vector Rightmost [byte | half | word | doubleword] Indexed instructions introduced in Power10. Differential Revision: https://reviews.llvm.org/D82467
-
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
-