- Mar 31, 2020
-
-
Sanjay Patel authored
InstCombine has a mess of logic that tries to preserve min/max patterns, but AFAICT, this one is not necessary because we can always narrow the corresponding select in this sequence to match the narrow compare. The biggest danger for this patch is inducing infinite looping or assert from exceeding max iterations. If any bots hit that in the vicinity of this commit, this is the likely patch to blame.
-
Sam Clegg authored
Also add a test case to wasm-ld that asserts without this change. Internally wasm-ld builds a StringMap of exported functions and it seems like allowing empty string in the set is preferable to adding checks. This assert looks like it was most likely just a historical accident. It started life here purely to support InputLanguagesSet: eeac27e3 Then got extracted here: e57a4033 Then got moved to AST here 5c48bae2 With the `InLang` paramater name still intact which suggested is InputLanguagesSet origins. Differential Revision: https://reviews.llvm.org/D74589
-
Eli Friedman authored
I got a report recently that a user was having trouble interpreting the meaning of the error message. Hopefully this is more readable; produces something like the following: error: No such file or directory: Could not read profile data! Differential Revision: https://reviews.llvm.org/D76796
-
Julian Lettner authored
-
Mehdi Amini authored
Differential Revision: https://reviews.llvm.org/D76903
-
Jonas Hahnfeld authored
Also move up, next to the other *_DEFAULT_* configurations.
-
Matt Arsenault authored
-
River Riddle authored
-
Vince Bridgers authored
Summary: This check was causing a crash in a test case where the 0th argument was uninitialized ('Assertion `T::isKind(*this)' at line SVals.h:104). This was happening since the argument was actually undefined, but the castAs assumes the value is DefinedOrUnknownSVal. The fix appears to be simply to check for an undefined value and skip the check allowing the uninitalized value checker to detect the error. I included a test case that I verified to produce the negative case prior to the fix, and passes with the fix. Reviewers: martong, NoQ Subscribers: xazax.hun, szepet, rnkovacs, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, Charusso, ASDenysPetrov, baloghadamsoftware, dkrupp, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77012 -
Siddhartha Bagaria authored
Summary: This uses clang-format-diff as a linter for Arcanist. `arc lint` flow, also run as part of `arc diff` unless skipped with `--nolint`, will now run the linter shell script on the changed files, and prompt the user to accept the suggested changes. Message when clang-format-diff is not installed: {F6654094} Example of the noise during code review when clang-format-diff is not installed: https://reviews.llvm.org/differential/changeset/?ref=1115809 Prompt when clang-format-diff is installed and suggests edits: {F6650223} Reviewers: probinson, scott.linder Reviewed By: scott.linder Subscribers: scott.linder, MyDeveloperDay, JonasToth, danilaml, JDevlieghere, dberris, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D49116 -
Stella Laurenzo authored
Summary: This object file has grown beyond the default limit, and elsewhere in LLVM, we seem to be setting this flag as a one-off, so continuing that here. Reviewers: mravishankar, antiagainst Subscribers: mgorny, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, bader, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77002
-
Matt Arsenault authored
Only handles easy 32-bit cases.
-
Bill Wendling authored
Summary: Code frequently relies upon the results of "is.constant" intrinsics to DCE invalid code paths. We don't want the intrinsic to be made control- dependent on any additional values. For instance, we can't split a PHI into a "constant" and "non-constant" part via jump threading in order to "optimize" the constant part, because the "is.constant" intrinsic is meant to return "false". Reviewers: wmi, kazu, MaskRay Reviewed By: kazu Subscribers: jdoerfert, efriedma, joerg, lebedev.ri, nikic, xbolva00, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75799
-
Eli Friedman authored
-Wthread-safety was failing to detect certain AST patterns it should detect. Make the pattern detection a bit more comprehensive. Due to an unrelated bug involving template instantiation, this showed up as a regression in 10.0 vs. 9.0 in the original bug report. The included testcase fails on older versions of clang, though. Fixes https://bugs.llvm.org/show_bug.cgi?id=45323 . Differential Revision: https://reviews.llvm.org/D76943
-
Nico Weber authored
-
Jonas Devlieghere authored
In order to run check-lldb-* we need the correct map_config directives in llvm-lit. For the standalone build, LLVM doesn't know about LLDB, and the lldb mappings are missing. In that case we build our own llvm-lit, and tell LLVM to use the llvm-lit in the lldb build directory. Differential revision: https://reviews.llvm.org/D76945
-
Matt Arsenault authored
I need to pass known bits to a target combine matcher (which for some reason aren't methods in a subclass of CombinerHelper?)
-
Matt Arsenault authored
-
Nico Weber authored
As of a while ago, lld groups all undefined references to a single symbol in a single diagnostic. Back then, I made it so that we print up to 10 references to each undefined symbol. Having used this for a while, I never wished there were more references, but I sometimes found that this can print a lot of output. lld prints up to 10 diagnostics by default, and if each has 10 references (which I've seen in practice), and each undefined symbol produces 2 (possibly very long) lines of output, that's over 200 lines of error output. Let's try it with just 3 references for a while and see how that feels in practice. Differential Revision: https://reviews.llvm.org/D77017
-
Thomas Raoux authored
Optimize the common case of splat vector constant. For large vector going through all elements is expensive. For splatr/broadcast cases we can skip going through all elements. Differential Revision: https://reviews.llvm.org/D76664
-
LLVM GN Syncbot authored
-
Nico Weber authored
Instead of using a global define; see comments on D75914. While here, port 9c9d88d8 to the GN build.
-
Uday Bondhugula authored
Rewrite mlir::permuteLoops (affine loop permutation utility) to fix incorrect approach. Avoiding using sinkLoops entirely - use single move approach. Add test pass. This fixes https://bugs.llvm.org/show_bug.cgi?id=45328 Depends on D77003. Signed-off-by:
Uday Bondhugula <uday@polymagelabs.com> Differential Revision: https://reviews.llvm.org/D77004
-
Jakub Kuderski authored
Summary: This change adds amdgcn.reloc.constant intrinsic to the amdgpu backend, which will compile into a relocation entry in the resulting elf. The intrinsics takes a MetadataNode (String) as its only argument, which specifies the symbol name of the relocation entry. `SelectionDAGBuilder::getValueImpl` is changed to allow metadata operands passed through to ISel. Author: csyonghe <yonghe@google.com> Reviewers: tpr, nhaehnle Reviewed By: nhaehnle Subscribers: arsenm, kzhuravl, jvesely, wdng, yaxunl, dstuttard, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76440
-
Alexey Bataev authored
clauses. Implemented codegen for array shaping operation in depend clauses. The begin of the expression is the pointer itself, while the size of the dependence data is the mukltiplacation of all dimensions in the array shaping expression.
-
Sid Manning authored
Noticed when building llvm's c++ library. Differential Revision: https://reviews.llvm.org/D76546
-
Sameer Sahasrabuddhe authored
For each natural loop with multiple exit blocks, this pass creates a new block N such that all exiting blocks now branch to N, and then control flow is redistributed to all the original exit blocks. The bulk of the tranformation is a new function introduced in BasicBlockUtils that an redirect control flow from a set of incoming blocks to a set of outgoing blocks via a common "hub". This is a useful workaround for a limitation in the structurizer which incorrectly orders blocks when processing a nest of loops. This pass bypasses that issue by ensuring that each natural loop is recognized as a separate region. Since the structurizer is a region pass, it no longer sees a nest of loops in a single region, and instead processes each "level" in the nesting as a separate region. The AMDGPU backend provides a new option to enable this pass before the structurizer, which may eventually be enabled by default. Reviewers: madhur13490, arsenm, nhaehnle Reviewed By: nhaehnle Differential Revision: https://reviews.llvm.org/D75865
-
Vedant Kumar authored
In InnerLoopVectorizer::getOrCreateTripCount, when the backedge taken count is a SCEV add expression, its type is defined by the type of the last operand of the add expression. In the test case from PR45259, this last operand happens to be a pointer, which (according to llvm::Type) does not have a primitive size in bits. In this case, LoopVectorize fails to truncate the SCEV and crashes as a result. Uing ScalarEvolution::getTypeSizeInBits makes the truncation work as expected. https://bugs.llvm.org/show_bug.cgi?id=45259 Differential Revision: https://reviews.llvm.org/D76669
-
Fangrui Song authored
Currently, `error: incompatible section flags for .rodata` is reported when we mix SHF_LINK_ORDER and non-SHF_LINK_ORDER sections in an output section. This is overconstrained. This patch allows mixed flags with the requirement that SHF_LINK_ORDER sections must be contiguous. Mixing flags is used by Linux aarch64 (https://github.com/ClangBuiltLinux/linux/issues/953) .init.data : { ... KEEP(*(__patchable_function_entries)) ... } When the integrated assembler is enabled, clang's -fpatchable-function-entry=N[,M] implementation sets the SHF_LINK_ORDER flag (D72215) to fix a number of garbage collection issues. Strictly speaking, the ELF specification does not require contiguous SHF_LINK_ORDER sections but for many current uses of SHF_LINK_ORDER like .ARM.exidx/__patchable_function_entries there has been a requirement for the sections to be contiguous on top of the requirements of the ELF specification. This patch also imposes one restriction: SHF_LINK_ORDER sections cannot be separated by a symbol assignment or a BYTE command. Not allowing BYTE is a natural extension that a non-SHF_LINK_ORDER cannot be a separator. Symbol assignments can delimiter the contents of SHF_LINK_ORDER sections. Allowing SHF_LINK_ORDER sections across symbol assignments (especially __start_/__stop_) can make things hard to explain. The restriction should not be a problem for practical use cases. Reviewed By: psmith Differential Revision: https://reviews.llvm.org/D77007
-
Raul Tambre authored
It's set to OFF by default at libcxx/CMakeLists.txt:73. Differential Revision: https://reviews.llvm.org/D76905
-
Louis Dionne authored
This allows adding compilation flags for a single test, which can help eliminate some .sh.cpp tests and some custom handling in the libc++ test format. It also works around the issue that .sh.cpp substitutions are _not_ equivalent to the actual compiler command lines used to compile tests, since the compiler flags can be modified in local lit configurations, and substitutions are frozen at that point. For example using %{compile} in a .sh.cpp test in the coroutines subdirectory will not include the -fcoroutines-ts flag, which is added in the local lit config, because the %{compile} substitution is created long before we add -fcoroutines-ts to the compiler flags (in the lit.local.cfg for coroutines). -
Fangrui Song authored
-
Yuanfang Chen authored
[X86] make sure POP has implicit def/use of stack pointer when materializing 8-bit immediates for minsize Summary: Otherwise PostRA list scheduler may reorder instruction, such as schedule this ''' pushq $0x8 pop %rbx lea 0x2a0(%rsp),%r15 ''' to ''' pushq $0x8 lea 0x2a0(%rsp),%r15 pop %rbx ''' by mistake. The patch is to prevent this to happen by making sure POP has implicit use of SP. Reviewers: craig.topper Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77031
-
- Mar 30, 2020
-
-
Gabor Marton authored
Reviewers: Szelethus, NoQ Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, steakhal, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77061
-
Guillaume Chatelet authored
Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790 Reviewers: courbet Subscribers: jyknight, sdardis, nemanjai, hiraditya, kbarton, fedor.sergeev, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, MaskRay, zzheng, edward-jones, atanasyan, rogfer01, MartinMosbeck, brucehoult, the_o, jfb, PkmX, jocewei, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77059
-
Pavel Labath authored
This reverts commit because of test failures in TestHelloWorld. It seems that this test (specifically running "ls" as a platform shell command) depended on the implicit passing of the host environment. The fix should be fairly simple (inherit the environment explicitly), but it may take me a while to figure where exactly to do that. Revert while I am figuring that out.
-
Matt Arsenault authored
-
Louis Dionne authored
This will become more relevant as we shift more filesystem-specific logic to the local lit configuration in test/std/input.output/filesystems.
-
Matt Arsenault authored
I still think the call lowering type legalization logic split between the generic code and target is too confusing, but largely induced by the reliance on the DAG infrastructure.
-
Matt Arsenault authored
Mostly ported from the DAG version. This results in much worse code than the DAG version, largely due to a much worse expansion for G_UMULH.
-