- May 11, 2020
-
-
Sergey Dmitriev authored
Reviewers: jdoerfert, sstefan1, uenoku Reviewed By: uenoku Subscribers: hiraditya, uenoku, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79680
-
Kang Zhang authored
Summary: This patch will set the variable PredictableSelectIsExpensive to do the select to if based on BranchProbability in CodeGenPrepare. When the BranchProbability more than MinPercentageForPredictableBranch, PPC will convert SELECT to branch. Reviewed By: nemanjai Differential Revision: https://reviews.llvm.org/D71883
-
Sam McCall authored
Revert "[DAGCombine] Remove the getNegatibleCost to avoid the out of sync with getNegatedExpression" This reverts commit 3c44c441. Causes infloops on some inputs, see https://reviews.llvm.org/D77319 for repro
-
Sanjay Patel authored
-
Kirill Bobyrev authored
Reviewers: sammccall Reviewed By: sammccall Subscribers: mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79387
-
Tyker authored
Summary: this patch fixe crash/asserts found in the test-suite. the AssumeptionCache cannot be assumed to have all assumes contrary to what i tought. prevent generation of information for terminators, because this can create broken IR in transfromation where we insert the new terminator before removing the old one. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79458
-
OCHyams authored
don't span their entire scope. The previous commit (6d1c40c1) is an older version of the test. Reviewed By: aprantl, vsk Differential Revision: https://reviews.llvm.org/D79573
-
OCHyams authored
don't span their entire scope. The previous commit (6d1c40c1) is an older version of the test. Reviewed By: aprantl, vsk Differential Revision: https://reviews.llvm.org/D79573
-
OCHyams authored
don't span their entire scope. Reviewed By: aprantl, vsk Differential Revision: https://reviews.llvm.org/D79573
-
Djordje Todorovic authored
It is bad practice to capture by default (via [&] in this case) when using lambdas, so we should avoid that as much as possible. This patch fixes that in the getForwardingRegsDefinedByMI from DwarfDebug module. Differential Revision: https://reviews.llvm.org/D79616
-
Djordje Todorovic authored
We should use explicit type instead of auto type deduction when the type is so obvious. In addition, we remove ambiguity, since auto type deduction sometimes is not that intuitive, so that could lead us to some unwanted behavior. This patch fixes that in the collectCallSiteParameters() from DwarfDebug module. Differential Revision: https://reviews.llvm.org/D79624
-
Xun Li authored
Summary: In D65848 the function getFuncNameInModule was refactored to no longer use module. This diff removes the parameter and rename the function name to avoid confusion. Reviewers: wenlei, wmi, davidxl Reviewed By: wenlei Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79310
-
Xing GUO authored
-
Fangrui Song authored
gcov by default prints to a .gcov file. With --stdout, stdout is used. Some summary information is omitted. There is no separator for multiple source files.
-
Johannes Doerfert authored
The old QuerriedAAs contained two vectors, one for required one for optional dependences (=queries). We now use a single vector and encode the kind directly in the pointer. This reduces memory consumption and makes the connection between abstract attributes and their dependences clearer. No functional change is intended, changes in the test are due to different order in the query map. Neither the order before nor now is in any way special. --- Single run of the Attributor module and then CGSCC pass (oldPM) for SPASS/clause.c (~10k LLVM-IR loc): Before: ``` calls to allocation functions: 543734 (329735/s) temporary memory allocations: 105895 (64217/s) peak heap memory consumption: 19.19MB peak RSS (including heaptrack overhead): 102.26MB total memory leaked: 269.10KB ``` After: ``` calls to allocation functions: 513292 (341511/s) temporary memory allocations: 106028 (70544/s) peak heap memory consumption: 13.35MB peak RSS (including heaptrack overhead): 95.64MB total memory leaked: 269.10KB ``` Difference: ``` calls to allocation functions: -30442 (208506/s) temporary memory allocations: 133 (-910/s) peak heap memory consumption: -5.84MB peak RSS (including heaptrack overhead): 0B total memory leaked: 0B ``` --- Reviewed By: uenoku Differential Revision: https://reviews.llvm.org/D78729
-
QingShan Zhang authored
We have the getNegatibleCost/getNegatedExpression to evaluate the cost and negate the expression. However, during negating the expression, the cost might change as we are changing the DAG, and then, hit the assertion if we negated the wrong expression as the cost is not trustful anymore. This patch is target to remove the getNegatibleCost to avoid the out of sync with getNegatedExpression, and check the cost during negating the expression. It also reduce the duplicated code between getNegatibleCost and getNegatedExpression. And fix the crash for the test in D76638 Reviewed By: RKSimon, spatel Differential Revision: https://reviews.llvm.org/D77319
-
Fangrui Song authored
[X86] Fix combineVectorCompareAndMaskUnaryOp regression after 0e8e7314
-
Lang Hames authored
-
Nico Weber authored
-
Nico Weber authored
-
Johannes Doerfert authored
When we have an existing `argmemonly` or `inaccessiblememorargmemonly` we used to "know" that information. However, interprocedural constant propagation can invalidate these attributes. We now ignore and remove these attributes for internal functions (which may be affected by IP constant propagation), if we are deriving new attributes for the function.
-
Johannes Doerfert authored
As we replace values with constants interprocedurally, we also need to do this "look-through" step during the generic value traversal or we would derive properties from replaced values. While this is often not problematic, it is when we use the "kind" of a value for reasoning, e.g., accesses to arguments allow `argmemonly`.
-
Johannes Doerfert authored
When we categorize a pointer value we bailed at `null` before. If we know `null` is not a valid memory location we can ignore it as there won't be an access at all.
-
Johannes Doerfert authored
We now use getPointerDereferenceableBytes to determine `nonnull` and `dereferenceable` facts from the IR. We also use getPointerAlignment in AAAlign for the same reason. The latter can interfere with callbacks so we do restrict it to non-function-pointers for now.
-
Johannes Doerfert authored
-
Lang Hames authored
MaterializationResponsibility. MaterializationResponsibility objects provide a connection between a materialization process (compiler, jit linker, etc.) and the JIT state held in the ExecutionSession and JITDylib objects. Switching to shared ownership extends the lifetime of JITDylibs to ensure they remain accessible until all materializers targeting them have completed. This will allow (in a follow-up patch) JITDylibs to be removed from the ExecutionSession and placed in a pending-destruction state while they are kept alive to communicate errors to/from any still-runnning materialization processes. The intent is to enable JITDylibs to be safely removed even if they have running compiles targeting them.
-
Fangrui Song authored
Defaulting to -Xclang -coverage-version='407*' makes .gcno/.gcda compatible with gcov [4.7,8) In addition, delete clang::CodeGenOptionsBase::CoverageExtraChecksum and GCOVOptions::UseCfgChecksum. We can infer the information from the version. With this change, .gcda files produced by `clang --coverage a.o` linked executable can be read by gcov 4.7~7. We don't need other -Xclang -coverage* options. There may be a mismatching version warning, though. (Note, GCC r173147 "split checksum into cfg checksum and line checksum" made gcov 4.7 incompatible with previous versions.)
-
- May 10, 2020
-
-
Ricky Zhou authored
Commit 1e68724d removed the alignment argument from the memset intrinsic. Update the BrainF example to match. Reviewed By: jyknight Differential Revision: https://reviews.llvm.org/D79601
-
Matt Arsenault authored
-
Fangrui Song authored
rL144865 incorrectly wrote function names for GCOV_TAG_FUNCTION (this might be part of the reasons the header says "We emit files in a corrupt version of GCOV's "gcda" file format"). rL176173 and rL177475 realized the problem and introduced -coverage-no-function-names-in-data to work around the issue. (However, the description is wrong. libgcov never writes function names, even before GCC 4.2). In reality, the linker command line has to look like: clang --coverage -Xclang -coverage-version='407*' -Xclang -coverage-cfg-checksum -Xclang -coverage-no-function-names-in-data Failing to pass -coverage-no-function-names-in-data can make gcov 4.7~7 either produce wrong results (for one gcov-4.9 program, I see "No executable lines") or segfault (gcov-7). (gcov-8 uses an incompatible format.) This patch deletes -coverage-no-function-names-in-data and the related function names support from libclang_rt.profile
-
Craig Topper authored
Mostly found by asserting on tests that have undef operands. I'm sure this isn't an exhaustive list.
-
Tyker authored
Summary: The assume builder was non-deterministic when working on unamed values. this patch fixes this. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: hiraditya, mgrang, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78616
-
Andrea Di Biagio authored
This fixes a bug reported by Alex Renda on LLVMDev where mca did not correctly mark a resource group as "reserved". (See http://lists.llvm.org/pipermail/llvm-dev/2020-May/141485.html). The issue was caused by a wrong check in function `initializeUsedResources`. As a consequence of this, a resource group was left unreserved, and its field `NumUnits` incorrectly reported an unrealistic number of consumed resource units. This patch fixes the issue with the handling of reserved resources in the InstrBuilder class, and adds a simple test for it. Ideally, as suggested by Andy Trick, most of these problems will disappear if in the future we will introduce a (optional) DelayCycles vector for SchedWriteRes.
-
Tyker authored
Summary: with this patch the assume salvageKnowledge will not generate assume if all knowledge is already available in an assume with valid context. assume bulider can also in some cases update an existing assume with better information. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78014
-
Fangrui Song authored
Even a 2003 version of gcov_read_string does not have the behavior described by rL204881. The wrong impression might come from libclang_rt.profile (GCDAProfiling.c)'s corrupted output (since the initial import rL144865). Note, the corrupted output crashes gcov.
-
Fangrui Song authored
GCDAProfiling.c unnecessarily writes function names to .gcda files. GCC 4.2 gcc/libgcov.c (now renamed to libgcc/libgcov*) did not write function names. gcov-7 (compatible) crashes on .gcda produced by libclang_rt.profile rL176173 realized the problem and introduced a mode to remove function names. llvm-cov code apparently takes GCDAProfiling.c output format as truth and tries to decode function names. Additionally, llvm-cov tries to decode tags in certain order which does not match libgcov emitted .gcda files. This patch fixes the .gcda decoder and makes it work with GCC 8 and 9 (10 is compatible with 9). Note, line statistics are broken and not fixed by this patch. Add test/tools/llvm-cov/gcov-{4.7,8,9}.c to test compatibility.
-
Florian Hahn authored
Currently LAA's uses of ScalarEvolutionExpander blocks moving the expander from Analysis to Transforms. Conceptually the expander does not fit into Analysis (it is only used for code generation) and runtime-check generation also seems to be better suited as a transformation utility. Reviewers: Ayal, anemet Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D78460
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-