- Apr 03, 2021
-
-
Craig Topper authored
These all pass 1 type to getIntrinsic. So rather than assigning IntrinsicTypes for each builtin which invokes the SmallVector constructor, just select the intrinsic ID with a switch and share a single assignment of IntrinsicTypes.
-
David Blaikie authored
-
Matheus Izvekov authored
Differential Revision: https://reviews.llvm.org/D99826
-
Fangrui Song authored
-
Craig Topper authored
Shows the sext.w at the end that would show up in C code. I'm thinking orc.b would preserve sign bits from it's input, but I'm not sure.
-
Nico Weber authored
Mostly just works already.
-
Jez Ng authored
The main challenge was handling the different on-disk structures (e.g. `mach_header` vs `mach_header_64`). I tried to strike a balance between sprinkling `target->wordSize == 8` checks everywhere (branchy = slow, and ugly) and templatizing everything (causes code bloat, also ugly). I think I struck a decent balance by judicious use of type erasure. Note that LLD-ELF has a similar architecture, though it seems to use more templating. Linking chromium_framework takes about the same time before and after this change: N Min Max Median Avg Stddev x 20 4.52 4.67 4.595 4.5945 0.044423204 + 20 4.5 4.71 4.575 4.582 0.056344803 No difference proven at 95.0% confidence Reviewed By: #lld-macho, oontvoo Differential Revision: https://reviews.llvm.org/D99633 -
Nico Weber authored
-
Nico Weber authored
This reverts commit 9be8f8b3. This breaks tsan on Ubuntu 16.04: $ cat tiny_race.c #include <pthread.h> int Global; void *Thread1(void *x) { Global = 42; return x; } int main() { pthread_t t; pthread_create(&t, NULL, Thread1, NULL); Global = 43; pthread_join(t, NULL); return Global; } $ out/gn/bin/clang -fsanitize=thread -g -O1 tiny_race.c --sysroot ~/src/chrome/src/build/linux/debian_sid_amd64-sysroot/ $ docker run -v $PWD:/foo ubuntu:xenial /foo/a.out FATAL: ThreadSanitizer CHECK failed: ../../compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp:447 "((thr_beg)) >= ((tls_addr))" (0x7fddd76beb80, 0xfffffffffffff980) #0 <null> <null> (a.out+0x4960b6) #1 <null> <null> (a.out+0x4b677f) #2 <null> <null> (a.out+0x49cf94) #3 <null> <null> (a.out+0x499bd2) #4 <null> <null> (a.out+0x42aaf1) #5 <null> <null> (libpthread.so.0+0x76b9) #6 <null> <null> (libc.so.6+0x1074dc) (Get the sysroot from here: https://commondatastorage.googleapis.com/chrome-linux-sysroot/toolchain/500976182686961e34974ea7bdc0a21fca32be06/debian_sid_amd64_sysroot.tar.xz) Also reverts follow-on commits: This reverts commit 58c62fd9. This reverts commit 31e541e3.
-
Jinsong Ji authored
The case start to fail since https://reviews.llvm.org/D99351. Looks like to me that the node order within Context Profile Tree depends on the implmementation of std::hash<std::string>. Unfortunately, the current clang implementation generate different values on AIX (or for all big-endian systems?) On Linux: main: 2408804140(0x8f936f2c) external: 896680882(0x357243b2) externalA: 620231129(0x24f7f9d9) On AIX: main: 994322777(0x3b442959) external: 3548191215(0xd37d19ef) externalA: 1390365101(0x52df49ad) XFAIL it first while we discuss and seek for a fix. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D99815
-
Muhammad Omair Javaid authored
This increases sleep time to 5 seconds as the test still fails intermittently. If failure persists then we will disable/fix the test.
-
peter klausler authored
Move #include <complex.h> to complex-reduction.h, where it is needed in MSVC builds. Exclude code that requires a native 128-bit integer type from compilation by MSVC. Differential Revision: https://reviews.llvm.org/D99806
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Rob Suderman authored
Added lowerings for Tosa's reduce boolean operations. This includes a fix to maintain the output rank of reduce operations. Reviewed By: silvas Differential Revision: https://reviews.llvm.org/D99228
-
Jennifer Yu authored
-
Simon Pilgrim authored
Include exhaustive test coverage.
-
Sean Silva authored
`ConversionPatternRewriter::applySignatureConversion` did not have a way to apply a signature conversion that involved materializations. Differential Revision: https://reviews.llvm.org/D99782
-
Aaron Ballman authored
Currently, when one or more attributes are mutually exclusive, the developer adding the attribute has to manually emit diagnostics. In practice, this is highly error prone, especially for declaration attributes, because such checking is not trivial. Redeclarations require you to write a "merge" function to diagnose mutually exclusive attributes and most attributes get this wrong. This patch introduces a table-generated way to specify that a group of two or more attributes are mutually exclusive: def : MutualExclusions<[Attr1, Attr2, Attr3]>; This works for both statement and declaration attributes (but not type attributes) and the checking is done either from the common attribute diagnostic checking code or from within mergeDeclAttribute() when merging redeclarations.
-
Vitaly Buka authored
Existing implementations took up to 30 minutues to execute on my setup. Now it's more convenient to debug a single test. Reviewed By: cryptoad Differential Revision: https://reviews.llvm.org/D99786
-
Jennifer Yu authored
Added basic parsing/sema/serialization support for the 'novariants' clause.
-
River Riddle authored
This was missed when verification for creating unregistered operations was added. Differential Revision: https://reviews.llvm.org/D99684
-
Jan Kratochvil authored
Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D99731
-
Mike Rice authored
-
Craig Topper authored
This reverts commit 5311abc7. jrtc27 included the proper header in 1bd4986e while I was trying to figure out what llvm/clang usually used.
-
Craig Topper authored
-
Jessica Clarke authored
-
Eric Astor authored
Define -fatal-warnings to make warnings fatal, and accept /WX as an ML.EXE compatible alias for it. Also make sure that if Warning() returns true, we always treat it as an error. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D92504
-
Levy Hsu authored
Head files are included in a separate patch in case the name needs to be changed. RV32 / 64: clmul clmulh clmulr Differential Revision: https://reviews.llvm.org/D99711
-
Rob Suderman authored
Linalg pooling operations only support floating point currently but integer variants will soon be needed. Renaming to uncluse a FOp postfix to clarify. Differential Revision: https://reviews.llvm.org/D99779
-
Levy Hsu authored
Forgot to amend the Author. Original commit message: Header files are included in a separate patch in case the name needs to be changed. RV32 / 64: orc.b Differential Revision: https://reviews.llvm.org/D99320
-
Craig Topper authored
This reverts commit 18081945. I forgot to change the author.
-
Cyndy Ishida authored
-
Craig Topper authored
Header files are included in a separate patch in case the name needs to be changed. RV32 / 64: orc.b
-
Fangrui Song authored
Will add a test case later.
-
Eric Astor authored
Make variables and text-macro references case-insensitive, to match ml.exe. Also improve error handling for text-macro expansion. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D92503
-
Levy Hsu authored
Implementation for RISC-V Zbr extension intrinsic. Header files are included in separate patch in case the name needs to be changed RV32 / 64: crc32b crc32h crc32w crc32cb crc32ch crc32cw RV64 Only: crc32d crc32cd Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D99009 -
Thomas Preud'homme authored
LLVM test CodeGen/Hexagon/hwloop3.ll tries to check for the absence of a sequence of consecutive instructions with several CHECK-NOT with one of those directives using a variable defined in another. However CHECK-NOT are checked independently so that is using a variable defined in a pattern that should not occur in the input. This commit merges the two CHECK-NOT into a single CHECK-NOT that matches the content of two successive non-blank lines, thereby allowing to preserve the intent of the test. Reviewed By: bcahoon Differential Revision: https://reviews.llvm.org/D99778
-
peter klausler authored
API, implementation, and unit tests for the intrinsic function TRANSFER. Differential Revision: https://reviews.llvm.org/D99799
-
Craig Topper authored
For positive constants we try shifting left to remove leading zeros and fill the bottom bits with 1s. We then materialize that constant shift it right. This patch adds a new strategy to try filling the bottom bits with zeros instead. This catches some additional cases.
-