-
Notifications
You must be signed in to change notification settings - Fork 3
Merge upstream LLVM into PolyTracker #11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: polytracker
Are you sure you want to change the base?
Conversation
These are the tests for D108408 with current baseline results.
Currently, opaque pointers are supported in two forms: The -force-opaque-pointers mode, where all pointers are opaque and typed pointers do not exist. And as a simple ptr type that can coexist with typed pointers. This patch removes support for the mixed mode. You either get typed pointers, or you get opaque pointers, but not both. In the (current) default mode, using ptr is forbidden. In -opaque-pointers mode, all pointers are opaque. The motivation here is that the mixed mode introduces additional issues that don't exist in fully opaque mode. D105155 is an example of a design problem. Looking at D109259, it would probably need additional work to support mixed mode (e.g. to generate GEPs for typed base but opaque result). Mixed mode will also end up inserting many casts between i8* and ptr, which would require significant additional work to consistently avoid. I don't think the mixed mode is particularly valuable, as it doesn't align with our end goal. The only thing I've found it to be moderately useful for is adding some opaque pointer tests in between typed pointer tests, but I think we can live without that. Differential Revision: https://reviews.llvm.org/D109290
Test using debug-only=CodeObjectComaptibility was failing in non-assert builds, so it has been moved to a different file which requires assert. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D109592
The re-use of this struct across iterations of the loop was causing fields (specifically Name) to be incorrectly shared between multiple sections. Differential Revision: https://reviews.llvm.org/D108984
As per D109359, this removes or makes use of some of the existing unused MVE tblgn arguments.
Skip A/vRun/QEnvironment* tests on Windows as testing for output is known not to work there. Add a missing output check to the vRun test.
Remove some unnecessary logging from wasm-ld when running under `--verbose`. Unlike `-debug` this logging is available in release builds. This change makes it little more minimal/readable. Also, avoid compiling the `debugWrite` function in releaase builds where it does nothing. This should remove a lot debug strings from the binary, and avoid having to construct unused debug strings at runtime. Differential Revision: https://reviews.llvm.org/D109583
…ftbp.test Hopefully this will resolve the remaining flakiness.
… in vtype. This can avoid a vsetvl after a tail undisturbed operation. Differential Revision: https://reviews.llvm.org/D109549
LICM may have pulled out a splat, but with .vx instructions we can fold it into an operation. This patch enables CGP to reverse the LICM transform and move the splat back into the loop. I've started with the commutable integer operations and shifts, but we can extend this with more operations in future patches. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D109394
Always use the byval/inalloca/preallocated type (which is required nowadays), don't fall back on the pointer element type. This requires adding Function::getParamPreallocatedType() to mirror the CallBase API, so that the templated code can work with both.
As per D109359, this removes or makes use of some of the existing unused NEON and base ARM tblgn arguments.
When we guard side-effects as part of SPMDzation we do it for consecutive instructions that need guarding. This patch will try to reorder guarded side-effects in a block to decrease the number of guarded regions we need. It does not use any smarts, e.g., alias analysis, to move side-effects over non-interfering reads. Instead, it only moves side-effects downwards to the next guarded side-effect if there was nothing in between that could have possibly be affected. Reviewed By: ggeorgakoudis Differential Revision: https://reviews.llvm.org/D109070
Not all address spaces support initializers for globals and we can therefore not set them without checking if they are allowed. This patch adds a hook into TTI to check if an AS allows non-undef initializers. We disable it for all but address space 0 by default, NVPTX and AMDGPU targets allow all but address space 3. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D109337
Since these assumptions are coming from OpenMP it makes sense to mark
them as such in the generic IR encoding. Standardized assumptions will
be named
omp_ASSUMPTION_NAME
and extensions will be named
ompx_ASSUMPTION_NAME
which is the OpenMP 5.2 syntax for "extensions" of any kind.
This also matches what the OpenMP-Opt pass expects.
Summarized,
#pragma omp [...] assume[s] no_parallelism
now generates the same IR assumption annotation as
__attribute__((assume("omp_no_parallelism")))
Reviewed By: jhuber6
Differential Revision: https://reviews.llvm.org/D105937
This should have happened a long time ago, now that openmp.llvm.org redirects to openmp.llvm.org/docs we completely switched over to the sphinx documentation page instead. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D108588
This reverts commit 7dbba33. There seems to be a problem with the tests, investigating now: https://lab.llvm.org/buildbot/#/builders/61/builds/14574
This reverts commit ca134c3. There seems to be a problem with the tests, investigating now: https://lab.llvm.org/buildbot/#/builders/61/builds/14574
Precommit test for D109515
…ine DAG Add `udiv` and `urem` instructions to the DAG post-dominated by `trunc`, allowing TruncInstCombine to reduce bitwidth of expressions containing these instructions. It is sufficient to require that all truncated bits of both operands are zeros: https://alive2.llvm.org/ce/z/yiithn (`urem` case is identical). Differential Revision: https://reviews.llvm.org/D109515
When combining 'and' of an unsigned unpack and shuffle instruction, bail early if shuffle is not constructed from a constant integer. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D109556
…gned allocation functions
… into Sema from Codegen ... so that it happens right next to `AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction()`, which is good for consistency.
…rst arg, manifest that knowledge Mainly, if a constant value was passed as an alignment, then we correctly annotate the alignment of the returned value of @aligned_alloc. And if it wasn't constant, then we also don't loose that, but emit an assumption.
This patch adds support for shared library load when the executable is called through ld.so. Differential Revision:https://reviews.llvm.org/D108061
…egin symbol Previously the relocations pointed at the public user facing, possibly external symbol. When the function itself is weak, that symbol may be overridden at link time, pointing at another strong implementation of the same function instead. In that case, there's two conflicting pdata entries pointing at the same address, and the wrong unwind info might end up used. Both GCC/binutils and MSVC produce pdata pointing at internal static symbols. (GCC/binutils point at the .text section just as LLVM does after this change, MSVC points at special label type symbols with the type IMAGE_SYM_CLASS_LABEL and names like '$LN4'.) This fixes unwinding through an overridden "operator new" with a statically linked C++ library in MinGW mode. (Building libc++ with -ffunction-sections and linking with --gc-sections might avoid the issue too.) This makes the produced object files a little less user friendly to debug, but with other recent improvements for llvm-readobj, the unwind info debugging experience should be pretty much the same. Differential Revision: https://reviews.llvm.org/D109651
Fixes a warning identified in D109359. The mnemonic is also mov, not cpy. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D109573
Identified in D109359. Reviewed By: aheejin Differential Revision: https://reviews.llvm.org/D109689
Version macro definitions are tested for C++ for OpenCL when explicit version is provided on command line via `-cl-std` flag. Differential Revision: https://reviews.llvm.org/D109366
See PR51842. This fixes an assert firing in the static analyzer, triggered by implicit moves in blocks in C mode: This also simplifies the AST a little bit when compiling non C++ code, as the xvalue implicit casts are not inserted. We keep and test that the nrvo flag is still being set on the VarDecls, as that is still a bit beneficial while not really making anything more complicated. Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> Reviewed By: NoQ Differential Revision: https://reviews.llvm.org/D109654
Improve parse error message for "at least N operands" op trait. Differential Revision: https://reviews.llvm.org/D109747
The class of instructions that write to narrow top/bottom lanes only demand the even or odd elements of the input lanes. Which means that a pair of VMOVNT; VMOVNB demands no lanes from the original input. This teaches that to instcombine from the target hooks available through ARMTTIImpl. Differential Revision: https://reviews.llvm.org/D109325
…ng pointer." SCEV does not look through non-header PHIs inside the loop. Such phis can be analyzed by adding separate accesses for each incoming pointer value. This results in 2 more loops vectorized in SPEC2000/186.crafty and avoids regressions when sinking instructions before vectorizing. Fixes PR50296, PR50288. Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D102266
Don't blindly assume they're supported - GCC doesn't support -nostdlib++. The llvm-project/runtimes directory is supposed to allow building the runtimes standalone from a newly built Clang, and thus should allow building with other compilers too. Differential Revision: https://reviews.llvm.org/D109719
Add the makeComposedExtractSliceOp method that creates an ExtractSliceOp and folds chains of ExtractSliceOps by computing the sum of their offsets and by multiplying their strides. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D109601
`.rgba` vector extension setting in C++ for OpenCL 2021 is now performed analogously to OpenCL C 3.0. Test case added. Differential Revision: https://reviews.llvm.org/D109370
This updates llvm/utils/sysroot.py to include the "DIA SDK" folder in the sysroot. It also updates the build to look for the DIA SDK there if a sysroot is set. This requires moving LLVM_WINSYSROOT to config-ix.cmake. For the GN build, I chose to pass a qualified path to diaguids in libs instead of pushing a config with a `/libpath:` flag. The former requires a GN with https://gn-review.googlesource.com/c/gn/+/12200, the latter requires D109624. The former is more like the cmake build, arguably a bit simpler, and it's easier to check for the wrong GN revision and easier to update GN. Differential Revision: https://reviews.llvm.org/D109708
Currently, Dexter's model for fetching watch values is to build a list of expressions to watch before running the debugger, then evaluating all of them at each breakpoint, then finally looking up the values of these expressions at each line they were expected on. When using dexter on a large project while watching many different expressions, this is very slow, as Dexter will make a massive number of calls made to the debugger's API, the vast majority of which are not being used for anything. This patch fixes this issue by having Dexter only evaluate expressions at a breakpoint when it will be used by a Dexter command. Reviewed By: jmorse Differential Revision: https://reviews.llvm.org/D107070
Rename methods to clearly signal when they only deal with ASCII, simplify the parsing of identifier, and use start/continue instead of head/body for consistency with Unicode terminology.
This addresses the flakyness of (at least) TestMultilineNavigation, which was failing when the editline history of a concurrently executing test made leaked in. Using a test-specific home directory ensures the tests are independent.
This was really becoming a direct call during the DAG, so it wasn't as true to the test purpose.
We traverse the entire use list to find the undroppable use.
…e Implementation This patch exploits the prefixed load and store instructions utilizing the refactored load/store implementation introduced in D93370. Prefixed load and store instructions are emitted whenever we are loading or storing a value with an offset that fits into a 34-bit signed immediate. Patterns for the prefixed load and stores are added in this patch, as well as the implementation that detects when we are loading and storing a value with an offset that fits in 34-bits. Differential Revision: https://reviews.llvm.org/D96075
We previously had a limitation that TLS variables could not be exported (and therefore could also not be imported). This change removed that limitation. Differential Revision: https://reviews.llvm.org/D108877
Even though they're implemented via typedefs, we typically want to treat them like keywords. We could add hover information / xrefs, but it's very unlikely to provide any value. Differential Revision: https://reviews.llvm.org/D108556
Followup to https://reviews.llvm.org/D108877 to fix test failure.
Update to latest upstream LLVM
|
Shao-Ce Sun seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
No description provided.