Skip to content

SemanticHighlighting encodeBase64 corrupts data #149

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

Closed
alexzielenski opened this issue Feb 23, 2020 · 2 comments · May be fixed by MarcelRaschke/llvm-project#8, baby636/llvm-project#20 or baby636/llvm-project#21

Comments

@alexzielenski
Copy link

alexzielenski commented Feb 23, 2020

Hey! I was tinkering around with clangd to use with a few modifications locally and found that the data transmitted via base64 is getting corrupted.

std::string encodeBase64(const llvm::SmallVectorImpl<char> &Bytes) {
static const char Table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
"0123456789+/";
std::string Res;
size_t I;
for (I = 0; I + 2 < Bytes.size(); I += 3) {
uint32_t X = (Bytes[I] << 16) + (Bytes[I + 1] << 8) + Bytes[I + 2];
Res += Table[(X >> 18) & 63];
Res += Table[(X >> 12) & 63];
Res += Table[(X >> 6) & 63];
Res += Table[X & 63];
}
if (I + 1 == Bytes.size()) {
uint32_t X = (Bytes[I] << 16);
Res += Table[(X >> 18) & 63];
Res += Table[(X >> 12) & 63];
Res += "==";
} else if (I + 2 == Bytes.size()) {
uint32_t X = (Bytes[I] << 16) + (Bytes[I + 1] << 8);
Res += Table[(X >> 18) & 63];
Res += Table[(X >> 12) & 63];
Res += Table[(X >> 6) & 63];
Res += "=";
}
return Res;
}

I replaced the built-in implementation with another found on GitHub and my issue was alleviated (modified to support llvm vector type):

https://github.com/ReneNyffenegger/cpp-base64/blob/a8aae956a2f07df9aac25b064cf4cd92d56aac45/base64.cpp#L35-L85

static const std::string base64_chars = 
             "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
             "abcdefghijklmnopqrstuvwxyz"
             "0123456789+/";


static inline bool is_base64(unsigned char c) {
  return (isalnum(c) || (c == '+') || (c == '/'));
}

std::string encodeBase64cppBase64(const llvm::SmallVectorImpl<char> &Bytes) {
  std::string ret;
  int i = 0;
  int j = 0;
  unsigned char char_array_3[3];
  unsigned char char_array_4[4];

  unsigned in_len = Bytes.size();
  unsigned idx = 0;
  while (in_len--) {
    char_array_3[i++] = Bytes[idx++];
    if (i == 3) {
      char_array_4[0] = (char_array_3[0] & 0xfc) >> 2;
      char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4);
      char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6);
      char_array_4[3] = char_array_3[2] & 0x3f;

      for(i = 0; (i <4) ; i++)
        ret += base64_chars[char_array_4[i]];
      i = 0;
    }
  }

  if (i)
  {
    for(j = i; j < 3; j++)
      char_array_3[j] = '\0';

    char_array_4[0] = ( char_array_3[0] & 0xfc) >> 2;
    char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4);
    char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6);

    for (j = 0; (j < i + 1); j++)
      ret += base64_chars[char_array_4[j]];

    while((i++ < 3))
      ret += '=';

  }

  return ret;

}

Example:
I ran this code:

  llvm::SmallVector<char, 1> data;
  llvm::raw_svector_ostream OS(data);
  write32be(70, OS);
  write16be(8, OS);
  write16be(0x00EE, OS);
  log("encoded cpp-base64: {0}", encodeBase64cppBase64(data));
  log("encoded llvm: {0}", encodeBase64original(data));

output:

encoded cpp-base64: AAAARgAIAO4=
encoded llvm: AAAARgAI/+4=

Indeed, running the strings back through any random online decoder yields different results:

Using https://cryptii.com/pipes/base64-to-hex:

cpp-base64:
Screen Shot 2020-02-23 at 1 47 42 PM

llvm encodeBase64:
Screen Shot 2020-02-23 at 1 47 52 PM

Encoding also on this random site gives same results as cpp-base64:
Screen Shot 2020-02-23 at 1 54 04 PM

@serge-sans-paille
Copy link
Collaborator

There's already a base64 implementation in llvm/lib/MC/WinCOFFObjectWriter.cpp too... we should probably syndicate that code in lib/Support, I'll have a look.

Bigcheese pushed a commit to Bigcheese/llvm-project that referenced this issue Feb 27, 2020
@serge-sans-paille
Copy link
Collaborator

serge-sans-paille pushed a commit that referenced this issue Mar 3, 2020
llvm/Support/Base64, fix its implementation and provide a decent test suite.

Previous implementation code was using + operator instead of | to combine

results, which is a problem when shifting signed values. (0xFF << 16) is
implicitly converted to a (signed) int, and thus results in 0xffff0000,
h is
negative. Combining negative numbers with a + in that context is not what we
want to do.

This is a recommit of 5a1958f with UB removved.

This fixes #149.

Differential Revision: https://reviews.llvm.org/D75057
ghost pushed a commit to RPCS3/llvm-mirror that referenced this issue Mar 3, 2020
commit 418923c341431b66ffacfefe54d3e7e09a200f3b
Author: Clement Courbet <[email protected]>
Date:   Tue Mar 3 11:06:37 2020 +0100

    [ExpandMemCmp][NFC] Fix typo in comment.

commit 8f2b0ac07b8b33aace840a69a0f799e3af92db1e
Author: Hans Wennborg <[email protected]>
Date:   Tue Mar 3 09:45:14 2020 +0100

    Revert abb00753 "build: reduce CMake handling for zlib" (PR44780)

    and follow-ups:
    a2ca1c2d "build: disable zlib by default on Windows"
    2181bf40 "[CMake] Link against ZLIB::ZLIB"
    1079c68a "Attempt to fix ZLIB CMake logic on Windows"

    This changed the output of llvm-config --system-libs, and more
    importantly it broke stand-alone builds. Instead of piling on more fix
    attempts, let's revert this to reduce the risk of more breakages.

commit 8b679a00b651beb4308358dbf62506961eb2e51e
Author: Jim Lin <[email protected]>
Date:   Tue Mar 3 16:52:20 2020 +0800

    [AVR] Fix incorrect register state for LDRdPtr

    Summary:
    LDRdPtr expanded from LDWRdPtr shouldn't define its second operand(SrcReg).
    The second operand is its source register.
    Add -verify-machineinstrs into command line of testcases can trigger this error.

    Reviewers: dylanmckay

    Reviewed By: dylanmckay

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75437

commit e171e285edb06383657f9bb558ed7ff4ec3d1155
Author: Georgii Rymar <[email protected]>
Date:   Fri Feb 21 14:10:23 2020 +0300

    [obj2yaml] - Dump allocatable SHT_STRTAB, SHT_SYMTAB and SHT_DYNSYM sections.

    Sometimes we need to dump an object and build it again from a YAML
    description produced. The problem is that obj2yaml does not dump some
    of sections, like string tables and symbol tables.

    Because of that yaml2obj implicitly creates them and sections created
    are not placed at their original locations. They are added to the end of a section list.
    That makes a preparing test cases task harder than it can be.

    This patch teaches obj2yaml to dump parts of allocatable SHT_STRTAB, SHT_SYMTAB
    and SHT_DYNSYM sections to print placeholders for them.
    This also allows to preserve usefull parameters, like virtual address.

    Differential revision: https://reviews.llvm.org/D74955

commit 628089dc06cc508103431facd92083eb9575ea7e
Author: Roman Lebedev <[email protected]>
Date:   Tue Mar 3 11:27:11 2020 +0300

    [NFC][InstCombine] Add test with non-CSE'd casts of load

    in @t0 we can still change type of load and get rid of casts.

commit 1c0ecafade5a5b99714d94b017569a3d33f0fe2d
Author: Georgii Rymar <[email protected]>
Date:   Wed Feb 26 16:59:43 2020 +0300

    [obj2yaml] - Split sections dumping to a new ELFDumper<ELFT>::dumpSections() method.

    ELFDumper<ELFT>::dump() is too large and deserves splitting.

    Differential revision: https://reviews.llvm.org/D75172

commit a442647ff8407dd9089370724b85e263eea2d5c0
Author: Awanish Pandey <[email protected]>
Date:   Tue Mar 3 13:07:26 2020 +0530

    [DebugInfo][DWARF5]: Added support for debuginfo generation for defaulted parameters

    This patch adds support for dwarf emission/dumping part of debuginfo
    generation for defaulted parameters.

    Reviewers: probinson, aprantl, dblaikie

    Reviewed By: aprantl, dblaikie

    Differential Revision: https://reviews.llvm.org/D73462

commit 68fffe70b7864d48cddd58cac2c5575ea00a3227
Author: Sameer Sahasrabuddhe <[email protected]>
Date:   Fri Feb 28 22:47:35 2020 +0530

    [AMDGPU] add generated checks for some LIT tests

    This is in prepration for further changes that affect these tests.

    Reviewed By: arsenm

    Differential Revision: https://reviews.llvm.org/D75403

commit da259653666a7e3b86fd646b7fadd53c56017aaf
Author: Alok Kumar Sharma <[email protected]>
Date:   Tue Mar 3 09:50:13 2020 +0530

    [DebugInfo] Avoid generating duplicate llvm.dbg.value

    Summary:
    This is to avoid generating duplicate llvm.dbg.value instrinsic if it already exists after the Instruction.

    Before inserting llvm.dbg.value instruction, LLVM checks if the same instruction is already present before the instruction to avoid duplicates.
    Currently it misses to check if it already exists after the instruction.
    flang generates IR like this.

    %4 = load i32, i32* %i1_311, align 4, !dbg !42
    call void @llvm.dbg.value(metadata i32 %4, metadata !35, metadata !DIExpression()), !dbg !33
    When this IR is processed in llvm, it ends up inserting duplicates.
    %4 = load i32, i32* %i1_311, align 4, !dbg !42
    call void @llvm.dbg.value(metadata i32 %4, metadata !35, metadata !DIExpression()), !dbg !33
    call void @llvm.dbg.value(metadata i32 %4, metadata !35, metadata !DIExpression()), !dbg !33
    We have now updated LdStHasDebugValue to include the cases when instruction is already
    followed by same dbg.value instruction we intend to insert.

    Now,

    Definition and usage of function LdStHasDebugValue are deleted.
    RemoveRedundantDbgInstrs is called for the cleanup of duplicate dbg.value's

    Testing:
    Added unit test for validation
    check-llvm
    check-debuginfo (the debug info integration tests)

    Reviewers: aprantl, probinson, dblaikie, jmorse, jini.susan.george
    SouraVX, awpandey, dstenb, vsk

    Reviewed By: aprantl, jmorse, dstenb, vsk

    Differential Revision: https://reviews.llvm.org/D74030

commit 996af71606d7300c8bcbd761df94022e80099e55
Author: David Blaikie <[email protected]>
Date:   Mon Mar 2 19:30:03 2020 -0800

    DebugInfo: Separate different debug_macinfo contributions & print the offset of a contribution

commit e0356375f8daeb1d6b7c7f15ab1ecda770b1e3ef
Author: Juneyoung Lee <[email protected]>
Date:   Sat Feb 29 22:00:44 2020 +0900

    [LICM] Allow freeze to hoist/sink out of a loop

    Summary: This patch allows LICM to hoist/sink freeze instructions out of a loop.

    Reviewers: reames, fhahn, efriedma

    Reviewed By: reames

    Subscribers: jfb, lebedev.ri, hiraditya, asbirlea, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75400

commit 5b844a4c88631f55d40a771092a981898406792f
Author: Shengchen Kan <[email protected]>
Date:   Tue Mar 3 11:10:54 2020 +0800

    Temporarily Revert [X86] Not track size of the boudaryalign fragment during the layout

    Summary: This reverts commit 2ac19feb1571960b8e1479a451b45ab56da7034e.
    This commit causes some test cases to run fail when branch is aligned.

commit 4cdc54cceb61cb4e96ba66ee5d767fc65a11ce45
Author: Fangrui Song <[email protected]>
Date:   Sun Mar 1 12:06:51 2020 -0800

    [LTO] onfig::addSaveTemps: clear ResolutionFile upon an error

    Otherwise ld.lld -save-temps will crash when writing to ResolutionFile.

    llvm-lto2 -save-temps does not crash because it exits immediately.

    Reviewed By: evgeny777

    Differential Revision: https://reviews.llvm.org/D75426

commit 5b890d8e7af8a6f6f8d05b8496833452f7821678
Author: Jim Lin <[email protected]>
Date:   Mon Mar 2 18:46:22 2020 +0800

    [AVR] Add missing ROLLOOP and RORLOOP into getTargetNodeName

commit 2a4be332ff44cde91f746d43016a9b85584f4620
Author: Cyndy Ishida <[email protected]>
Date:   Mon Mar 2 16:58:14 2020 -0800

    [llvm][MachO] fix adding weak def syms

    the weak defined symbol flag was missing from the call site for adding
    symbols which didn't cause issues because it invoked the default
    parameter.

commit 6839c5908a9b6f6543fb965efe641856f84be66d
Author: Vedant Kumar <[email protected]>
Date:   Mon Mar 2 16:56:17 2020 -0800

    [LiveDebugValues] Prevent some misuse of LocIndex::fromRawInteger, NFC

    Make it a compile-time error to pass an int/unsigned/etc to
    fromRawInteger.

    Hopefully this prevents errors of the form:

    ```
    for (unsigned ID : getVarLocs()) {
      auto VL = LocMap[LocIndex::fromRawInteger(ID)];
      ...
    ```

commit 2d8dc5b1336a1870e61acded1c8ac1793e247079
Author: Huihui Zhang <[email protected]>
Date:   Mon Mar 2 16:11:50 2020 -0800

    [ARM][ConstantIslands] Fix stack mis-alignment caused by undoLRSpillRestore.

    Summary:
    It is not safe for ARMConstantIslands to undoLRSpillRestore. PrologEpilogInserter is
    the one to ensure stack alignment, taking into consideration LR is spilled or not.

    For noreturn function with StackAlignment 8 (function contains call/alloc),
    undoLRSpillRestore cause stack be mis-aligned. Fixing stack alignment in
    ARMConstantIslands doesn't give us much benefit, as undo LR spill/restore only
    occur in large function with near branches only, also doesn't have callee-saved LR spill.

    Reviewers: t.p.northover, rengolin, efriedma, apazos, samparker, ostannard

    Reviewed By: ostannard

    Subscribers: dmgreen, ostannard, kristof.beyls, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75288

commit 1490382df1ad7e8bcd6238cd1d9bbb848dfb6df1
Author: Greg Clayton <[email protected]>
Date:   Mon Mar 2 15:37:27 2020 -0800

    Fix GSYM tests to run the yaml files and fix test failures on some machines.

    YAML files were not being run during lit testing as there was no lit.local.cfg file. Once this was fixed, some buildbots would fail due to a StringRef that pointed to a std::string inside of a temporary llvm::Triple object. These issues are fixed here by making a local triple object that stays around long enough so the StringRef points to valid data. Also fixed an issue where strings for files in the file table could be added in opposite order due to parameters to function calls not having a strong ordering, which caused tests to fail. Added new arch specfic directories so when targets are not enabled, we continue to function just fine.

    Differential Revision: https://reviews.llvm.org/D75390

commit 264007f8bdb304937e94e14883a8bf6277d8708b
Author: Philip Reames <[email protected]>
Date:   Mon Mar 2 14:57:11 2020 -0800

    Use range-for in MCAssembler [NFC]

commit 0904a3ae51182b46214c8cfa7b9ff6cdc90fcc53
Author: Philip Reames <[email protected]>
Date:   Mon Mar 2 13:21:53 2020 -0800

    [BranchAlign] Fix bug w/nop padding for SS manipulation

    X86 has several instructions which are documented as enabling interrupts exactly one instruction *after* the one which changes the SS segment register. Inserting a nop between these two instructions allows an interrupt to arrive before the execution of the following instruction which changes semantic behaviour.

    The list of instructions is documented in "Table 24-3. Format of Interruptibility State" in Volume 3c of the Intel manual. They basically all come down to different ways to write to the SS register.

    Differential Revision: https://reviews.llvm.org/D75359

commit 77cbec7e52218f515dd9f23496ca36cba17946c4
Author: Sumanth Gundapaneni <[email protected]>
Date:   Mon Mar 2 16:32:19 2020 -0600

    Update LSR's logic that identifies a post-increment SCEV value.

    One of the checks has been removed as it seem invalid.
    The LoopStep size is always almost a 32-bit.

    Differential Revision: https://reviews.llvm.org/D75079

commit d3dc81a22a8d10c77bd1cf2ce97b89a3ea33777f
Author: Jordan Rupprecht <[email protected]>
Date:   Mon Mar 2 14:23:17 2020 -0800

    Add default case to fix -Wswitch errors

commit 5400a75fe6d2e09c01d3877b4257168c243fbbec
Author: Craig Topper <[email protected]>
Date:   Mon Mar 2 14:12:16 2020 -0800

    [TargetLowering] Fix what look like copy/paste mistakes in compare with infinity handling SimplifySetCC.

    I expect that the isCondCodeLegal checks should match that CC of
    the node that we're going to create.

    Rewriting to a switch to minimize repeated mentions of the same
    constants.

commit 7a274552f244c01b590df6c9be4da2412ea65236
Author: Teresa Johnson <[email protected]>
Date:   Mon Mar 2 13:09:56 2020 -0800

    Revert "Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP""

    This reverts commit 80d0a137a5aba6998fadb764f1e11cb901aae233, and the
    follow on fix in 873c0d0786dcf22f4af39f65df824917f70f2170. It is
    causing test failures after a multi-stage clang bootstrap. See
    discussion on D73242 and D75201.

commit 633e2c035f02e1f7ef453f939f132c637af424b9
Author: Joerg Sonnenberger <[email protected]>
Date:   Mon Mar 2 18:24:11 2020 +0100

    Explicitly include <cassert> when using assert

    Depending on the OS used, a module-enabled build can fail due to the
    special handling <cassert> gets as textual header.

commit 29c6f3632483abaed7e09026ab56c3e119949f95
Author: Greg Clayton <[email protected]>
Date:   Mon Mar 2 13:07:58 2020 -0800

    Revert "Fix GSYM tests to run the yaml files and fix test failures on some machines."

    This reverts commit 57688350adea307e7bccb83b68a5b7333de31fd7.

    Need to conditionalize for ARM targets, this is failing on machines that don't have ARM targets.

commit f5b15baf837343881fb4e8207a044f66b5c9a8ab
Author: Greg Clayton <[email protected]>
Date:   Mon Mar 2 12:40:46 2020 -0800

    Fix GSYM tests to run the yaml files and fix test failures on some machines.

    YAML files were not being run during lit testing as there was no lit.local.cfg file. Once this was fixed, some buildbots would fail due to a StringRef that pointed to a std::string inside of a temporary llvm::Triple object. These issues are fixed here by making a local triple object that stays around long enough so the StringRef points to valid data. Also fixed an issue where strings for files in the file table could be added in opposite order due to parameters to function calls not having a strong ordering, which caused tests to fail.

    Differential Revision: https://reviews.llvm.org/D75390

commit 6e164c4b1dff826d38241d95f435d628182cb626
Author: Hiroshi Yamauchi <[email protected]>
Date:   Thu Feb 27 10:49:04 2020 -0800

    [PSI] Add the isCold query support with a given percentile value.

    Summary: This follows up D67377 that added the isHot side.

    Reviewers: davidxl

    Subscribers: eraman, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75283

commit a8e180d21c2900e25580fd6066cc5b0f8df535d6
Author: Stanislav Mekhanoshin <[email protected]>
Date:   Fri Feb 28 12:28:45 2020 -0800

    Extend LaneBitmask to 64 bit

    This is needed for D74873, AMDGPU going to have 16 bit subregs
    and the largest tuple is 32 VGPRs, which results in 64 lanes.

    Differential Revision: https://reviews.llvm.org/D75378

commit 57ed845d5639ed4cf33134191e82a9e91ba4d0f7
Author: Vedant Kumar <[email protected]>
Date:   Mon Mar 2 11:37:19 2020 -0800

    [Coverage] Collect all function records in an object (D69471 followup)

    After the format change from D69471, there can be more than one section
    in an object that contains coverage function records. Look up each of
    these sections and concatenate all the records together.

    This re-enables the instrprof-merging.cpp test, which previously was
    failing on OSes which use comdats.

    Thanks to Jeremy Morse, who very kindly provided object files from the
    bot I broke to help me debug.

commit 86d5f808131703000018936b3a52860813a0ac4b
Author: Jessica Paquette <[email protected]>
Date:   Mon Mar 2 10:49:18 2020 -0800

    [AArch64][MachineOutliner] Don't outline CFI instructions

    CFI instructions can only safely be outlined when the outlined call is a tail
    call, or when the outlined frame is fixed up.

    For the sake of correctness, disable outlining from CFI instructions.

    Add machine-outliner-cfi.mir to test this.

commit 52e84caadf75e4acd8cd6d8b84a12d3ab2a61a00
Author: Simon Pilgrim <[email protected]>
Date:   Mon Mar 2 18:22:58 2020 +0000

    Fix shadow variable warning. NFC.

commit 1f86fb7e4a67cd0d0b78286d4d1ca34b712e08e5
Author: Simon Pilgrim <[email protected]>
Date:   Mon Mar 2 18:10:15 2020 +0000

    Fix 'unsigned variable can never be negative' cppcheck warning. NFCI.

commit a833f3a33b2ade5ebe6c74b02d34832f442197cb
Author: Alexey Bataev <[email protected]>
Date:   Fri Feb 28 09:52:15 2020 -0500

    [OPENMP50]Add basic support for depobj construct.

    Added basic parsing/sema/serialization support for depobj directive.

commit ae0ba63fe423d64a659d00f54dd8ba9b136d3b4b
Author: Adrian Prantl <[email protected]>
Date:   Mon Mar 2 09:39:27 2020 -0800

    More principled implementation of DISubprogram::describes()

    Previously we would also accept DISubprograms that matched in name
    only, but this doesn't appear to be necessary any more.

    I did a Full and Thin LTO build of Clang and it completed without a warning.

    Differential Revision: https://reviews.llvm.org/D75213

commit 9863c4062d5bad6be405ec708b4207cc23b94fab
Author: Brian Cain <[email protected]>
Date:   Mon Feb 24 11:58:50 2020 -0600

    Fix unused-variable warning

commit 365f9e08a5b3c2d0ea4ed75f2e73cb4fdbd5adc9
Author: LLVM GN Syncbot <[email protected]>
Date:   Mon Mar 2 17:35:47 2020 +0000

    [gn build] Port 49684f9db5c

commit 9e27eade83abfd8c73e41c410342a05484113b12
Author: Mitch Phillips <[email protected]>
Date:   Mon Mar 2 09:29:29 2020 -0800

    Revert "Syndicate, test and fix base64 implementation"

    This reverts commit 5a1958f2673f8c771e406a7e309e160b432c9a79.

    This change broke the UBSan build bots. See
    https://reviews.llvm.org/D75057 for more information.

commit 2a55bb0f7cecb5544f8521c4adba048f396a40a4
Author: Mitch Phillips <[email protected]>
Date:   Mon Mar 2 09:28:59 2020 -0800

    Revert "Fix Base64Test - for StringRef size"

    This reverts commit b52355f8a196b5040dc2e42870bf8c459306cfaa.

    The change this patch depends on
    (5a1958f2673f8c771e406a7e309e160b432c9a79) broke the UBSan buildbots.
    See https://reviews.llvm.org/D75057 for more information.

commit c20158c03628f467756d19f91aa77ef1017692a2
Author: Teresa Johnson <[email protected]>
Date:   Wed Feb 26 10:54:56 2020 -0800

    [ThinLTO/LowerTypeTests] Handle unpromoted local type ids

    Summary:
    Fixes an issue that cropped up after the changes in D73242 to delay
    the lowering of type tests. LTT couldn't handle any type tests with
    non-string type id (which happens for local vtables, which we try to
    promote during the compile step but cannot always when there are no
    exported symbols).

    We can simply treat the same as having an Unknown resolution, which
    delays their lowering, still allowing such type tests to be used in
    subsequent optimization (e.g. planned usage during ICP). The final
    lowering which simply removes these handles them fine.

    Beefed up an existing ThinLTO test for such unpromoted type ids so that
    the internal vtable isn't removed before lower type tests, which hides
    the problem.

    Reviewers: evgeny777, pcc

    Subscribers: inglorion, hiraditya, steven_wu, dexonsmith, aganea, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75201

commit 1f36784b5dfea7c38a12af0e5b62f75f073a1210
Author: Volkan Keles <[email protected]>
Date:   Mon Mar 2 09:15:40 2020 -0800

    GlobalISel: Move Localizer::shouldLocalize(..) to TargetLowering

    Add a new target hook for shouldLocalize so that
    targets can customize the logic.

    https://reviews.llvm.org/D75207

commit 14134eb9391e1647ba26eb1983f3336df9e973db
Author: Arkady Shlykov <[email protected]>
Date:   Fri Jan 17 05:35:19 2020 -0800

    [Loop Peeling] Add possibility to enable peeling on loop nests.

    Summary:
    Current peeling implementation bails out in case of loop nests.
    The patch introduces a field in TargetTransformInfo structure that
    certain targets can use to relax the constraints if it's
    profitable (disabled by default).
    Also additional option is added to enable peeling manually for
    experimenting and testing purposes.

    Reviewers: fhahn, lebedev.ri, xbolva00

    Reviewed By: xbolva00

    Subscribers: RKSimon, xbolva00, hiraditya, zzheng, llvm-commits

    Differential Revision: https://reviews.llvm.org/D70304

commit e737fa612aac600e9c9244750d46d2b03815e06a
Author: Krzysztof Parzyszek <[email protected]>
Date:   Mon Mar 2 09:49:53 2020 -0600

    [Hexagon] Use BUILD_PAIR to expand i128 instead of doing arithmetic

commit b3943e67777517f31e979588e75d1daf8b091940
Author: Nicolai Hähnle <[email protected]>
Date:   Wed Feb 26 19:47:14 2020 +0100

    Build fix: Turn off _GLIBCXX_DEBUG based on a compile check

    Summary:
    Enabling _GLIBCXX_DEBUG (implied by LLVM_ENABLE_EXPENSIVE_CHECKS) causes
    std::min_element (and presumably others) to no longer be constexpr, which
    in turn causes the build to fail.

    This seems like a bug in the GCC STL. This change works around it.

    Change-Id: I5fc471caa9c4de3ef4e87aeeac8df1b960e8e72c

    Reviewers: tstellar, hans, serge-sans-paille

    Differential Revision: https://reviews.llvm.org/D75199

commit ad41630f2207bc47b05a2f0986a5e71948cd798d
Author: Simon Pilgrim <[email protected]>
Date:   Mon Mar 2 14:59:06 2020 +0000

    [X86] Cleanup ShuffleDecode implementations. NFCI.
     - Remove unnecessary includes from the headers
     - Fix cppcheck definition/declaration arg mismatch warnings
     - Tidyup old comments (MVT usage was removed a long time ago)
     - Use SmallVector::append for repeated mask entries

commit 6e60c4c13482c38f650441400fb766cc674bfed9
Author: David Green <[email protected]>
Date:   Mon Mar 2 14:26:32 2020 +0000

    [LoopVectorizer] Change types of lists from pointers to references. NFC

    getReductionVars, getInductionVars and getFirstOrderRecurrences were all
    being returned from LoopVectorizationLegality as pointers to lists. This
    just changes them to be references, cleaning up the interface slightly.

    Differential Revision: https://reviews.llvm.org/D75448

commit 7044c8086f6b96b6fdeeb2267bb079e75a556e38
Author: Luke Geeson <[email protected]>
Date:   Fri Feb 14 13:33:32 2020 +0000

    [ARM] Add Cortex-M55 Support for clang and llvm

    This patch upstreams support for the ARM Armv8.1m cpu Cortex-M55.

    In detail adding support for:

     - mcpu option in clang
     - Arm Target Features in clang
     - llvm Arm TargetParser definitions

    details of the CPU can be found here:
    https://developer.arm.com/ip-products/processors/cortex-m/cortex-m55

    Reviewers: chill

    Reviewed By: chill

    Subscribers: dmgreen, kristof.beyls, hiraditya, cfe-commits,
    llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D74966

commit 15b8a513300f7b11a73a831eddd5f8afaec98978
Author: Simon Pilgrim <[email protected]>
Date:   Mon Mar 2 11:19:48 2020 +0000

    Fix shadow variable warning. NFC.

commit e90a3056eb7e52577226336b0d67607b509b3842
Author: Simon Pilgrim <[email protected]>
Date:   Mon Mar 2 11:18:41 2020 +0000

    [CostModel][X86] Add vXi1 extract/insert cost tests

commit fa8d730ab3273f4c1730bc422b941d93cdb8268a
Author: Awanish Pandey <[email protected]>
Date:   Mon Mar 2 10:52:12 2020 +0530

    Reland "[DebugInfo][clang][DWARF5]: Added support for debuginfo generation for defaulted parameters
    in C++ templates."

    This was reverted in 802b22b5c8c30bebc1695a217478be02653c6b53 due to
    missing .bc file and a chromium bot failure.
    https://bugs.chromium.org/p/chromium/issues/detail?id=1057559#c1
    This revision address both of them.

    Summary:
    This patch adds support for debuginfo generation for defaulted
    parameters in clang and also extends corresponding DebugMetadata/IR to support this feature.

    Reviewers: probinson, aprantl, dblaikie

    Reviewed By: aprantl, dblaikie

    Differential Revision: https://reviews.llvm.org/D73462

commit 84b1eb3abc46c100d3ced979f6838a39766adb91
Author: Simon Pilgrim <[email protected]>
Date:   Mon Mar 2 10:56:29 2020 +0000

    Fix operator precedence warning. NFCI.

commit 54d477baad48fa6eecf5ea223f55ef7385343ea1
Author: Andrzej Warzynski <[email protected]>
Date:   Wed Feb 19 12:25:30 2020 +0000

    [AArch64][SVE] Add intrinsics for non-temporal gather-loads/scatter-stores

    Summary:
    This patch adds the following LLVM IR intrinsics for SVE:
    1. non-temporal gather loads
      * @llvm.aarch64.sve.ldnt1.gather
      * @llvm.aarch64.sve.ldnt1.gather.uxtw
      * @llvm.aarch64.sve.ldnt1.gather.scalar.offset
    2. non-temporal scatter stores
      * @llvm.aarch64.sve.stnt1.scatter
      * @llvm.aarch64.sve.ldnt1.gather.uxtw
      * @llvm.aarch64.sve.ldnt1.gather.scalar.offset
    These intrinsic are mapped to the corresponding SVE instructions
    (example for half-words, zero-extending):
      * ldnt1h { z0.s }, p0/z, [z0.s, x0]
      * stnt1h { z0.s }, p0/z, [z0.s, x0]

    Note that for non-temporal gathers/scatters, the SVE spec defines only
    one instruction type: "vector + scalar". For this reason, we swap the
    arguments when processing intrinsics that implement the "scalar +
    vector" addressing mode:
      * @llvm.aarch64.sve.ldnt1.gather
      * @llvm.aarch64.sve.ldnt1.gather.uxtw
      * @llvm.aarch64.sve.stnt1.scatter
      * @llvm.aarch64.sve.ldnt1.gather.uxtw
    In other words, all intrinsics for gather-loads and scatter-stores
    implemented in this patch are mapped to the same load and store
    instruction, respectively.

    The sve2_mem_gldnt_vs multiclass (and it's counterpart for scatter
    stores) from SVEInstrFormats.td was split into:
      * sve2_mem_gldnt_vec_vs_32_ptrs (32bit wide base addresses)
      * sve2_mem_gldnt_vec_vs_62_ptrs (64bit wide base addresses)
    This is consistent with what we did for
    @llvm.aarch64.sve.ld1.scalar.offset and highlights the actual split in
    the spec and the implementation.

    Reviewed by: sdesmalen

    Differential Revision: https://reviews.llvm.org/D74858

commit acb5034d24f382c0f18943c1680656d5e11f2cd0
Author: Simon Tatham <[email protected]>
Date:   Mon Mar 2 09:06:09 2020 +0000

    [ARM,MVE] Add ACLE intrinsics for VCVT[ANPM] family.

    Summary:
    These instructions convert a vector of floats to a vector of integers
    of the same size, with assorted non-default rounding modes.
    Implemented in IR as target-specific intrinsics, because as far as I
    can see there are no matches for that functionality in the standard IR
    intrinsics list.

    Reviewers: MarkMurrayARM, dmgreen, miyuki, ostannard

    Reviewed By: dmgreen

    Subscribers: kristof.beyls, hiraditya, cfe-commits, llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D75255

commit 86da1af72af95c4817e2faf02e19a91dc4b8c926
Author: Simon Tatham <[email protected]>
Date:   Mon Mar 2 09:06:00 2020 +0000

    [ARM,MVE] Add ACLE intrinsics for VCVT.F32.F16 family.

    Summary:
    These instructions make a vector of `<4 x float>` by widening every
    other lane of a vector of `<8 x half>`.

    I wondered about representing these using standard IR, along the lines
    of a shufflevector to extract elements of the input into a `<4 x half>`
    followed by an `fpext` to turn that into `<4 x float>`. But it looks as
    if that would take a lot of work in isel lowering to make it match any
    pattern I could sensibly write in Tablegen, and also I haven't been
    able to think of any other case where that pattern might be generated
    in IR, so there wouldn't be any extra code generation win from doing
    it that way.

    Therefore, I've just used another target-specific intrinsic. We can
    always change it to the other way later if anyone thinks of a good
    reason.

    (In order to put the intrinsic definition near similar things in
    `IntrinsicsARM.td`, I've also lifted the definition of the
    `MVEMXPredicated` multiclass higher up the file, without changing it.)

    Reviewers: MarkMurrayARM, dmgreen, miyuki, ostannard

    Reviewed By: miyuki

    Subscribers: kristof.beyls, hiraditya, cfe-commits, llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D75254

commit 37f1154506d8f518940194c7030a5fb5ac415c05
Author: Simon Tatham <[email protected]>
Date:   Mon Mar 2 09:05:48 2020 +0000

    [ARM,MVE] Correct MC operands in VCVT.F32.F16. (NFC)

    Summary:
    The two MVE instructions that convert between v4f32 and v8f16 were
    implemented as instances of the same class, with the same MC operand
    list.

    But that's not really appropriate, because the narrowing conversion
    only partially overwrites its output register (it only has 4 f16
    values to write into a vector of 8), so even when unpredicated, it
    needs a $Qd_src input, a constraint tying that to the $Qd output, and
    a vpred_n.

    The widening conversion is better represented like any other
    instruction that completely replaces its output when unpredicated: it
    should have no $Qd_src operand, and instead, a vpred_r containing a
    $inactive parameter. That's a better match to other similar
    instructions, such as its integer analogue, the VMOVL instruction that
    makes a v4i32 by sign- or zero-extending every other lane of a v8i16.

    This commit brings the widening VCVT.F32.F16 into line with the other
    instructions that behave like it. That means you can write isel
    patterns that use it unpredicated, without having to add a pointless
    undefined $QdSrc operand.

    No existing code generation uses that instruction yet, so there should
    be no functional change from this fix.

    Reviewers: MarkMurrayARM, dmgreen, miyuki, ostannard

    Reviewed By: dmgreen

    Subscribers: kristof.beyls, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75253

commit 605803fc344691ed4e848077dec5d20e71ed5baf
Author: Simon Tatham <[email protected]>
Date:   Mon Mar 2 09:05:35 2020 +0000

    [ARM,MVE] Add ACLE intrinsics for VQMOV[U]N family.

    Summary:
    These instructions work like VMOVN (narrowing a vector of wide values
    to half size, and overwriting every other lane of an output register
    with the result), except that the narrowing conversion is saturating.
    They come in three signedness flavours: signed to signed, unsigned to
    unsigned, and signed to unsigned. All are represented in IR by a
    target-specific intrinsic that takes two separate 'unsigned' flags.

    Reviewers: MarkMurrayARM, dmgreen, miyuki, ostannard

    Reviewed By: dmgreen

    Subscribers: kristof.beyls, hiraditya, cfe-commits, llvm-commits

    Tags: #clang, #llvm

    Differential Revision: https://reviews.llvm.org/D75252

commit b424382a42e3a41588b9d3f7915bc4dda36c0bb0
Author: Pavel Labath <[email protected]>
Date:   Tue Feb 25 15:40:49 2020 +0100

    [DWARF] Use DWARFDataExtractor::getInitialLength to parse debug_names

    Summary:
    In this patch I've done a slightly bigger rewrite to also remove the
    hardcoded header lengths.

    Reviewers: jhenderson, dblaikie, ikudrin

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75119

commit 16b078b185e5286c3eefc1e4ace9a9aa587e2773
Author: Pavel Labath <[email protected]>
Date:   Tue Feb 25 15:17:57 2020 +0100

    [DWARF] Use getInitialLength in range list parsing

    Summary:
    This could be considered obvious, but I am putting it up to illustrate
    the usefulness/impact of the getInitialLength change.

    Reviewers: dblaikie, jhenderson, ikudrin

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75117

commit b7a812f072705f3387853c0eafcd6a1203b29c75
Author: Pavel Labath <[email protected]>
Date:   Fri Feb 14 15:41:38 2020 +0100

    [DWARFDebugLine] Use new DWARFDataExtractor::getInitialLength

    Summary:
    The error messages change somewhat, but I believe the overall
    informational value remains unchanged.

    Reviewers: jhenderson, dblaikie, ikudrin

    Subscribers: hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75116

commit cbaf8eb24e1235ae239db7950b050b0a39cb381e
Author: serge-sans-paille <[email protected]>
Date:   Mon Mar 2 11:06:07 2020 +0100

    Fix Base64Test - for StringRef size

    Original failures: http://lab.llvm.org:8011/builders/clang-with-lto-ubuntu/builds/15975/steps/test-stage1-compiler/logs/stdio

commit 4327ec59c859a7a724bf1d28b40a79ec8459e047
Author: Anna Welker <[email protected]>
Date:   Mon Mar 2 09:14:37 2020 +0000

    [ARM][MVE] Restrict allowed types of gather/scatter offsets

    The MVE gather instructions smaller than 32bits zext extend the values
    in the offset register, as opposed to sign extending them. We need to
    make sure that the code that we select from is suitably extended, which
    this patch attempts to fix by tightening up the offset checks.

    Differential Revision: https://reviews.llvm.org/D75361

commit 8f356f681e128d55266bf0a634c747aa1fc68867
Author: Kang Zhang <[email protected]>
Date:   Mon Mar 2 09:50:01 2020 +0000

    [NFC][PowerPC] Move some alias definition from PPCInstrInfo.td to PPCInstr64Bit.td

    Summary:
    Some 64-bit instructions alias definition is in PPCInstrInfo.td, it should be
    moved to PPCInstr64Bit.td.

commit 135a140d053bdfa7144b714ecd98f6c63bd5855f
Author: LLVM GN Syncbot <[email protected]>
Date:   Mon Mar 2 09:02:51 2020 +0000

    [gn build] Port 5a1958f2673

commit 9d5f964841ca35a6a6eb6954e19e0e5b8048fb9e
Author: serge-sans-paille <[email protected]>
Date:   Mon Feb 24 17:21:32 2020 +0100

    Syndicate, test and fix base64 implementation

    Move Base64 implementation from clangd/SemanticHighlighting to
    llvm/Support/Base64, fix its implementation and provide a decent test suite.

    Previous implementation code was using + operator instead of | to combine some
    results, which is a problem when shifting signed values. (0xFF << 16) is
    implicitly converted to a (signed) int, and thus results in 0xffff0000, which is
    negative. Combining negative numbers with a + in that context is not what we
    want to do.

    This fixes https://github.com/llvm/llvm-project/issues/149.

    Differential Revision: https://reviews.llvm.org/D75057

commit e0fb9eaf015a532483ce84b81c7c483d03a45695
Author: Hans Wennborg <[email protected]>
Date:   Mon Mar 2 09:26:00 2020 +0100

    Revert "[DebugInfo][clang][DWARF5]: Added support for debuginfo generation for defaulted parameters"

    The Bitcode/DITemplateParameter-5.0.ll test is failing:

    FAIL: LLVM :: Bitcode/DITemplateParameter-5.0.ll (5894 of 36324)
    ******************** TEST 'LLVM :: Bitcode/DITemplateParameter-5.0.ll' FAILED ********************
    Script:
    --
    : 'RUN: at line 1';   /usr/local/google/home/thakis/src/llvm-project/out/gn/bin/llvm-dis -o - /usr/local/google/home/thakis/src/llvm-project/llvm/test/Bitcode/DITemplateParameter-5.0.ll.bc | /usr/local/google/home/thakis/src/llvm-project/out/gn/bin/FileCheck /usr/local/google/home/thakis/src/llvm-project/llvm/test/Bitcode/DITemplateParameter-5.0.ll
    --
    Exit Code: 2

    Command Output (stderr):
    --

    It looks like the Bitcode/DITemplateParameter-5.0.ll.bc file was never checked in.

    This reverts commit c2b437d53d40b6dc5603c97f527398f477d9c5f1.

commit 0c03c0d36d2bbda763fe608405143f065f646666
Author: Awanish Pandey <[email protected]>
Date:   Mon Mar 2 10:52:12 2020 +0530

    [DebugInfo][clang][DWARF5]: Added support for debuginfo generation for defaulted parameters
    in C++ templates.

    Summary:
    This patch adds support for debuginfo generation for defaulted
    parameters in clang and also extends corresponding DebugMetadata/IR to support this feature.

    Reviewers: probinson, aprantl, dblaikie

    Reviewed By: aprantl, dblaikie

    Differential Revision: https://reviews.llvm.org/D73462

commit 346697cf467652a28e28ec67678d8970a2950e36
Author: Fangrui Song <[email protected]>
Date:   Sun Mar 1 22:36:55 2020 -0800

    [PowerPC][test] Improve .got2 and .toc tests

    There is no .got2 test for powerpc32.
    There is no comdat variable test for powerpc{32,64}.

commit 27ac9a27116a990b34d6a30da45bc3bb2288d211
Author: Serguei Katkov <[email protected]>
Date:   Fri Feb 28 17:34:33 2020 +0700

    [InlineSpiller] Relax re-materialization restriction for statepoint

    We should be careful to allow count of re-materialization of operands to be less
    then number of physical registers.

    STATEPOINT instruction has a variable number of operands and potentially very big.
    So re-materialization for all operands is disabled at the moment if restrict-statepoint-remat is true.

    The patch relaxes the re-materialization restriction for STATEPOINT instruction allowing it for
    fixed operands. Specifically it is about call target.

    Reviewers: reames
    Reviewed By: reames
    Subscribers: llvm-commits, qcolombet, hiraditya
    Differential Revision: https://reviews.llvm.org/D75335

commit 3d6c422d4ad9c16e28ab0227ac271ba4ae4e7515
Author: Jim Lin <[email protected]>
Date:   Mon Mar 2 10:04:21 2020 +0800

    [Sparc] Fix incorrect operand for matching CMPri pattern

    Summary:
    It should be normal constant instead of target constant.
    Pattern CMPri can be matched if the constant can be fitted into immediate field.
    Otherwise, pattern CMPrr will be matched.
    This fixed bug https://bugs.llvm.org/show_bug.cgi?id=44091.

    Reviewers: dcederman, jyknight

    Reviewed By: jyknight

    Subscribers: jonpa, hiraditya, fedor.sergeev, jrtc27, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75227

commit 43dd0cfe6e9a59b6b70470cd9d81170061536c98
Author: Craig Topper <[email protected]>
Date:   Sun Mar 1 16:42:04 2020 -0800

    [DAGCombiner][X86] Disable narrowExtractedVectorLoad if the element type size isn't byte sized

    The address calculation for the offset assumes that you can calculate the offset by multiplying the index by the store size of the element. But that only works if the element's store size is exactly its real size since we store vectors tightly packed in memory. There are improvements we could make to this like special casing extracting element 0. I think we could also handle cases where the extracted VT is byte sized and the index is aligned with the extract element count.

    Differential Revision: https://reviews.llvm.org/D75377

commit 0a44228bffaf83d692e1d68268c4721a1be6c285
Author: Shengchen Kan <[email protected]>
Date:   Sun Mar 1 15:43:53 2020 +0800

    [X86] Not track size of the boudaryalign fragment during the layout

    Summary:
    Currently the boundaryalign fragment caches its size during the process
    of layout and then it is relaxed and update the size in each iteration. This
    behaviour is unnecessary and ugly.

    Reviewers: annita.zhang, reames, MaskRay, craig.topper, LuoYuanke, jyknight

    Reviewed By: MaskRay

    Subscribers: hiraditya, dexonsmith, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75404

commit e5f11d246e73a9a58db32a2ee6da5420a14799be
Author: Craig Topper <[email protected]>
Date:   Thu Feb 27 20:53:17 2020 -0800

    [X86][TwoAddressInstructionPass] Teach tryInstructionCommute to continue checking for commutable FMA operands in more cases.

    Previously we would only check for another commutable operand if the first commute was an aggressive commute.

    But if we have two kill operands and neither is tied to the def at the start, we should consider both operands as the one to use as the new def.

    This improves the loop in the fma-commute-loop.ll test. This test is derived from a post from discourse here https://llvm.discourse.group/t/unnecessary-vmovapd-instructions-generated-can-you-hint-in-favor-of-vfmadd231pd/582

    Differential Revision: https://reviews.llvm.org/D75016

commit af775d56a612e0f4e2e4694b3926a1cf1c48bd8f
Author: Craig Topper <[email protected]>
Date:   Sun Mar 1 10:41:20 2020 -0800

    [DAGCombiner] Don't emit select_cc from visitSINT_TO_FP/visitUINT_TO_FP. Use plain select instead.

    Select_cc isn't used by all targets. X86 doesn't have optimizations
    for it.

    Since we already know the input to the sint_to_fp/uint_to_fp is
    a setcc we can just emit a plain select using that setcc as the
    condition. Other DAG combines can turn that into a select_cc on
    targets that support it.

    Differential Revision: https://reviews.llvm.org/D75415

commit e46ccc96a08f4a50f2ab3488b5f1bf5d87a0f832
Author: Lang Hames <[email protected]>
Date:   Sun Mar 1 09:34:31 2020 -0800

    [JITLink] Update DEBUG_TYPE string for llvm-jitlink.

    Apparently LLVM_DEBUG doesn't like dashes in strings.

commit d11bc38c04e7c48f41d3ed142b49fa515f7cf357
Author: Stefanos Baziotis <[email protected]>
Date:   Sun Mar 1 19:35:58 2020 +0200

    Fix [ADT][NFC] SCCIterator: Change hasLoop() to hasCycle()

commit 9b680a0a2cb7decff01839595fb24bf2fe366b14
Author: Stefanos Baziotis <[email protected]>
Date:   Sun Mar 1 19:17:21 2020 +0200

    [ADT][NFC] SCCIterator: Change hasLoop() to hasCycle()

commit bbb26b638de91b1ac344ac63f91d7405f92229f6
Author: Reid Kleckner <[email protected]>
Date:   Sun Mar 1 08:45:22 2020 -0800

    Attempt to fix ZLIB CMake logic on Windows

    CMake doesn't seem to like it when you regex search for "^".

commit 20236045b1e2e1dcd60a7a7e789573b05559e893
Author: Reid Kleckner <[email protected]>
Date:   Sun Mar 1 07:47:55 2020 -0800

    [WinEH] Fix inttoptr+phi optimization in presence of catchswitch

    getFirstInsertionPt's return value must be checked for validity before
    casting it to Instruction*. Don't attempt to insert casts after a phi in
    a catchswitch block.

    Fixes PR45033, introduced in D37832.

    Reviewed By: davidxl, hfinkel

    Differential Revision: https://reviews.llvm.org/D75381

commit ecdd92802f38ec5f611cb410120b98c40b97d4b8
Author: Sanjay Patel <[email protected]>
Date:   Sun Mar 1 09:09:22 2020 -0500

    [DAGCombiner] recognize shuffle (shuffle X, Mask0), Mask --> splat X

    We get the simple cases of this via demanded elements and other folds,
    but that doesn't work if the values have >1 use, so add a dedicated
    match for the pattern.

    We already have this transform in IR, but it doesn't help the
    motivating x86 tests (based on PR42024) because the shuffles don't
    exist until after legalization and other combines have happened.
    The AArch64 test shows a minimal IR example of the problem.

    Differential Revision: https://reviews.llvm.org/D75348

commit f81f85226ab5841b40a2812b9ad811c0b27b8495
Author: Jun Ma <[email protected]>
Date:   Sun Mar 1 20:55:06 2020 +0800

    [Coroutines][New pass manager] Move CoroElide pass to right position

    Differential Revision: https://reviews.llvm.org/D75345

commit 6998c94faedcc2e493e11d9376e888cb2a900243
Author: Jun Ma <[email protected]>
Date:   Sun Mar 1 21:37:41 2020 +0800

    Revert "[Coroutines][new pass manager] Move CoroElide pass to right position"

    This reverts commit 4c0a133a412cd85381469e20f88ee7bf5d2ded8e.

commit 123d381c1761d3adba724f3a82c2ebf6491bf67c
Author: Jun Ma <[email protected]>
Date:   Sun Mar 1 20:55:06 2020 +0800

    [Coroutines][new pass manager] Move CoroElide pass to right position

    Differential Revision: https://reviews.llvm.org/D75345

commit b8eb0ad623cac338dfcb1b28d1a38f182d5f241e
Author: Craig Topper <[email protected]>
Date:   Sun Mar 1 00:01:38 2020 -0800

    [X86] Don't add DELETED_NODES to DAG combine worklist after calling SimplifyDemandedBits/SimplifyDemandedVectorElts.

    These AddToWorklist calls were added in 84cd968f75bbd6e0fbabecc29d2c1090263adec7.
    It's possible the SimplifyDemandedBits/SimplifyDemandedVectorElts
    triggered CSE that deleted N. Detect that and avoid adding N
    to the worklist.

    Fixes PR45067.

commit ed889a74017b563699966b9fc116b0533dff9085
Author: Fangrui Song <[email protected]>
Date:   Sat Feb 29 12:08:08 2020 -0800

    [PowerPC] Move .got2/.toc logic from PPCLinuxAsmPrinter::doFinalization() to emitEndOfAsmFile()

    Delete redundant .p2align 2 and improve tests.

commit d770247e9fc1731325dd2a624c27615cfd5e09bc
Author: Juneyoung Lee <[email protected]>
Date:   Sun Mar 1 07:22:03 2020 +0900

    [ValueTracking] Let getGuaranteedNonFullPoisonOp consider assume, remove mentioning about br

    Summary:
    This patch helps getGuaranteedNonFullPoisonOp handle llvm.assume call.
    Also, a comment about the semantics of branch is removed to prevent confusion.
    As llvm.assume does, branching on poison directly raises UB (as LangRef says), and this allows transformations such as introduction of llvm.assume on branch condition at each successor, or freely replacing values after conditional branch (such as at loop exit).
    Handling br is not addressed in this patch. It makes SCEV more accurate, causing existing LoopVectorize/IndVar/etc tests to fail.

    Reviewers: spatel, lebedev.ri, nlopes

    Reviewed By: nlopes

    Subscribers: hiraditya, javed.absar, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75397

commit 41d800ff06c71a349765128c65eec4b5d01e28f4
Author: Juneyoung Lee <[email protected]>
Date:   Sat Feb 29 13:10:31 2020 +0900

    [ValueTracking] A value is never undef or poison if it must raise UB

    Summary:
    This patch helps isGuaranteedNotToBeUndefOrPoison return true if the value
    makes the program always undefined.

    According to value tracking functions' comments, it is not still in consensus
    whether a poison value can be bitwise or not, so conservatively only the case with
    i1 is considered.

    Reviewers: spatel, lebedev.ri, reames, nlopes, regehr

    Reviewed By: nlopes

    Subscribers: uenoku, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75396

commit d709c278b6df6336debba5b6ffaf628c40ebb7e7
Author: Juneyoung Lee <[email protected]>
Date:   Sat Feb 29 14:58:07 2020 +0900

    [GVN] Fold equivalent freeze instructions

    Summary:
    This patch defines two freeze instructions to have the same value number if they are equivalent.

    This is allowed because GVN replaces all uses of a duplicated instruction with another.

    If it partially rewrites use, it is not allowed. e.g)

    ```
    a = freeze(x)
    b = freeze(x)
    use(a)
    use(a)
    use(b)
    =>
    use(a)
    use(b) // This is not allowed!
    use(b)
    ```

    Reviewers: fhahn, reames, spatel, efriedma

    Reviewed By: fhahn

    Subscribers: lebedev.ri, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75398

commit fcfdcbcfd4201ec6f2a0f96b75dc4d7474d934b4
Author: Craig Topper <[email protected]>
Date:   Fri Feb 28 22:45:05 2020 -0800

    [X86] Tighten up the SDTypeProfile for X86ISD::CVTNE2PS2BF16. NFCI

commit 80428fb35ff10da174aad17d1b10af5149262c37
Author: Reid Kleckner <[email protected]>
Date:   Sat Feb 29 10:23:54 2020 -0800

    Avoid including FileSystem.h from MemoryBuffer.h

    Lots of headers pass around MemoryBuffer objects, but very few open
    them. Let those that do include FileSystem.h.

    Saves ~250 includes of Chrono.h & FileSystem.h:

    $ diff -u thedeps-before.txt thedeps-after.txt | grep '^[-+] ' | sort | uniq -c | sort -nr
        254 -    ../llvm/include/llvm/Support/FileSystem.h
        253 -    ../llvm/include/llvm/Support/Chrono.h
        237 -    ../llvm/include/llvm/Support/NativeFormatting.h
        237 -    ../llvm/include/llvm/Support/FormatProviders.h
        192 -    ../llvm/include/llvm/ADT/StringSwitch.h
        190 -    ../llvm/include/llvm/Support/FormatVariadicDetails.h
    ...

    This requires duplicating the file_t typedef, which is unfortunate. I
    sunk the choice of mapping mode down into the cpp file using variable
    template specializations instead of class members in headers.

commit 3cec35fc47facc31941f901352b95f1d7ce06e65
Author: Simon Pilgrim <[email protected]>
Date:   Sat Feb 29 19:24:21 2020 +0000

    Fix Wdocumentation warning - use tparam for template parameters. NFC.

commit e5707f0783ec6117bd585b0569b4ff36db20fd1d
Author: Simon Pilgrim <[email protected]>
Date:   Sat Feb 29 19:22:40 2020 +0000

    [MachineInst] Remove dead code. NFCI.

    The MachineFunction MF value is not used any more and is always null.

commit fc4498117cb313caefdf5dd0c32388cd37d59997
Author: Simon Pilgrim <[email protected]>
Date:   Sat Feb 29 19:11:00 2020 +0000

    Make argument const to silence cppcheck warning. NFCI.

commit 1d64104097c78f36a32eea07f463d2923c949f28
Author: Petr Hosek <[email protected]>
Date:   Thu Feb 6 15:24:07 2020 -0800

    [CMake] Link against ZLIB::ZLIB

    This is the imported target that find_package(ZLIB) defines.

    Differential Revision: https://reviews.llvm.org/D74176

commit 352df9bc18e17decaf681cee9529f02d1f21b16e
Author: Petr Hosek <[email protected]>
Date:   Wed Feb 5 19:07:43 2020 -0800

    [CMake] Use PUBLIC link mode for static libraries

    Using INTERFACE prevents the use of imported libraries as we've done
    in 00b3d49 because these aren't linked against the target, they're
    only made part of the interface. This doesn't affect the output since
    static libraries aren't being linked into, but it enables the use of
    imported libraries.

    Differential Revision: https://reviews.llvm.org/D74106

commit 6019f1db6d54ec48b3a4b2003cf996f449ccee58
Author: Simon Pilgrim <[email protected]>
Date:   Sat Feb 29 18:56:53 2020 +0000

    [X86][F16C] Remove cvtph2ps intrinsics and use generic half2float conversion (PR37554)

    This removes everything but int_x86_avx512_mask_vcvtph2ps_512 which provides the SAE variant, but even this can use the fpext generic if the rounding control is the default.

    Differential Revision: https://reviews.llvm.org/D75162

commit e70edfb8de24b0775eaecf534e2699f302c9e81f
Author: Fangrui Song <[email protected]>
Date:   Sat Feb 29 08:25:22 2020 -0800

    [MC] Add MCStreamer::emitInt{8,16,32,64}

    Similar to AsmPrinter::emitInt{8,16,32,64}.

commit 06b5c8075d0a7f9e81fb4fa00e174a0f349f3352
Author: Sanjay Patel <[email protected]>
Date:   Fri Feb 28 17:49:22 2020 -0500

    [PassManager] add tests for vector pass enabling; NFC

commit 0becb69ddb364911908afe26bbc5398b2296c377
Author: Stefan Gränitz <[email protected]>
Date:   Sat Feb 29 11:52:19 2020 +0000

    [ExecutionEngine] Add JITSymbolFlags::fromSummary(GlobalValueSummary*)

    Summary: A function that creates JITSymbolFlags from a GlobalValueSummary. Similar functions exist: fromGlobalValue(), fromObjectSymbol()

    Reviewers: lhames

    Reviewed By: lhames

    Subscribers: hiraditya, steven_wu, dexonsmith, arphaman, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75082

commit 2a39090bf4b01bc687c4d57147494dee32dc7c5d
Author: Georgii Rymar <[email protected]>
Date:   Fri Feb 14 12:47:52 2020 +0300

    [llvm-readobj] - Report warnings instead of errors for broken relocations.

    This is a follow-up for https://reviews.llvm.org/D74545.

    It adds test cases for each incorrect case returned in `getRelocationTarget`.

    Differential revision: https://reviews.llvm.org/D74595

commit f478403d71bf9fc679883fe358513fadbc7ba3c8
Author: Benjamin Kramer <[email protected]>
Date:   Sat Feb 29 09:50:23 2020 +0100

    ArrayRef'ize restoreCalleeSavedRegisters. NFCI.

    restoreCalleeSavedRegisters can mutate the contents of the
    CalleeSavedInfos, so use a MutableArrayRef.

commit 56f370d7173541799ecd5af4fbbaf5db88cfa067
Author: Shengchen Kan <[email protected]>
Date:   Fri Feb 28 22:27:53 2020 +0800

    [X86] Move the function getOrCreateBoundaryAlignFragment

    MCObjectStreamer is more suitable to create fragments than
    X86AsmBackend, for example, the function getOrCreateDataFragment is
    defined in MCObjectStreamer.

    Differential Revision: https://reviews.llvm.org/D75351

commit 616dd1c201ccac82bfdda95c677606444c61f79a
Author: Shengchen Kan <[email protected]>
Date:   Fri Feb 28 21:09:30 2020 +0800

    [X86] Disable the NOP padding for branches when bundle is enabled

    When bundle is enabled, data fragment itself has a space to emit NOP
    to bundle-align instructions. The behaviour makes it impossible for
    us to determine whether the macro fusion really happen when emitting
    instructions. In addition, boundary-align fragment is also used to
    emit NOPs to align instructions, currently using them together sometimes
    makes code crazy.

    Differential Revision: https://reviews.llvm.org/D75346

commit b06ad8975756cbe4f31a2bc5fe3cfb485262f4dc
Author: Greg Clayton <[email protected]>
Date:   Fri Feb 28 21:19:05 2020 -0800

    Revert "Fix GSYM tests to run the yaml files and fix test failures on some machines."

    This reverts commit d334ce0b5acb945d6202d0ab6a17bdca530f50c1.

commit 33063636f20cd234c408d6f01ccd547313eef56e
Author: Michael Liao <[email protected]>
Date:   Fri Feb 28 00:01:08 2020 -0500

    [cmake] Fix LLVM_USE_SPLIT_DWARF

    Summary:
    - Add `-gsplit-dwarf` as an option instead of a definition.
    - Only add that option on compilers supporting dwarf splitting, such as clang
      and gcc.

    Reviewers: echristo, pcc

    Subscribers: mgorny, aprantl, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75328

commit 616b414333a2d4217c7a4ad57af13498caf5deab
Author: Vedant Kumar <[email protected]>
Date:   Fri Feb 28 18:27:04 2020 -0800

    Add cast to appease clang-armv7-linux-build-cache (D69471 followup)

    http://lab.llvm.org:8011/builders/clang-armv7-linux-build-cache/builds/27075

    error: non-constant-expression cannot be narrowed from type 'uint64_t'
    (aka 'unsigned long long') to 'size_t' (aka 'unsigned int') in
    initializer list [-Wc++11-narrowing]
      return {MappingBuf, getDataSize<FuncRecordTy, Endian>(Record)};

commit 1ce7fd21107198f8e3f8c72379f987a5016441da
Author: Vedant Kumar <[email protected]>
Date:   Mon Oct 21 11:48:38 2019 -0700

    Reland: [Coverage] Revise format to reduce binary size

    Try again with an up-to-date version of D69471 (99317124 was a stale
    revision).

    ---

    Revise the coverage mapping format to reduce binary size by:

    1. Naming function records and marking them `linkonce_odr`, and
    2. Compressing filenames.

    This shrinks the size of llc's coverage segment by 82% (334MB -> 62MB)
    and speeds up end-to-end single-threaded report generation by 10%. For
    reference the compressed name data in llc is 81MB (__llvm_prf_names).

    Rationale for changes to the format:

    - With the current format, most coverage function records are discarded.
      E.g., more than 97% of the records in llc are *duplicate* placeholders
      for functions visible-but-not-used in TUs. Placeholders *are* used to
      show under-covered functions, but duplicate placeholders waste space.

    - We reached general consensus about giving (1) a try at the 2017 code
      coverage BoF [1]. The thinking was that using `linkonce_odr` to merge
      duplicates is simpler than alternatives like teaching build systems
      about a coverage-aware database/module/etc on the side.

    - Revising the format is expensive due to the backwards compatibility
      requirement, so we might as well compress filenames while we're at it.
      This shrinks the encoded filenames in llc by 86% (12MB -> 1.6MB).

    See CoverageMappingFormat.rst for the details on what exactly has
    changed.

    Fixes PR34533 [2], hopefully.

    [1] http://lists.llvm.org/pipermail/llvm-dev/2017-October/118428.html
    [2] https://bugs.llvm.org/show_bug.cgi?id=34533

    Differential Revision: https://reviews.llvm.org/D69471

commit 52738a45b0f27199b16d2a7f372b7d842f773b5f
Author: Vedant Kumar <[email protected]>
Date:   Fri Feb 28 18:03:15 2020 -0800

    Revert "[Coverage] Revise format to reduce binary size"

    This reverts commit 99317124e1c772e9a9de41a0cd56e1db049b4ea4. This is
    still busted on Windows:

    http://lab.llvm.org:8011/builders/lld-x86_64-win7/builds/40873

    The llvm-cov tests report 'error: Could not load coverage information'.

commit ddbbf4cb941652de6ab2735084bae882031d2779
Author: Vedant Kumar <[email protected]>
Date:   Mon Oct 21 11:48:38 2019 -0700

    [Coverage] Revise format to reduce binary size

    Revise the coverage mapping format to reduce binary size by:

    1. Naming function records and marking them `linkonce_odr`, and
    2. Compressing filenames.

    This shrinks the size of llc's coverage segment by 82% (334MB -> 62MB)
    and speeds up end-to-end single-threaded report generation by 10%. For
    reference the compressed name data in llc is 81MB (__llvm_prf_names).

    Rationale for changes to the format:

    - With the current format, most coverage function records are discarded.
      E.g., more than 97% of the records in llc are *duplicate* placeholders
      for functions visible-but-not-used in TUs. Placeholders *are* used to
      show under-covered functions, but duplicate placeholders waste space.

    - We reached general consensus about giving (1) a try at the 2017 code
      coverage BoF [1]. The thinking was that using `linkonce_odr` to merge
      duplicates is simpler than alternatives like teaching build systems
      about a coverage-aware database/module/etc on the side.

    - Revising the format is expensive due to the backwards compatibility
      requirement, so we might as well compress filenames while we're at it.
      This shrinks the encoded filenames in llc by 86% (12MB -> 1.6MB).

    See CoverageMappingFormat.rst for the details on what exactly has
    changed.

    Fixes PR34533 [2], hopefully.

    [1] http://lists.llvm.org/pipermail/llvm-dev/2017-October/118428.html
    [2] https://bugs.llvm.org/show_bug.cgi?id=34533

    Differential Revision: https://reviews.llvm.org/D69471

commit d634b1a953ab6aac620117dae47418ef616203e3
Author: Reid Kleckner <[email protected]>
Date:   Fri Feb 28 17:21:50 2020 -0800

    Try to fix WindowsManifest CMake logic on Windows

    CMake is complaining about the "^" regex if the prefixes are empty
    strings.

commit b3b557685aaec389220f244b9b11853125e25b60
Author: Greg Clayton <[email protected]>
Date:   Fri Feb 28 15:25:47 2020 -0800

    Fix GSYM tests to run the yaml files and fix test failures on some machines.

    Summary: YAML files were not being run during lit testing as there was no lit.local.cfg file. Once this was fixed, some buildbots would fail due to a StringRef that pointed to a std::string inside of a temporary llvm::Triple object. These issues are fixed here by making a local triple object that stays around long enough so the StringRef points to valid data.

    Reviewers: aprantl, thakis, MaskRay, aadsm, wallace

    Subscribers: llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D75390

commit 59cbe304e3068e15424118e468608dbe4beacf17
Author: Craig Topper <[email protected]>
Date:   Fri Feb 28 15:42:47 2020 -0800

    [X86] Remove isel patterns from broadcast of loadi32.

    We already combine non extending loads with broadcasts in DAG
    combine. All these patterns are picking up is the aligned extload
    special case. But the only lit test we have that exercsises it is
    using v8i1 load that datalayout is reporting align 8 for. That
    seems generous. So without a realistic test case I don't think
    there is much value in these patterns.

commit 67c4e6afe6042ec5c7f9735f77923d6574befc96
Author: Francis Visoiu Mistrih <[email protected]>
Date:   Fri Feb 28 15:49:28 2020 -0800

    [LTO][Legacy] Add explicit dependency on BinaryFormat

    This fixes some windows bots.

commit 2fcd16657d9a01a46780d8f143c17d0b496f2ad1
Author: Matt Morehouse <[email protected]>
Date:   Fri Feb 28 15:49:37 2020 -0800

    [DFSan] Add __dfsan_cmp_callback.

    Summary:
    When -dfsan-event-callbacks is specified, insert a call to
    __dfsan_cmp_callback on every CMP instruction.

    Reviewers: vitalybuka, pcc, kcc

    Reviewed By: kcc

    Subscribers: hiraditya, #sanitizers, eugenis, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D75389

commit 66b2c579994d133a47660181acb953c2fba71c8e
Author: Matt Morehouse <[email protected]>
Date:   Fri Feb 28 15:48:03 2020 -0800

    [DFSan] Add __dfsan_mem_transfer_callback.

    Summary:
    When -dfsan-event-callbacks is specified, insert a call to
    __dfsan_mem_transfer_callback on every memcpy and memmove.

    Reviewers: vitalybuka, kcc, pcc

    Reviewed By: kcc

    Subscribers: eugenis, hiraditya, #sanitizers, llvm-commits

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D75386

commit 0076e97b8681bc4738cc6333d969b2018eeb7a9a
Author: Jay Foad <[email protected]>
Date:   Fri Feb 28 23:20:45 2020 +0000

    [AMDGPU] Fix scheduling model for V_MULLIT_F32

    This was incorrectly marked as a half rate 64-bit instruction by D45073.

commit 0987ad9ea10ace8461684e728c2da098d610bb3d
Author: Craig Topper <[email protected]>
Date:   Fri Feb 28 00:35:52 2020 -0800

    [X86] Canonicalize (bitcast (vbroadcast_load)) so that the cast and vbroadcast_load are both integer or fp.

    Helps a little with some isel pattern matching. Especially on
    32-bit targets where we sometimes use f64 loads.

commit 581372cfc159e17693910faa3270d1be33626b02
Author: Craig Topper <[email protected]>
Date:   Thu Feb 27 21:32:49 2020 -0800

    [X86] Remove stale FIXME form test. NFC.

commit 52e7897036e9d5fb050a2be509a19da127da112e
Author: Craig Topper <[email protected]>
Date:   Thu Feb 27 21:29:52 2020 -0800

    [X86] Cleanup a comment around bitcasting X86ISD::VBROADCAST_LOAD and add an assert to make sure memory VT size doesn't change.

commit cd1287c537648ca1cddad59a4cf1832a4c5a1f28
Author: Michael Spencer <[email protected]>
Date:   Fri Feb 28 14:39:49 2020 -0800

    [llvm][Support][modulemap] Exclude WindowsSupport.h from the LLVM_Util module

    rG01f9abbb50b1 moved WindowsSupport.h to include/llvm/Support/Windows/

    This is a problem because the modulemap include all of the Support and
    ADT directories, thus any use of any header in Support or ADT would
    cause the compiler to try to build WindowsSupport.h, which only works
    on Windows.

    Fix this by explicitly excluding WindowsSupport.h from the LLVM_Util
    module.

commit 5033576468d10dbf0f16cbe6b19de83bcec3f898
Author: Vedant Kumar <[email protected]>
Date:   Thu Feb 27 09:58:24 2020 -0800

    [entry values] ARM: Add a describeLoadedValue override (PR45025)

    As a narrow stopgap for the assertion failure described in PR45025, add
    a describeLoadedValue override to ARMBaseInstrInfo and use it to detect
    copies in which the forwarding reg is a super/sub reg of the copy
    destination. For the moment this is unsupported.

    Several follow ups are possible:

    1) Handle VORRq. At the moment, we do not, because isCopyInstrImpl
       returns early when !MI.isMoveReg().

    2) In the case where forwarding reg is a super-reg of the copy
       destination, we should be able to describe the forwarding reg as a
       subreg within the copy destination. I'm not 100% sure about this, but
       it looks like that's what's done in AArch64InstrInfo.

    3) In the case where the forwarding reg is a sub-reg of the copy
       destination, maybe we could describe the forwarding reg using the
       copy destinaion and a DW_OP_LLVM_fragment (I guess this should be
       possible after D75036).

    https://bugs.llvm.org/show_bug.cgi?id=45025
    rdar://59772698

    Differential Revision: https://reviews.llvm.org/D75273

commit b192722135d12e4391372fcde5c6be1c17f811cd
Author: Matt Morehouse <[email protected]>
Date:   Fri Feb 28 14:25:45 2020 -0800

    [DFSan] Add __dfsan_load_callback.

    Summary:
    When -dfsan-event-callbacks is specified, insert a call to
    __dfsan_load_callback() on every load.

    Reviewers: vitalybuka, pcc, kcc

    Reviewed By: vitalybuka, kcc

    Subscribers: hiraditya, #sanitizers, llvm-commits, eugenis, kcc

    Tags: #sanitizers, #llvm

    Differential Revision: https://reviews.llvm.org/D75363

commit d32bedafdb5ab0cd7e9942f7179750b54ed400c7
Author: Reid Kleckner <[email protected]>
Date:   Thu Feb 27 13:11:17 2020 -0800

    [ADT] Allow K to be incomplete during DenseMap<K*, V> instantiation

    DenseMap requires two sentinel values for keys: empty and tombstone
    values. To avoid undefined behavior, LLVM aligns the two sentinel
    pointers to alignof(T). This requires T to be complete, which is
    needlessly restrictive.

    Instead, assume that DenseMap pointer keys have a maximum alignment of
    4096, and use the same sentinel values for all pointer keys. The new
    sentinels are:
      empty:     static_cast<uintptr_t>(-1) << 12
      tombstone: static_cast<uintptr_t>(-2) << 12

    These correspond to the addresses of -4096 and -8192. Hopefully, such a
    key is never inserted into a DenseMap.

    I encountered this while looking at making clang's SourceManag…
mmitche pushed a commit to mmitche/llvm-project that referenced this issue Aug 3, 2022
Context: dotnet/runtime#62485

* Build clang, add it to nuget, add python bindings

* Disable few clang options for quicker build

* Fix nuget props on OSX and linux

The clang libs are already in the lib directory

* Change build timeout, do not build clang on arm

The windows/x64 build now takes around 120 minutes so increase
the timeout to 140 minutes.

We don't build mono/wasm on arm so we don't need to build clang for arm
targets.

* Add libclang.dll to non-arm nuget's only
tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this issue Jul 25, 2023
…cause -flto expects all global symbols to have names. Fix issue llvm#149.
tarunprabhu added a commit to tarunprabhu/kitsune that referenced this issue Feb 8, 2024
…All credit

for OpenCilk goes to the individuals listed in the commit message below.

commit 9e7b5b83a06d24f18d53bce2ae84ad23e8629566
Author: TB Schardl <[email protected]>
Date:   Fri Nov 24 14:35:53 2023 +0000

    [test/Examples] Fix Tapir-Kaleidoscope test to check Tapir-IR code generation and execution as serial code.

commit edf18d2cb3ccae6b82e8fc2bb724b6b4e210135f
Author: TB Schardl <[email protected]>
Date:   Fri Nov 24 13:58:07 2023 +0000

    [examples] Add command-line options to control IR printing in Tapir-Kaleidoscope example.

commit 371c986883d3759cd48edb1570238d3e39d02b03
Author: TB Schardl <[email protected]>
Date:   Fri Nov 24 13:57:08 2023 +0000

    [examples] Fix Tapir Kaleidoscope example to use new pass manager and updated OrcJIT interface.

commit e551f77d3ee462c4c0ac35155d69ffa7c892ef91
Author: TB Schardl <[email protected]>
Date:   Fri Nov 24 13:52:08 2023 +0000

    Code cleanup and formatting.

commit 6ef312d8799d05324d956a819c2e078505d00ee4
Author: TB Schardl <[email protected]>
Date:   Sun Nov 12 20:10:57 2023 +0000

    Fix bugs for rebase onto LLVM 17.0.4

commit 1f6d36945cbb4529b7a83e5eb557f02f7e9c4dfc
Author: TB Schardl <[email protected]>
Date:   Sun Oct 22 19:12:01 2023 +0000

    [SimpleLoopUnswitch] Fix nontrivial loop-unswitching to work with Tapir, and restore relevant regression tests.

commit e5aca09467aa9f5174bbaeba85aa667c5f055006
Author: TB Schardl <[email protected]>
Date:   Sat Oct 21 00:31:59 2023 +0000

    [AArch64] Modify read of threadpointer to be marked that it may load memory, rather than having unmodeled side effects.

commit 052ab4e90209797c6da67f78f71255a79e71f3c8
Author: TB Schardl <[email protected]>
Date:   Mon Oct 9 10:26:09 2023 +0000

    [AArch64] Mark the read of the threadpointer has having unmodeled side effects to prevent misoptimization in programs where the executing thread may change across a function call.

    In principle, this change could be made more precise to enable some
    optimizations of this operation, including removal of redundant reads
    when there is no intervening function call.  But it is not clear what
    attributes currently exist that could be attached to this operation to
    model its behavior more precisely.

commit 8754ae43760485e9a168254f322816760871396d
Author: TB Schardl <[email protected]>
Date:   Mon Oct 9 10:25:43 2023 +0000

    [test/Tapir] Fix requirement for test that needs X86 target.

commit 6e75058f3cc757eb7ef959dcd3d1361d20595338
Author: TB Schardl <[email protected]>
Date:   Fri Oct 20 00:15:22 2023 +0000

    [InstCombine] Fix removal of adjacent tapir.runtime.start and tapir.runtime.end calls.

commit b7220ab142f3e839b1dafc142b2213d561c05470
Author: TB Schardl <[email protected]>
Date:   Wed Oct 18 14:15:46 2023 +0000

    [AddressSanitizer] Analyze parallel-promotable allocas before ASan's instrumentation might invalidate task analysis.

commit 95f8a8edb37b999745b0bb8772149c744a68eddc
Author: TB Schardl <[email protected]>
Date:   Sat Oct 14 11:48:49 2023 +0000

    [JumpThreading] Fix jump threading to remove pointers to deleted basic blocks that contain Tapir instructions.

commit aeeb5b1b1a582ec850bf960cbb349f5d021332eb
Author: TB Schardl <[email protected]>
Date:   Fri Oct 13 23:27:59 2023 +0000

    [DRFScopedNoAliasAA] Fix a compiler warning.

commit 76c49de053a605163c212d5f59ccccc6600608e4
Author: TB Schardl <[email protected]>
Date:   Fri Oct 13 23:25:14 2023 +0000

    [Tapir,Cilk] Fix a memory error and some memory leaks.

commit a6641c8c2561e98f356435e936711584c81fbfeb
Author: John F. Carr <[email protected]>
Date:   Tue Oct 10 15:02:02 2023 -0400

    Set memory(none) instead of readonly on strand_pure function definition

commit 317b6d5ca7bcc44dd91771a65cd793b7f12b6408
Author: TB Schardl <[email protected]>
Date:   Sat Oct 7 15:05:58 2023 +0000

    [Attributes] Make sure that inlining propagates the stealable attribute on a function to callers.

commit ec78c76b0a01faf207a28c66d1fff4ba9411500a
Author: TB Schardl <[email protected]>
Date:   Sat Sep 30 03:08:44 2023 +0000

    [InlineFunction] Fix inlining of detaches with no unwinds into taskframes with unwind destinations.

commit 4ebb3d94a206fd1222febaa618bf213f17cf84c1
Author: TB Schardl <[email protected]>
Date:   Mon Sep 25 01:09:17 2023 +0000

    [LoweringUtils] Ensure that calls to outline helper functions have proper debug information.

commit 2686e68573527096ce8bb146777a2c7dd0cce785
Author: TB Schardl <[email protected]>
Date:   Mon Sep 25 01:07:47 2023 +0000

    [CilkSanitizer,CSI] Skip allocas in entry blocks when finding the initial place to insert instrumentation.  This change ensures that allocas in spawning functions are on the original stack, allowing ASan to properly instrument those allocas without being disrupted by stack switching.  Fixes issue OpenCilk/opencilk-project#197.

commit 51ffb8acf34131b32f5b80e5ceb1011d9cd1a935
Author: TB Schardl <[email protected]>
Date:   Mon Sep 25 00:56:19 2023 +0000

    [CSI] Assign numbers to local sync regions and pass those numbers to Tapir CSI hooks, instead of a separate stack allocation.

commit 0019cd04c112b31fbd6066ff0c85f572ba39e1c3
Author: TB Schardl <[email protected]>
Date:   Mon Sep 25 00:46:05 2023 +0000

    [SelectionDAGBuilder] Provide default serial lowering for task.frameaddress intrinsic.  Fixes issue OpenCilk/opencilk-project#198.

commit 17993c6aa8022d2f71d93044e7d0ac33d9a9f72f
Author: TB Schardl <[email protected]>
Date:   Mon Sep 25 00:21:46 2023 +0000

    [SemaCilk] Throw error when a _Cilk_spawn spawns a return statement.

    Fixes issue OpenCilk/opencilk-project#194.

commit 2525529acb32d203fbff77b60c8f30e490ff79ba
Author: Tao B. Schardl <[email protected]>
Date:   Sun Sep 17 09:20:04 2023 -0400

    Update README.md

    Fix typos and add some extra notes.

commit 0d946a072db5bea6a7bbb3a74d8ed36d21b78f8e
Author: Tao B. Schardl <[email protected]>
Date:   Sat Sep 16 14:13:50 2023 -0400

    Simplify headers in README.md

commit 59cdaa58f19432befdad8806db5f6bf5809d2c97
Author: Tao B. Schardl <[email protected]>
Date:   Sat Sep 16 14:10:42 2023 -0400

    Fix headers in README.md

commit a488d8bf61588a8798888309bf85dfdb96e2b30f
Author: Tao B. Schardl <[email protected]>
Date:   Sat Sep 16 14:08:53 2023 -0400

    Create README.md

    Add README that briefly overviews OpenCilk and how to use it.

commit 5523fa6746cb7b67c112b52b89618602e1d9358c
Author: TB Schardl <[email protected]>
Date:   Fri Sep 15 12:33:50 2023 +0000

    [README] Rename LLVM README file.

commit dfdf56660eb70df5f2cd3c55717f7ed00f59461c
Author: John F. Carr <[email protected]>
Date:   Wed Sep 6 12:14:08 2023 -0400

    Remove unused HyperToken attribute

commit 5dcd8bcef85c451791da5f6b2717665a4d15c674
Author: TB Schardl <[email protected]>
Date:   Fri Sep 1 20:21:27 2023 -0400

    [test/Cilk] Fix tests to accommodate different constructor ABIs.

commit a2a5e20b00da185d01f9caf510006efdadef560b
Author: TB Schardl <[email protected]>
Date:   Fri Sep 1 08:01:16 2023 -0400

    [CilkSanitizer,CSI] Fix CFG setup to properly update the dominator tree and handle free functions.

commit 13b7ac764d75e34b4b5c04ae093f274413334aca
Author: John F. Carr <[email protected]>
Date:   Thu Aug 31 14:33:25 2023 -0400

    Use BuildBuiltinCallExpr for hyper_lookup too

commit a78944f376cb512cd3d7069ed16454e019bc972f
Author: John F. Carr <[email protected]>
Date:   Wed Aug 30 16:42:08 2023 -0400

    Use BuildBuiltinCallExpr to generate call to __builtin_addressof

commit 5cac64f4f56f42e90e5eda94d494b14d833f99c5
Author: John F. Carr <[email protected]>
Date:   Thu Aug 24 10:13:21 2023 -0400

    Look through _Hyperobject in delete

commit 8a409dfc1fc889ee3e4020208899dce3b2bc7c9b
Author: TB Schardl <[email protected]>
Date:   Sun Aug 20 13:53:50 2023 +0000

    [github] Update workflows to run more tests, to run tests on pull requests, and to run tests on dev/ and ci/ branches.

commit d8724a170163b266cd887f123efad6cb8f768e21
Author: TB Schardl <[email protected]>
Date:   Sun Aug 20 13:42:13 2023 +0000

    [CilkSanitizer,CSI] Instrument allocation and free functions as such even when the program is compiled with -fno-builtin.

commit d96e33c920295ac1aa7abc929ecc64a4f145d4c7
Author: TB Schardl <[email protected]>
Date:   Wed Aug 9 09:45:00 2023 +0000

    [Intrinsics] Fix memory attributes of llvm.threadlocal.address intrinsic to prevent misoptimization of intrinsic in Cilk code.

commit f2ebdcc6ab2c2600848c7743216d3250657864c1
Author: TB Schardl <[email protected]>
Date:   Thu Aug 3 11:10:50 2023 +0000

    [JumpThreading] Do not thread a detach-continue edge if the corresponding reattach-continue edge is not also threaded.

commit 93fb23676c5a5ece416b1c4c1485ea6c3303bc24
Author: TB Schardl <[email protected]>
Date:   Wed Jul 26 11:57:41 2023 +0000

    [clang] Convert more instances of Optional to std::optional.

commit 5e6c4f2974822d28abb52e851d86b318657e8a20
Author: TB Schardl <[email protected]>
Date:   Sun Jul 23 22:30:06 2023 +0000

    [test/Tapir] Remove tests using old pass manager.

commit c8e60b12aa8c07a97a4ca57fab76e0bfde227317
Author: John F. Carr <[email protected]>
Date:   Fri Jul 21 18:57:22 2023 -0400

    Compute memory effects of outlined function

commit 008a2e069ddb68c9843727d1f9d911eea2ca3dcd
Author: John F. Carr <[email protected]>
Date:   Thu Jul 20 20:32:17 2023 -0400

    Use new memory effects interface for outlined function

commit c3c430f335c47a7e142f0abac315a3a68d240c12
Author: TB Schardl <[email protected]>
Date:   Fri Jul 14 14:25:59 2023 +0000

    [LoopInfo] Fix bug in which getting task exits of a loop would exclude nested tasks.  Fix issue OpenCilk/opencilk-project#177.

commit e210d0c730d19dfac0cecb283e743f248e2d4904
Author: John F. Carr <[email protected]>
Date:   Mon Jun 5 13:47:24 2023 -0400

    Call overloaded unary operator on hyperobject

commit 2c24a1354caa121ed28daa9c5f7149063761afa5
Author: John F. Carr <[email protected]>
Date:   Mon Jun 5 15:34:56 2023 -0400

    Allow hyperobject view lookup in overload resolution

commit 2c8940f87fb5056b7f63630b49633dde363a6e1c
Author: TB Schardl <[email protected]>
Date:   Sat Jun 24 20:19:12 2023 +0000

    [Tapir] Use internal linkage for generated helper functions, to ensure that they have symbols that tools can use.  Fix issue OpenCilk/opencilk-project#172.

commit 0f00524cbaf358995ecd61ce55b98939edc61cb1
Author: TB Schardl <[email protected]>
Date:   Tue Jul 4 18:42:05 2023 +0000

    [cmake] Remove unused logic for passing llvm-link path to external projects.

commit 5dc8895b0f6da272e7c7f801bb7a2cd33675f980
Author: TB Schardl <[email protected]>
Date:   Tue Jul 4 18:41:07 2023 +0000

    [llvm-reduce] Ensure that Tapir instructions are replced properly when removing basic blocks.

commit 10c6f3d2e768151744ea60526e1eb9158672ad06
Author: TB Schardl <[email protected]>
Date:   Tue Jul 4 17:43:49 2023 +0000

    [SROA] Maintain Tapir task info as SROA modifies the CFG.  TODO: Add functionality to incrementally update Tapir task info analysis.

commit 18b3fbe2e3aebb270dd9b7466a789b557b340d36
Author: TB Schardl <[email protected]>
Date:   Mon Jul 3 16:30:07 2023 -0400

    Fix bugs for rebase onto LLVM 16.0.6

commit ee2dba003c86a78ac8870b5d67889e6df5e97303
Author: TB Schardl <[email protected]>
Date:   Sun Jun 4 13:18:11 2023 +0000

    [PassBuilder] Create separate TapirLoopLowerPipeline for lowering Tapir loops, and add options to run Tapir lowering pipelines via opt.

commit 750fd88a40d90d4a9aed3dd5e58052adde9f3019
Author: TB Schardl <[email protected]>
Date:   Mon May 29 14:12:32 2023 +0000

    [github] Reenable tests on GitHub Actions.

commit 80110eff05f6edfd427af5293f380d990928fbfd
Author: TB Schardl <[email protected]>
Date:   Mon May 29 19:43:44 2023 -0400

    [test/Tapir] Generalize SROA test to fix test failure on macOS.

commit b22925221b7f476a3aaf836e2cba8e99031f0760
Author: TB Schardl <[email protected]>
Date:   Mon May 29 14:02:09 2023 +0000

    [SimplyCFG,TaskSimplify] Add hidden command-line options to disable optimization of removing detaches that immediately sync.

commit e1a34b85ece70fff8b3c1b297d97a6962f5dfb5f
Author: TB Schardl <[email protected]>
Date:   Mon May 29 14:01:20 2023 +0000

    [Tapir] Remove deprecated CudaABI and OpenMPABI Tapir targets.  Add LambdaABI and OMPTaskABI Tapir targets from OpenCilk PPoPP'23 paper for targeting alternative parallel runtimes.

commit e4d3b479a35685d95a49fac4e7cb4ff2dea4fc8a
Author: TB Schardl <[email protected]>
Date:   Mon May 22 01:52:35 2023 +0000

    [Tapir] Code formatting.

commit 7f44fab557139b1e61ccb9c7105b6b483c85f5be
Author: TB Schardl <[email protected]>
Date:   Mon May 22 01:51:39 2023 +0000

    [InlineFunction] Fix insertion of landingpads for taskframes when multiple taskframes appear in the same basic block.

commit 32f6f0be8204008f449f401c048363b7c6d35533
Author: TB Schardl <[email protected]>
Date:   Mon May 22 01:48:29 2023 +0000

    [TapirUtils] Modify FindTaskFrameCreateInBlock to optionally ignore a specific taskframe.create when searching a block for a taskframe.create.

commit 1c76104684bcdd9c28b85d03a41fdc8120030fc0
Author: TB Schardl <[email protected]>
Date:   Mon May 22 01:46:08 2023 +0000

    [Verifier] Add check that the successor of a reattach has a predecessor terminated by a detach that dominates the reattach.

commit e89d3bf0875a3da8f1ed852f589e96837b6c0310
Author: TB Schardl <[email protected]>
Date:   Mon May 22 01:44:51 2023 +0000

    [SSAUpdater] Fix handling of detach-continuation blocks with multiple detach and reattach predecessors.

commit eb439ea8c2b10622dd9b28ad8ff29e301a9cb095
Author: TB Schardl <[email protected]>
Date:   Thu May 18 17:39:20 2023 +0000

    [OpenCilkABI] Fix OpenCilk target to ensure that any sync that can possibly throw an exception has an associated landingpad.

commit a07679135eb1ac1d084815943feca0d4029a167b
Author: TB Schardl <[email protected]>
Date:   Tue Apr 18 01:14:31 2023 +0000

    Fix bugs for rebase onto LLVM 15.0.7.

commit 0b9ca933ffec4892d942a0725d3d3ff4763a3332
Author: Tao B. Schardl <[email protected]>
Date:   Thu Apr 6 05:59:35 2023 -0400

    Fix workaround in llvm-project-tests.yml for new macOS runner image.

commit a475e5f5c47a70be9ca1e5777576cb61967c7748
Author: TB Schardl <[email protected]>
Date:   Thu Mar 30 19:10:44 2023 +0000

    [test/Tapir] Mark test that requires the X86 target as such.

commit c98c75e6159ae279dd08cdf9af072b119bac32bf
Author: TB Schardl <[email protected]>
Date:   Sun Jan 29 20:21:12 2023 +0000

    [CilkSanitizer] Special-case the instrumentation of hyper.lookup, to allow Cilksan library to implement its own handling of reducers separately from runtime system.

commit 6396775792b42ee51d4e4f7a29629e2e0456770f
Author: TB Schardl <[email protected]>
Date:   Sat Jan 28 03:22:47 2023 +0000

    [BasicAliasAnalysis,test/Cilk,test/Tapir] Fix test cases and alias analysis to accommodate new hyper.lookup signature.

commit 09ac42508428f619c332ae0c27a4ac0b6e730ebc
Author: TB Schardl <[email protected]>
Date:   Wed Jan 4 00:31:50 2023 +0000

    [CodeGen,Sema] Fix support for __hyper_lookup calls in dependent contexts.

commit 56f889f3e21d6be19d9502af410138ce234af05a
Author: TB Schardl <[email protected]>
Date:   Sun Dec 18 22:03:43 2022 -0500

    [Basic,CodeGen,Sema,IR,Tapir] Modify hyper_lookup intrinsic to pass additional information about the reducer being looked up, namely, its view size, identity function, and reduce function.

commit 8ff678c882a5d1bd1e84495fcbefc49745807fcd
Author: John F. Carr <[email protected]>
Date:   Sat Feb 25 13:42:18 2023 -0500

    Fix crashes on bad hyperobject declarations

commit 4f43a60975c503c698dbde9aac31e33d8f731204
Author: TB Schardl <[email protected]>
Date:   Wed Feb 1 03:23:48 2023 +0000

    [CSI,CilkSanitizer] Identify detaches and their continuations that are associated with Tapir loops.

commit 02dea84d7d5521638bae13bf88b132a540ee0f5b
Author: TB Schardl <[email protected]>
Date:   Tue Feb 7 11:36:49 2023 +0000

    [TailRecursionElimination] Allow TRE to occur when a tail call is separated from a return by a sync and a tapir.runtime.end intrinsic.  In such cases, TRE removes the tapir.runtime intrinsics altogether.

commit b93ccc5bfb6c51905111c5bdac94c211328dda53
Author: TB Schardl <[email protected]>
Date:   Tue Feb 7 11:34:51 2023 +0000

    [TailRecursionElimination] Avoid performing tail-recursion elimination for a tail call followed by a sync if there exists a sync preceding that call in the function.  TRE in this case can change the synchronization of the program, by causing some spawns to sync earlier than before.  TRE in such cases appears to make parallel scalability worse.

commit 99c8bf79d59311331c3839a45357aae9388cda17
Author: TB Schardl <[email protected]>
Date:   Tue Feb 7 11:13:28 2023 +0000

    [InstCombineCalls] Combine consective pairs of tapir.runtime intrinsics, to avoid needlessly stopping and resuming a parallel runtime.

commit f7f8e08c655be46ab3b90808f1ed3a433fc11b43
Author: TB Schardl <[email protected]>
Date:   Sat Feb 4 01:30:50 2023 +0000

    [TapirUtils] Two changes involving optimizations with taskframes:

    - When serializing a detach, if the task contains a sync, replace the
      detach with a taskframe, to prevent that sync from synchronizing
      tasks in the parent.

    - Allow a taskframe containing allocas to be replaced with
      stacksave/stackrestore intrinsics.

commit 32f4498946d58a21d0e2b5ca00c31e3083a2d414
Author: TB Schardl <[email protected]>
Date:   Wed Feb 1 11:20:01 2023 +0000

    [github] Update llvm-project-tests for new macOS 11 runner image.

commit 8629b933e525db8b66fb29d7628f3697601825d0
Author: TB Schardl <[email protected]>
Date:   Wed Feb 1 03:32:16 2023 +0000

    [LoweringUtils] Identify blocks in taskframes that are shared outside of the taskframe, e.g., for __clang_call_terminate.  These blocks may have PHI nodes that need to be updated during lowering.

commit ebea8384f158dcbbcadd7228966776d01e39927a
Author: TB Schardl <[email protected]>
Date:   Sat Nov 12 20:27:51 2022 +0000

    [Clang] Don't necessarily add the OpenCilk runtime bitcode ABI if a custom Tapir target is specified.

commit 17c5191782250602488c7b0a3fce8f051aa330dc
Author: John F. Carr <[email protected]>
Date:   Tue Jan 3 16:22:19 2023 -0500

    Test case for OpenCilk issue 157

commit 91590ae258da4a08b22e29ca0df060336b205083
Author: John F. Carr <[email protected]>
Date:   Tue Jan 3 15:50:46 2023 -0500

    Make isViewSet check the View flag instead of the Pure flag.
    Regression introduced by 52f8a61bc248d312da9269cfdddabad8ff51f9d6.

commit b75ad9a29a76acdb52c84cf24930063988d19b6d
Author: John F. Carr <[email protected]>
Date:   Sat Dec 31 14:29:16 2022 -0500

    Fix type checking of Cilk for loops with pointer loop variables

commit 36ccb03b7c7ce2418bf72d995a18754fa1348ab6
Author: John F. Carr <[email protected]>
Date:   Tue Dec 27 14:53:11 2022 -0500

    Fix crash on type error in Cilk for statement

commit 8f4bcb58ba33d7406263d80455c28aba5a7b218c
Author: TB Schardl <[email protected]>
Date:   Thu Dec 1 10:16:05 2022 -0500

    [CSI] Ensure that all global variables CSI introduces have a name, because -flto expects all global symbols to have names.  Fix issue #149.

commit a6df8341db1ffe6ac967787dea8784af6988991f
Author: TB Schardl <[email protected]>
Date:   Thu Dec 1 07:17:25 2022 -0500

    [test/Tapir] Add aarch64-target requirement to an aarch64 codegen test.

commit e0b8e54b7d1c4f58632c141cc6a50cf103897402
Author: TB Schardl <[email protected]>
Date:   Thu Dec 1 06:39:18 2022 -0500

    [InlineFunction] Fix insertion of allocas when inlining function calls with byval arguments inside of tasks.  Fix issue #148.

commit 6991ce6ea07ee324c451a9360ac934ee04280d5f
Author: TB Schardl <[email protected]>
Date:   Wed Nov 9 20:25:31 2022 -0500

    [Tapir] Adjust Tapir Target API to fix handling of analyses when a target handles Tapir instructions manually, i.e., without using the standard infrastructure to outline tasks.

commit 7bc03ea1ca310534377dce4ba925c71e0b370af8
Author: TB Schardl <[email protected]>
Date:   Tue Nov 8 11:50:14 2022 +0000

    [InlineFunction,EHPersonalities] Add support for inlining functions that use the Cilk and GXX EH personalities.

commit f623521ce37b8bf34a14b53f152e7b3f6e36153d
Author: TB Schardl <[email protected]>
Date:   Sun Nov 6 23:02:33 2022 +0000

    [test/Cilk] Fix test for syncregion debug info to work on Linux.

commit df1786d82e4a8ac49dc093748272517767c4cd00
Author: TB Schardl <[email protected]>
Date:   Sun Nov 6 15:53:09 2022 -0500

    [CGCilk,OpenCilkABI] Generate debug info on syncregion.start intrinsics to help ensure that the OpenCilk Tapir target can attach debug information to runtime-ABI calls it inserts.

commit 166681fa315dd667633c11b6236207dfb0bf716b
Author: TB Schardl <[email protected]>
Date:   Fri Nov 4 00:06:26 2022 +0000

    [OpenCilkABI] Fix typo in comments.

commit aa64c25ee1e20078dc9375d3c2a4382cf5c8000f
Author: TB Schardl <[email protected]>
Date:   Fri Nov 4 00:05:26 2022 +0000

    [InstCombine] Prevent InstCombine from sinking instructions from a continuation to after a sync instruction, as doing so is a pessimization.

commit 22cb41d746a4367c9d689129c485a1393b1067c8
Author: John F. Carr <[email protected]>
Date:   Wed Oct 26 09:56:54 2022 -0400

    Demangle mangled hyperobject type

commit ff0cb780b62bbc8c081414db8fc26ffe34c5b19f
Author: TB Schardl <[email protected]>
Date:   Sat Oct 22 09:05:16 2022 -0400

    [CilkSanitizer] Spill complex arguments, including structures, onto the stack when passing them to hooks.

commit 02690918b737504d0bf5ccfa1536a83b8009ae44
Author: TB Schardl <[email protected]>
Date:   Thu Oct 20 22:10:13 2022 -0400

    [DebugInfo] Fix compiler crash when calling findDbgValues for a Value that has a ConstantAsMetadata.

commit 30e93e3013ba3aaf2e8dc4edea6394b2792bbcad
Author: TB Schardl <[email protected]>
Date:   Wed Oct 19 18:59:58 2022 -0400

    [InlineFunction] Work around issue to allow inlining functions with different personalities where the caller is using the default personality.

commit ddccecf6a5b4f0f9e316cb130fa6463af8e3ecc8
Author: TB Schardl <[email protected]>
Date:   Wed Oct 19 18:58:41 2022 -0400

    [TapirUtils] Fix logic to promote calls to invokes in taskframes when taskframe.end precedes another important terminator, such as a reattach.

commit c7f6aae56a9039fd78d28b3312ebb1cde3d8a3b9
Author: TB Schardl <[email protected]>
Date:   Wed Oct 19 17:58:17 2022 -0400

    [TapirUtils] Fix logic to promote calls to invokes within tasks to handle cases where a taskframe comprises less than a single basic block.

commit 7a808290c0045a23fcdc7b7ec6a27593a0be3a45
Author: TB Schardl <[email protected]>
Date:   Thu Oct 13 10:46:41 2022 +0000

    [TapirUtils] Support promoting calls to invokes in tasks that are not reachable.  This functionality avoids compiler crashes on some codes that are instrumented with Sanitizers and compiled with no optimizations.

commit ecacc75102deeea488a53c54f418d68906c484ad
Author: TB Schardl <[email protected]>
Date:   Thu Oct 13 10:39:50 2022 +0000

    [TapirTaskInfo] Allow a task to use shared-EH spindles managed by an ancestor task that is not the immediate parent task.

commit e1cdaaa5e896985c94d37af98e323ec1b1164dd0
Author: Tao B. Schardl <[email protected]>
Date:   Fri Oct 7 14:19:55 2022 -0400

    [github] Update llvm-project-tests.yml

    Fix include path for updated macOS runner

commit cde7a91d7bc2c425367d93e52f7e07bd53ab0ab0
Author: TB Schardl <[email protected]>
Date:   Mon Sep 19 01:21:53 2022 +0000

    [test/Tapir] Update requirements on SLP-vectorization test.

commit 307e3d7c452167b728ebcb20f256ae3c6651b506
Author: TB Schardl <[email protected]>
Date:   Sun Sep 18 21:32:54 2022 +0000

    [Passes] Fix pass pipeline to run CSE after SLP vectorization.  Running CSE before SLP vectorization can disrupt the SLP vectorizer's ability to determine how to vectorize code.

commit 7541c785ba2cbe3cb0c8b48f674ee0ebfca84096
Author: John F. Carr <[email protected]>
Date:   Mon Sep 5 06:35:43 2022 -0400

    Hyperobject lookups need special handling in any dependent context

commit 0e31a81c0c1620e5526308057bd4c54433269e41
Author: TB Schardl <[email protected]>
Date:   Sun Aug 28 15:47:19 2022 +0000

    [test/Tapir] Add regression test for linking null bitcode module.

commit a653bce91d9461be3ebecff8c1a8e4dcbdc389c3
Author: John F. Carr <[email protected]>
Date:   Thu Aug 11 13:30:13 2022 -0400

    Fill in all the missing pieces after failure to load bitcode

commit 0b874f609e2fb47ba86d808c620d8b26dddac9f4
Author: John F. Carr <[email protected]>
Date:   Thu Aug 11 13:04:03 2022 -0400

    Do not try to link null bitcode module

commit 096f06752fee07f997892321732065471f9cfcce
Author: TB Schardl <[email protected]>
Date:   Thu Aug 25 11:21:18 2022 +0000

    [InlineFunction] Allow a function to be inlined into another with a different personality function if the callee simply uses the default personality function.  This workaround addresses issue #127.

commit 89918abac5655a23e4a83084fff2d72d09f3a1d1
Author: TB Schardl <[email protected]>
Date:   Thu Aug 25 11:09:59 2022 +0000

    [github] Make workflows consistent with workflows in mainline LLVM.

commit 7a24497661eea1267b1df503542e04bd824d3dbc
Author: TB Schardl <[email protected]>
Date:   Mon Aug 1 13:29:44 2022 +0000

    [CSI] Ignore unreachable basic blocks for instrumentation.  Remove debug statement to fix issue #129.

commit ab4e5b34f0fcb9c818267fdd0c800541f3d3a764
Author: TB Schardl <[email protected]>
Date:   Sun Aug 21 02:01:32 2022 +0000

    [github] Update llvm-project-tests based on upstream changes.

commit c2f58be9762b72edf4ac7a038a18ce41ef4a07e6
Author: TB Schardl <[email protected]>
Date:   Sun Aug 21 01:56:53 2022 +0000

    [github] Disable issue-subscriber action.

commit 35c54228228ef79e1458da1eb37a748f3f24ca2f
Author: John F. Carr <[email protected]>
Date:   Sun Jul 24 12:47:07 2022 -0400

    Fix crash on undeclared reducer callback

commit 672bb71d9272a0867562e147058810df2400151e
Author: TB Schardl <[email protected]>
Date:   Wed Jul 20 11:33:16 2022 +0000

    [github] Update workflows for release.

commit 615c152cec47318479e38c7e78aae6eadb8d5989
Author: TB Schardl <[email protected]>
Date:   Tue Jul 19 13:42:35 2022 +0000

    [ToolChain] When an OpenCilk resource directory is specified, add the include directory within that resource directory to the include path.

commit 6d6cc7e8dc7ebf6144d4e339613fc8b06709d821
Author: TB Schardl <[email protected]>
Date:   Mon Jul 18 11:58:48 2022 +0000

    [CMakeLists] Add OpenCilk version number that is distinct from LLVM version number.

commit 9493c3247b94dcccdafc1a9501933e81c0c2c395
Author: TB Schardl <[email protected]>
Date:   Sun Jul 17 15:35:05 2022 +0000

    [CSI][ThreadSanitizer] Fix promotion of calls to invokes within Tapir tasks.  Fixes issue OpenCilk/opencilk-project#113.

commit 3ee74ab8798c20c599fe8a410f40025f7da94333
Author: John F. Carr <[email protected]>
Date:   Mon Jul 18 13:45:19 2022 -0400

    Test for hyperobject with constructor but no destructor

commit 683ff7fdeb85fc5943c71285c8cf4215f28b7f44
Author: John F. Carr <[email protected]>
Date:   Mon Jul 18 10:17:13 2022 -0400

    Fix test for trivial destructor

commit cb5dbb6e36d31a3720eb294f28eb459e1e26af91
Author: TB Schardl <[email protected]>
Date:   Thu Jul 14 11:44:37 2022 +0000

    [github] Update workaround for building on macos-10.15 GitHub virtual environment.

commit 461d443bb0eebbfda24d534bb8cda0f70624a232
Author: John F. Carr <[email protected]>
Date:   Sun Jul 10 14:45:12 2022 -0400

    Merge reducer destructor callback into reduce callback.

commit 1930b5aef735a070dabdf5d1656ccbcfd6fb829f
Author: John F. Carr <[email protected]>
Date:   Sun Jul 10 14:23:01 2022 -0400

    Visit statment children of HyperobjectType

commit 9ff353d37b34ebc270792588675735e80ebc97af
Author: TB Schardl <[email protected]>
Date:   Sun Jul 10 20:48:53 2022 +0000

    [CREDITS] Expand CREDITS.TXT to reflect recent contributions.

commit 451ce36119e7547bcd4068976d15483c6cda1d8b
Author: TB Schardl <[email protected]>
Date:   Sun Jul 10 20:46:01 2022 +0000

    [test/Tapir] Fix llvm test failues on non-x86 systems.

commit 8321ebf8e6e19f46e4ceb48d465c590d9be65067
Author: TB Schardl <[email protected]>
Date:   Sun Jul 10 20:45:24 2022 +0000

    [test/Cilk] Fix clang test failures on non-x86 systems.

commit a508e80246f815e447db539e4db81d8992064d9a
Author: TB Schardl <[email protected]>
Date:   Sun Jul 10 20:44:37 2022 +0000

    [TapirUtils][SimplifyCFG][TaskSimplify] Remove taskframe intrinsics when serializing a detach where the task uses a taskframe.  Clean up logic for serilizing detaches that immediately sync.

commit bdede63111267ffc435ac880385ad6e74cce77ee
Author: TB Schardl <[email protected]>
Date:   Fri Jul 8 14:13:34 2022 +0000

    [BasicAliasAnalysis] Convert #define's to an enum class, to match code style of similar structures in LLVM.

commit 249353b3f8076eb8de84e9330cd61006894c7abb
Author: TB Schardl <[email protected]>
Date:   Fri Jul 8 11:51:48 2022 +0000

    [TableGen] Change additions to CodeGenIntrinsic to match LLVM code style, to avoid merge conflicts down the road.

commit cccd276bcc0cc541141e0cd6d8253e07bdcf8b09
Author: TB Schardl <[email protected]>
Date:   Thu Jul 7 19:29:19 2022 +0000

    [SROA] Make SROA preserve the atomicity of load and store operations when it rewrites load and store operations.

commit 1eb273e8d4c545ce17190463f1287fd0468f94e3
Author: TB Schardl <[email protected]>
Date:   Thu Jul 7 13:55:47 2022 +0000

    [SimpleLoopUnswitch] Fix compiler crash when unswitching a parallel loop with task-exit blocks.

commit 5e76b20e134f03620d6b8040aa8425e3a6abeb68
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 23:48:28 2022 +0000

    [bindings/python] Update diagnostics test.

commit ed514c2530691a5624ef20f4f5b03583e80e69b3
Author: John F. Carr <[email protected]>
Date:   Wed Jul 6 16:12:01 2022 -0400

    Improve compatibility testing of hyperobject types

commit 42a01ebcdcf8a9ac6db44ed9d5dae644f7d9ac42
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 19:33:24 2022 +0000

    Fix a little formatting with clang-format.

commit f2959caf0f419591cbf4b26b3a823df6f02c70f6
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 19:22:13 2022 +0000

    [github] Cleanup path.

commit 7d3ffda22243175e0c7b1a52ca8ba42d6c59b0f9
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 19:21:52 2022 +0000

    [IntrinsicEmitter] Fix handling of new intrinsics, which fixes spurious test failures.  Restore previous tests marked XFAIL.

commit 0489a6fbecf17ad12c007e8197aa1c9de8be1d7f
Author: John F. Carr <[email protected]>
Date:   Wed Jul 6 12:04:08 2022 -0400

    Fix rebuild of hyperobject reference in template expansion

commit 04db56e81f8b7d9684a08a47cf417079bf2ff019
Author: John F. Carr <[email protected]>
Date:   Wed Jul 6 11:18:59 2022 -0400

    Test of reducer += inside a template expansion

commit f738cbe7884ba00f9b1b4e33793a983889c732cd
Author: John F. Carr <[email protected]>
Date:   Wed Jul 6 11:14:38 2022 -0400

    Check that llvm.hyper.lookup is called only once

commit 794bda39b9704f541960a1bc11f367f467e4bf62
Author: John F. Carr <[email protected]>
Date:   Tue Jul 5 14:00:02 2022 -0400

    FreeBSD sanitizer needs -lstdthreads for mtx_init and related functions

commit 021495ff738c68589d08c7e86dddfd10e81ff182
Author: John F. Carr <[email protected]>
Date:   Sun Jul 3 22:13:24 2022 -0400

    Template instantiations with integer, null, or missing arguments can be hyperobjects

commit 26c32b06b1860d4c85cb37cc24366f89930e36e7
Author: John F. Carr <[email protected]>
Date:   Sun Jul 3 13:33:00 2022 -0400

    Try to unregister reducers the correct number of times

commit c3178cc4a30d5b10844ffc642ec101f41c62187d
Author: John F. Carr <[email protected]>
Date:   Fri Jul 1 12:04:29 2022 -0400

    XFAIL test with duplicate unregister call

commit 2bbb3e5fdc7bbd88bc7fa27895f3c9f15825b85b
Author: John F. Carr <[email protected]>
Date:   Wed Jun 29 16:09:34 2022 -0400

    Fix rebuild of hyperobject in using declaration

commit de6d421bb9029fa25e4f2edd0b322556145b7434
Author: John F. Carr <[email protected]>
Date:   Tue Jun 21 13:57:40 2022 -0400

    Clean up reducer callback order

commit 635399a93aac7cbb7e7a7a76cafc790f23f30817
Author: John F. Carr <[email protected]>
Date:   Fri Jun 17 08:04:02 2022 -0400

    Stricter type checking of reducer callback

commit 32b2d8cd83676f12099d61a340477b99660fb64d
Author: John F. Carr <[email protected]>
Date:   Thu Jun 16 16:54:12 2022 -0400

    Handle overloaded function as reducer callback

commit 1ad8fb0ec3f43beaaf9d02788e48dfca2662edf6
Author: John F. Carr <[email protected]>
Date:   Thu Jun 16 11:01:22 2022 -0400

    Add noundef to expected LLVM IR

commit 61bea1ff3305b0121b912ad44ce5e0355404a0cd
Author: John F. Carr <[email protected]>
Date:   Thu Jun 16 09:57:52 2022 -0400

    Syntactic hyperobjects

commit 66e55994cb95312f4a25bb48c582cb8f0df70066
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 15:28:20 2022 +0000

    [OpenCilkABI] Replace a SmallVector with an array.

commit 89d05d95e4ab7533c4b2526968f0150e8e80e19a
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 15:27:43 2022 +0000

    [CilkSanitizer] Remove unused variables.

commit 639dc0f74ca81837f888e146dd329b814ba24d2d
Author: TB Schardl <[email protected]>
Date:   Tue Jul 5 12:30:55 2022 +0000

    [Driver] Remove code to select alternate OpenCilk bitcode ABI file when pedigrees are enabled.

commit ec10d525876570d0ac64c8b0328561864c606a7d
Author: TB Schardl <[email protected]>
Date:   Thu Jun 30 21:18:09 2022 +0000

    [OpenCilkABI] Adjust diagnostic handling for cleaner error messages.

commit 5a9148a66b7bb8c394a841fbed0b866eaa98ab54
Author: TB Schardl <[email protected]>
Date:   Thu Jun 30 21:15:34 2022 +0000

    [CudaABI] Resolve compiler warning temporarily.

commit 8cea22dd0f232c533076029988a18b08017a3611
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 15:30:27 2022 +0000

    [github] Update CPLUS_INCLUDE_PATH workaround to accommodate updates to macOS virtual environment.

commit acef38cfe906cd7f6f01ee96b90ead9fd9a291b2
Author: TB Schardl <[email protected]>
Date:   Mon Jun 27 01:17:39 2022 +0000

    [CSI] Properly emit diagnostic messages raised when linking a tool bitcode file.

commit d0c5eca736f43ebbd51c9b914dddd3c2fa5fbe67
Author: TB Schardl <[email protected]>
Date:   Sun Jun 26 18:39:20 2022 +0000

    [gold-plugin] Add plugin options for Tapir lowering target and OpenCilk ABI bitcode file.

commit d2ae9283a4171d918e7632214a2a6f4b6d08c2ba
Author: TB Schardl <[email protected]>
Date:   Sun Jun 26 18:38:31 2022 +0000

    [InlineFunction] Fix stack overflow when inlining an invoked function that contains taskframe intrinsics that have not been split.

commit 3edbf6c56d15bd382f3f0b8abb05bb42ecfc3cdf
Author: TB Schardl <[email protected]>
Date:   Sun Jun 26 18:34:48 2022 +0000

    [CilkSanitizer] Add logic to synthesize default hooks for library functions that are not present in a linked tool bitcode file.

commit c9b864da8c317240e1d8396d491775e741feabea
Author: TB Schardl <[email protected]>
Date:   Sun Jun 26 18:33:23 2022 +0000

    [CilkSanitizer] Clean up synthesis and handling of MAAP checks.  Enable load-store coalescing when potential racing instruction is local but not in the same loop.  Cleanup code.

commit dcf56d3b579a57a8354c4ea83a1cd1bc2eef125f
Author: TB Schardl <[email protected]>
Date:   Sun Jun 26 18:29:51 2022 +0000

    [CSI][CilkSanitizer] Add property bit for loads and stores that are guaranteed to access thread-local storage.

commit 2c15ea0c37c09a373cdfefea70db475fd8688bb7
Author: TB Schardl <[email protected]>
Date:   Sun Jun 26 18:26:46 2022 +0000

    [TapirRaceDetect] Add method to get mod-ref information for a local race.  Include accesses to thread-local variables for race detection.  Cleanup code.

commit 965c8cc439fbbaa71828e7f3a5d32c402e3743e0
Author: TB Schardl <[email protected]>
Date:   Wed Feb 16 15:51:36 2022 +0000

    [CSI][CilkSanitizer] Draft change to support using a bitcode-ABI file for Cilksan.

commit d2850fcd14b47a54f8c899fea53dfb5ea38388c0
Author: TB Schardl <[email protected]>
Date:   Wed Feb 16 15:46:39 2022 +0000

    [CilkSanitizer] Add logic to aggressively search for debug information to attach to instrumentation hooks.

commit c611385b3cd116c8acbe9c1bb90b987ae0829d2e
Author: TB Schardl <[email protected]>
Date:   Wed Feb 16 15:44:08 2022 +0000

    [CilkSanitizer] Fix type of sync-region-number arguments in hooks to match Cilksan driver ABI.

commit 4cd1695c100c85578f2fd2819be41680dbae35b9
Author: TB Schardl <[email protected]>
Date:   Fri Jun 24 22:22:44 2022 +0000

    [Kaleidoscope/Tapir] Update Tapir Kaleidoscope example for LLVM 14.

commit 3b1b87304aef097a88de3e40af110825bcb4e999
Author: TB Schardl <[email protected]>
Date:   Fri Jun 24 17:57:57 2022 -0400

    [OpenCilkABI] Properly emit diagnostic messages raised when linking a bitcode ABI file.

commit 887184c964b3ff4b1293e51eb0297408aee993c2
Author: TB Schardl <[email protected]>
Date:   Fri Jun 24 14:38:48 2022 -0400

    [lld] Fix lld handling of command-line arguments for Tapir lowering at link time on Darwin.

commit d114aeb38e54f8334a6ca26f5f954ea0bd2b0bde
Author: TB Schardl <[email protected]>
Date:   Fri Jun 24 13:39:43 2022 +0000

    [lld][LTO] Update lld and LTO to pass flags for Tapir lowering at link time.  Based on changes by George Stelle <[email protected]>.

commit 6f01c4f0a5a475ed166c41e8486e97e3ffbfa42c
Author: TB Schardl <[email protected]>
Date:   Fri Jun 24 11:09:46 2022 +0000

    [MemoryBuiltins] Add method to get the arguments to a library allocation function, and use that method to simplify the logic in CilkSanitizer and CSI to instrument allocation functions.

commit 788723fdd51840ca9fb712d0388c848f1e869016
Author: TB Schardl <[email protected]>
Date:   Thu Jun 23 18:02:02 2022 +0000

    [OpenCilkABI] Make the __cilkrts_stack_frame_align variable linkage private, to avoid linking issues when code is compiled with -fopencilk and no optimizations.  Update regression tests with new OpenCilk ABI bitcode file.

commit 49a91d69042012127355821db819d1b8c439fb2c
Author: TB Schardl <[email protected]>
Date:   Thu Jun 23 17:58:06 2022 +0000

    [test/Tapir] Fix test case for rebase onto LLVM 14.

commit f66e80d84bebab348805349c443b4d9bb5f11a80
Author: TB Schardl <[email protected]>
Date:   Thu Mar 24 19:22:06 2022 +0000

    [LoopUnroll] Put custom GraphTraits in llvm namespace, to appease GCC.

commit 59b4c1c88f598a5452cd2455851838c0b5d4d347
Author: TB Schardl <[email protected]>
Date:   Fri Mar 18 13:46:44 2022 +0000

    [LoopUnroll] Clone task-exit blocks similarly to ordinary loop blocks during loop unrolling.

commit 5a0c91c6aabd5f8eafeb0028061a6dbc23f6e552
Author: John F. Carr <[email protected]>
Date:   Fri Mar 11 11:52:24 2022 -0500

    Read __cilkrts_stack_frame alignment from bitcode if available

commit 02012923412b9310c713fa41a55600aaacf94256
Author: TB Schardl <[email protected]>
Date:   Tue Jun 21 12:59:54 2022 +0000

    [IndVarSimplify] Add TapirIndVarSimplify pass, a version of the IndVarSimplify pass that applies only to Tapir loops.  Run TapirIndVarSimplify before loop stripmining to help ensure that Tapir loops can be stripmined after other optimizations, such as loop peeling.  Addresses issue #88.

commit 77c8b63bb7172ccbd7daf53f2f952d4fc2dca3e6
Author: TB Schardl <[email protected]>
Date:   Tue Jun 21 12:53:17 2022 +0000

    [OpenCilkABI] Ensure that debug information is attached to __cilkrts_enter_landingpad calls.

commit 11d18c63618e13e27f3d2f6dcd8abc6301abe9c5
Author: TB Schardl <[email protected]>
Date:   Tue Jun 21 12:51:12 2022 +0000

    [LoopSpawningTI] Set the debug location of a tapir.loop.grainsize intrinsic call to match the loop it applies to.

commit fc811c47384077332dd78f32a98b2cd376634be3
Author: TB Schardl <[email protected]>
Date:   Tue Jun 21 12:49:31 2022 +0000

    [OpenCilkABI] Fix compiler warning about unused variable.

commit cb26ec1ad0e0cd1be88e9e9f99c165ed3493aba0
Author: TB Schardl <[email protected]>
Date:   Sun Jun 19 08:01:04 2022 -0400

    [AArch64RegisterInfo] Fix AArch64 code generation to properly use the base register for stealable functions.

commit cdd5eae928e63d4f2d117288ac6d1fce037edbe6
Author: TB Schardl <[email protected]>
Date:   Mon Jun 13 11:29:55 2022 +0000

    [CGCilk] Fix code generation of unreachable _Cilk_sync statements.  Fixes issue #93.

commit 42bb03c984419251c1d5f991584f962603dbd6a1
Author: TB Schardl <[email protected]>
Date:   Mon Jun 13 11:27:19 2022 +0000

    [Tapir] Remove some uses of getElementType.

commit 6b7df525dafe13bd85ef2dc45e0c20812378041f
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 18:26:20 2022 +0000

    [TailRecursionElimination] When eliminating a tail call that is separated from a return by only a sync, defer reinserting syncs into return blocks until tail calls have all been eliminated.  This change helps TRE remove multiple tail calls that are each separated from a common return by a sync.

commit c76ab34aaeb322bdd10445bec97aad0f0903a6e0
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 18:23:44 2022 +0000

    [TapirUtils] When splitting blocks around taskframe intrinsics, try to ensure that a branch inserted after a taskframe.end intrinsic has debug info.

commit 1abcc7a38ce6c82351c28abb558da0c419ab54d9
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 18:21:56 2022 +0000

    [SimplifyCFG] Simplify a sync when it immediately leads to another sync in the same sync region.  Improve logic for simplifying branches around Tapir instructions.

commit 2684472245e9b1b5ce3713e8c492adcd9857a77f
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 18:18:51 2022 +0000

    [Outline] When outlining a helper function, remove any prologue data cloned from the parent function onto the helper.  Addresses issue #77.

commit fe8ff8f3f79949122d8893a8928a1fde965b4427
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 18:15:35 2022 +0000

    [CSI,CilkSanitizer] Add CSISetup pass to canonicalize the CFG before instrumentation when the canonicalization does not preserve analyses.

commit 7003d3570447576b00d99aad7287c28b2ce4ab1e
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 14:36:15 2022 +0000

    [test/Cilk] Add triple command-line argument to test.

commit 66f1485b58a794d4db9f17fb168f3aa91eb7e9bd
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 14:34:40 2022 +0000

    [cindex.py] Incorporate Cilk changes into Python bindings.

commit 3d8b1e881c1e0d1285f07ddfac99f0898d908b81
Author: TB Schardl <[email protected]>
Date:   Sat Jun 11 21:06:15 2022 +0000

    [github] Fix GitHub workflows for opencilk-project.

commit 004a118d1f18670af1499720318d4d09c5940c5d
Author: TB Schardl <[email protected]>
Date:   Sat Jun 11 20:59:23 2022 +0000

    Bug fixes for rebase onto LLVM 14.0.5

commit 9626886e087a11dcfaffb8998499aabfe2855a12
Author: TB Schardl <[email protected]>
Date:   Sat Jun 4 11:38:10 2022 +0000

    [Local] Fix bug when removing the unwind destination of a detach insrtuction that is used by multiple detach instructions.

commit 323bfeded53653b3f98a03d682ee00126c79192b
Author: TB Schardl <[email protected]>
Date:   Thu Mar 10 01:14:28 2022 +0000

    [llvm/test] Cleanup and fix a couple Tapir regression tests.

commit 3a36939d4a5217c21dae4f567972112900bea426
Author: TB Schardl <[email protected]>
Date:   Mon Mar 7 22:58:48 2022 +0000

    Bug fixes for rebase onto LLVM 13.0.1

commit 269b232fe59a569a8c1fc6294bf30f5752c6fd38
Author: TB Schardl <[email protected]>
Date:   Wed Feb 16 15:29:24 2022 +0000

    [cmake] Propagate path to llvm-link tool when adding external projects.

commit 01aa4fb1628661cb8da8c1b8888be1eec31bd6f0
Author: TB Schardl <[email protected]>
Date:   Wed Feb 16 14:55:52 2022 +0000

    [cmake] Add more dependencies between components.

commit 34504b8abbab440563f728c517900c373fd04b7f
Author: George Stelle <[email protected]>
Date:   Wed Oct 27 09:05:52 2021 -0600

    [cmake] Added IRReader dependency to instrumentation component

commit 20452488ed2428f9f46e8ab6f36776feb23ae955
Author: TB Schardl <[email protected]>
Date:   Sun Jan 9 00:34:33 2022 +0000

    [test/Tapir] Fix output path for GCOV test.

commit 755042ce8700e5051cd7fc03289a718824a54357
Author: TB Schardl <[email protected]>
Date:   Sat Jan 8 21:29:45 2022 +0000

    [GCOVProfiling] Ensure that GCOVProfiling does not try to split critical edges from detach instructions.

commit d961aa51938981ba3f11625b269c3d0f9332adcf
Author: TB Schardl <[email protected]>
Date:   Wed Dec 22 19:57:12 2021 +0000

    [Tapir][TapirUtils] Add logic to maintain debug locations to enable inlining of bitcode ABI functions with debug information.

commit 171342baac4cb817ab415b5c8266b70b3142c314
Author: TB Schardl <[email protected]>
Date:   Sun Nov 21 18:21:01 2021 +0000

    [ParseCilk][CGCilk] Fix compiler crashes on bad _Cilk_for inputs.

    Co-authored-by: John F. Carr <[email protected]>

commit 1b0608b28fa1954d27bab2859e9cf174d9789da8
Author: TB Schardl <[email protected]>
Date:   Thu Oct 28 19:45:18 2021 +0000

    [TapirRaceDetect] Fix crash when checking an indirect call instruction in a block terminated by unreachable.

commit 515ee9978d72e11be8ea4e50e04d8c4165aafd07
Author: TB Schardl <[email protected]>
Date:   Thu Oct 28 19:43:08 2021 +0000

    [MachineSink] Refine handling of EH_SjLj_Setup constructs to fix
    performance regressions.

commit 309ea1ba51d8689e823bbb8107860c89e6986bf3
Author: TB Schardl <[email protected]>
Date:   Sun Oct 24 00:26:03 2021 +0000

    [MachineSink] Ensure that arthimetic that stores results onto the
    stack is not sunk into a setjmp construct, specifically, between the
    longjmp destination and the test.  Addresses issue #78.

commit 77c63f94293aadfb088474ca655b28abe24fd25c
Author: TB Schardl <[email protected]>
Date:   Sun Oct 24 00:17:48 2021 +0000

    [CGCilk] Fix cilk_for-loop code generation when emission of loop
    variable may introduce new basic blocks.  Addresses issue #77.

commit 7bfda87d06194f5bf2a539513cf590b1be8b5b31
Author: TB Schardl <[email protected]>
Date:   Sat Oct 16 20:17:57 2021 +0000

    [InlineFunction] Fix logic to update PHI nodes in an exceptional block
    when inlining tasks at an invoke instruction.  Addresses issue #73.

commit 9ff936ce98ef4121fd43b3458302ae5fe2d0e1c2
Author: TB Schardl <[email protected]>
Date:   Sat Oct 16 19:15:07 2021 +0000

    [CilkSanitizer] Ensure that CilkSanitizer pass properly handles Tapir intrinsics in not within any task, i.e., in unreachable blocks.

commit cbd90428774adc9b3753993c3002cd8c84973a85
Author: TB Schardl <[email protected]>
Date:   Sat Oct 16 19:11:43 2021 +0000

    [DependenceAnalysis] Fix crash in dependence analysis when analyzing
    memory references in different loop nests.

commit f3aae1752175752975be1b23fe6bde48dec8345d
Author: TB Schardl <[email protected]>
Date:   Sun Sep 26 19:54:51 2021 +0000

    [SemaExpr] Fix Sema test to disallow _Cilk_spawn on the right-hand side of a compound assignment.

commit e2908075ed24effe71403153d07fa1122bc77342
Author: TB Schardl <[email protected]>
Date:   Fri Sep 24 02:25:42 2021 +0000

    [TapirRaceDetect] Add logic to handle pointers that cannot be stripped when checking whether a pointer is captured.

commit 8154ee135b6cd516068448761bd51d4ff167ee82
Author: Alexandros-Stavros Iliopoulos <[email protected]>
Date:   Tue Sep 7 20:13:03 2021 +0000

    Create issue template for bug reports

commit 463b18d8708ea71b85cebc0b5fe165527cc71fcd
Author: William M. Leiserson <[email protected]>
Date:   Mon Jun 28 20:41:33 2021 -0400

    [Tapir] Minor modifications to the OCaml bindings; Add OCaml bindings to the regression test suite.

commit 42e23a547836772d239b0c7c15a6005810fa6047
Author: William M. Leiserson <[email protected]>
Date:   Fri Jun 25 15:04:48 2021 -0400

    [Tapir] Update OCaml bindings.

commit 84ac2833abfb2037cc0d74e9a6934a233abf26e3
Author: TB Schardl <[email protected]>
Date:   Thu Sep 16 03:16:17 2021 +0000

    [CilkSanitizer][Kaleidoscope] Start deprecating the JitMode option, as it no longer seems necessary with recent changes to LLVM's JIT infrastructure.  Clean up Tapir Kaleidoscope code.

commit fc132e62d5297bd580febe0be5f8ebd9484e19aa
Author: TB Schardl <[email protected]>
Date:   Sun Sep 12 19:15:25 2021 +0000

    [OpenCilkABI] Mark all functions internalized from an external bitcode file as available_externally, regardless of whether OpenCilkABI uses that function.

commit 0bc52e4863eeaa9f8824cbf494c9fb28cbc6885f
Author: TB Schardl <[email protected]>
Date:   Sun Sep 12 19:13:00 2021 +0000

    [OpenCilkABI] Remove argmemonly attribute on spawning functions to ensure that changes to the stackframe flags are properly observed when a spawning function calls another spawning function.

commit 23b6de4ef8f5830059e43c47aa9fdea198c7a57e
Author: TB Schardl <[email protected]>
Date:   Sun Sep 12 19:06:45 2021 +0000

    [PassBuilder][PassManagerBuilder] Run LICM before loop spawning to ensure loop-invariant conditions appear outside of the loop.  Addresses #66.

commit 74b69d346fd5b539e049afc7862f257b8d61ee4c
Author: TB Schardl <[email protected]>
Date:   Sun Sep 12 19:04:04 2021 +0000

    [TapirLoopInfo] Fix handling of Tapir loops with loop-variant conditions.  Fixes #66.

commit a26d892c951182fae0231875cbe21b0e6bd4805b
Author: TB Schardl <[email protected]>
Date:   Mon Sep 6 22:10:28 2021 +0000

    [CilkSanitizer][CSI] Avoid inserting hooks or PHI nodes in placeholder
    destinations of task exits.

    This commit addresses #62.

commit 8b7e52844ccedfc28c9ca8f701762c7cf51151bf
Author: TB Schardl <[email protected]>
Date:   Fri Sep 3 02:13:19 2021 +0000

    [OpenCilkABI] Remove redundant code from OpenCilkABI, and add documentation about attributes and linkage for the CilkRTS ABI functions.

commit 5f5b3c197d41cbcf867f93b3eecf483a2d206c4d
Author: TB Schardl <[email protected]>
Date:   Tue Aug 31 15:31:20 2021 -0400

    [TapirTaskInfo] Remove false assertion that the continuation spindle of a detach must not be the same as the spindle containing the detach itself.

commit 0f1afa2b0cb90bc258542cf648e60020376d2109
Author: TB Schardl <[email protected]>
Date:   Mon Aug 30 23:57:17 2021 -0400

    [Darwin] Automatically use ASan-enabled version of OpenCilk runtime system on Darwin when the Cilk program is compiled with ASan.

commit eeef2443122ae71e57f22a5944ee28ddbbad34b8
Author: TB Schardl <[email protected]>
Date:   Tue Aug 31 02:20:17 2021 +0000

    [Driver] Automatically use ASan-enabled version of OpenCilk runtime system when the Cilk program is compiled with ASan.

commit aaff3f5db5c5136bbea164bcd3b1000a3f2d98b7
Author: TB Schardl <[email protected]>
Date:   Thu Aug 26 12:42:12 2021 +0000

    [Kaleidoscope][CSI] Fix Tapir Kaleidoscope code to link against the
    OpenCilk and Cilksan runtime libraries and run initializers for
    Cilksan.

    - Revert changes to general KaleidoscopeJIT code, and add custom
      KaleidoscopeJIT to Tapir Kaleidoscope example, which supports
      loading external libraries and running initializers.

    - Fix CSI jitMode operation to emit llvm.global_ctors entry even when
      used in a JIT.  This CSI change complements recent changes to how
      Orc handles initializers.

commit 0870a416b689118bc077793433375c158e017a5d
Author: TB Schardl <[email protected]>
Date:   Tue Aug 24 03:48:57 2021 +0000

    [Kaleidoscope] Fix up the Tapir Kaleidoscope example code to use the OpenCilk Tapir target.  Some additional work is needed to fix running parallel code using the OpenCilk runtime or Cilksan.

commit 3cdb414d46ecfabb2f2932f0519cd988e2e79327
Author: TB Schardl <[email protected]>
Date:   Tue Aug 24 03:16:57 2021 +0000

    [CMake] Add Vectorize as a link component of TapirOpts LLVM component library.

commit ce08dc233d5385e685fb5d2470a9d5d373adc63e
Author: TB Schardl <[email protected]>
Date:   Tue Aug 24 03:15:32 2021 +0000

    [LoopStripMinePass] Ensure that loop-stripmining inserts nested syncs when targetting OpenCilk.

commit 61501bb8f941d4de750691f26865a6c6f085452d
Author: TB Schardl <[email protected]>
Date:   Tue Aug 24 02:59:38 2021 +0000

    [Driver][CodeGen] Pass OpenCilk runtime-ABI bitcode file to the OpenCilkABI Tapir target as a Tapir-target option.

commit a74202e24967355cbc8f6940ab359453d65633ee
Author: TB Schardl <[email protected]>
Date:   Tue Aug 24 02:46:42 2021 +0000

    [OpenCilkABI] Get OpenCilk runtime-ABI bitcode file from OpenCilk Tapir-target option.

commit b8bcb0430276c826aba92af464d318136338e5ca
Author: TB Schardl <[email protected]>
Date:   Tue Aug 24 02:44:17 2021 +0000

    [TapirTargetIDs] Add facility to pass options to specific Tapir targets using TLI.  Add OpenCilkABI Tapir-target option.

commit fabb24be55bf96e6aeec5bbef3f7861f5ecc29b9
Author: TB Schardl <[email protected]>
Date:   Thu Aug 19 14:23:01 2021 +0000

    [Tapir] Don't propagate the noreturn attribute to outlined helper functions when the parent is marked noreturn.  Similarly, when using DAC loop spawning, don't propagate norecurse to the outlined helper function.

commit 6e0197429783874fe5a934f766ff8f5c58b52da2
Author: TB Schardl <[email protected]>
Date:   Mon Aug 9 15:54:59 2021 +0000

    [Cilk] Fix the scope definition on _Cilk_scope's, and add basic jump diagnostics to disallow jumping into the middle of a _Cilk_scope.  Add a couple simple regression tests for _Cilk_scope's.

commit d1632c7a735f24046020633e0b2f001829628481
Author: TB Schardl <[email protected]>
Date:   Sun Aug 8 22:24:25 2021 -0400

    [GVN] Prevent GVN from splitting critical detach-continue edges.

commit afef9ca56015cd17a667ff1e0e98c8b43bc2a5e4
Author: TB Schardl <[email protected]>
Date:   Sun Aug 8 22:21:53 2021 -0400

    [LoopStripMine] Fix test to not require the same loop-cost analysis on all systems.

commit 96a4f28c0ef76f6e344c8b35b2e54d74e6e39821
Author: TB Schardl <[email protected]>
Date:   Sat Aug 7 12:02:05 2021 +0000

    [OpenCilkABI] Add handling of tapir.runtime.{start,end} intrinsic calls to guide insertion of __cilkrts_enter_frame and __cilkrts_leave_frame ABI calls.

commit ec11e602a464d9032015322e8b924a2161825b93
Author: TB Schardl <[email protected]>
Date:   Sat Aug 7 11:56:17 2021 +0000

    [OpenCilkABI] Update target to reflect new runtime ABI.  Update error
    handling when the OpenCilkABI target fails to load the runtime ABI
    bitcode file (and -debug-abi-calls is not specified).

commit 3cc10b1efcd02db417bf1d01201c853bcefbe3f5
Author: TB Schardl <[email protected]>
Date:   Fri Aug 6 15:01:45 2021 +0000

    [TapirToTarget] Allow Tapir targets to maintain mappings keyed on taskframe-entry blocks in the original function.  Add a separate processing routine to handle functions that do not spawn and are not spawned.

commit c5b4e5161f69ad8b2be65319e2ad7fbed0309a11
Author: TB Schardl <[email protected]>
Date:   Fri Aug 6 14:46:22 2021 +0000

    [LoopStripMine] Fix handling of shared EH blocks so that, if the new parallel loop after stripmining is spawned, then shared EH blocks do not end up shared between the spawned loop and the parent task.  This commit addresses issue #58.

commit 7e879619c1e50f411cabf5b3253c39e99e6586e6
Author: TB Schardl <[email protected]>
Date:   Fri Aug 6 14:34:53 2021 +0000

    [TapirUtils] Allow passes to clone exception-handling blocks of a
    task.  Allow SerializeDetach and cloneEHBlocks to update LoopInfo.
    Fix dominator-tree updating logic in SerializeDetach and
    cloneEHBlocks.f

commit 79eca2d7caaed0148fa2598ed4839265ab0862ad
Author: TB Schardl <[email protected]>
Date:   Fri Aug 6 13:51:48 2021 +0000

    [TapirTaskInfo] Fix identification of unassociated-taskframe spindles when taskframe.create and taskframe.end are in the same basic block.

commit 771f986363ca1e72be699720f2520cf516c2ef88
Author: TB Schardl <[email protected]>
Date:   Mon Aug 2 21:01:39 2021 +0000

    [CGCilk][Intrinsics] Associate tapir.runtime.end intrinsics with tapir.runtime.start intrinsics using tokens.  Update _Cilk_scope code generation accordingly.  Avoid inserting tapir.runtime.{start,end} intrinsics unnecessarily in spawning functions.

commit 702c4169fbbbe9dfb2e77550d9994f9ac0ec53be
Author: TB Schardl <[email protected]>
Date:   Thu Jul 29 13:42:10 2021 +0000

    [CodeGenFunction][CGCilk] Optimize emission of tapir_runtime_{start,end} intrinsics when nested _Cilk_scopes are used within a function.

commit feed355d73e532cdfb0615f223bb15a6c98f6b8a
Author: TB Schardl <[email protected]>
Date:   Thu Jul 29 13:36:12 2021 +0000

    [TapirToTarget][LoweringUtils] Add generic handling of tapir_runtime_{start,end} intrinsics to Tapir targets.

commit 007f01951350f123d20593510b076e1ec2d059c4
Author: TB Schardl <[email protected]>
Date:   Sat Jul 24 16:15:06 2021 +0000

    [clang/Cilk][Intrinsics] Add _Cilk_scope construct, a lexical scope
    that guarantees upon exit to _Cilk_sync any tasks spawned within the
    scope.  Add intrinsics to allow the _Cilk_scope construct to mark
    where a Tapir-target runtime may be started and stopped at the
    beginning and end of the scope, respectively.

    These intrinsics are meant only to be hints to a Tapir-target runtime,
    not definitive markers for where the runtime must be started or
    stopped.  This requirement is necessary to make it safe to nest
    _Cilk_scopes, either within the same function or indirectly
    via function calls.

    No particular compiler optimizations are included for these
    intrinsics, although some optimizations may be useful to add in the
    future.

commit e48b168f12dbb2f8d11d47282b63b24a42ac9cbf
Author: TB Schardl <[email protected]>
Date:   Sat Jul 24 16:01:26 2021 +0000

    [CilkSanitizer][CSI] Extend Cilksan ABI and instrumentation to support race-detecting some Cilk programs that throw exceptions.

commit f795e7fb47e17eb99dd569d6c64826cc5086afdc
Author: TB Schardl <[email protected]>
Date:   Thu Jul 22 22:58:25 2021 +0000

    [CodeGen][Sema] Cleanup Cilk-related code, primarily around code-generation for implicit syncs.

commit 84c3ff60e5c6c81f9f6fb26da5659238d55b8f4b
Author: TB Schardl <[email protected]>
Date:   Thu Jul 22 21:25:31 2021 +0000

    [StmtCilk] Cleanup implementation of CilkSpawnStmt.

commit 671a5eaf1f53881640c560335e06ff0b9b8c6395
Author: TB Schardl <[email protected]>
Date:   Thu Jun 3 14:41:35 2021 -0400

    [TapirLoopInfo] When searching for a primary induction variable for a Tapir loop, select the widest induction-variable type only among the possible primary induction variables, i.e., integer IVs that start at 0 and have step value 1.  This change allows LoopSpawning to handle Tapir loops with multiple IVs where the primary IV is not necessarily the integer IV with the widest type.

commit 0be4014fed4d285f8e257eb675ef2d0c2a939070
Author: TB Schardl <[email protected]>
Date:   Thu Jun 3 14:38:08 2021 -0400

    [test/Tapir] Mark regression tests requiring an x86_64 target.

commit fbc80f0d6f86bb924d39073ad04d9584ecbb03dc
Author: TB Schardl <[email protected]>
Date:   Thu Jun 3 08:07:28 2021 -0400

    [compiler-rt/cmake] Create custom target for outline atomic helpers, and use this custom target for targets that use these helpers.  This additional target resolves a race that arises with the Makefile generator in creating outline atomic helpers for multiple builtin libraries in parallel.

commit 5fd97de28c1d4b440bd6eb1efaf4bbbeb4289d68
Author: TB Schardl <[email protected]>
Date:   Tue Jun 1 10:06:42 2021 -0400

    [Darwin] Update logic to link OpenCilk runtime on MacOS to handle changes to OpenCilk runtime build system.

commit e5dd814d97647f56d7a454e446b79ab431883940
Author: TB Schardl <[email protected]>
Date:   Fri May 28 18:18:12 2021 +0000

    [ToolChain] Update logic to link OpenCilk runtime to handle changes to OpenCilk runtime build system.  Specifically, add logic to handle the case where the runtime library is compiled with the target architecture added to the library filename.

commit fd07ddd86cc63e12dc986be768751d1791aff546
Author: TB Schardl <[email protected]>
Date:   Thu May 27 14:29:11 2021 +0000

    [CodeGen][Instrumentation] Resolve some compilation warnings when building with newer compilers.

commit f418e5a3b1ddda2f9883aee89eead46cac58f408
Author: TB Schardl <[email protected]>
Date:   Fri Apr 30 12:01:52 2021 +0000

    [CSI] Adjust code for adding CSI's constructor to llvm.global_ctors, in order to help bugpoint work on compiler crashes involving CSI and related instrumentation passes.

commit de41edb32cc49a8ec5707d42054333c449420e41
Author: TB Schardl <[email protected]>
Date:   Fri Apr 30 11:43:24 2021 +0000

    [InstCombine] Optimize tests for removing Tapir intrinsics.

commit 79043b03bb7a0c573f8c1048a1bfce6ba1096d13
Author: TB Schardl <[email protected]>
Date:   Thu Apr 29 17:03:20 2021 +0000

    [Outline] Fix processing of debug metadata during Tapir outlining that causes metadata in llvm.dbg intrinsics to be incorrectly mapped.

commit 2025e34e4f69ca2b6caae36e11af2da73b7d27ec
Author: TB Schardl <[email protected]>
Date:   Thu Apr 29 17:01:08 2021 +0000

    [CilkSanitizer][CSI] Fix handling of null pointers, intrinsics, and function-pointer arguments.

commit 3042493f962a4d3e85a5e26edd0e86b0b7534df7
Author: TB Schardl <[email protected]>
Date:   Thu Apr 29 14:01:28 2021 +0000

    [CilkSanitizer][CSI] Modify splitting of simple unreachable-block predecessors to preserve CFG invariants around detached.rethrow instructions.

commit 4373949d008613febfd00d93ffeb8514d835065d
Author: TB Schardl <[email protected]>
Date:   Mon Apr 26 18:26:14 2021 +0000

    [LoweringUtils] Handle PHIs in the unwind destination of a detach when outlining Tapir tasks.

commit 66bb692a74308dae0b305e1159ee0e8c7b0d4dee
Author: TB Schardl <[email protected]>
Date:   Mon Apr 26 14:56:25 2021 +0000

    [LoopStripMine] Fix maintenance of PHI nodes in the unwind destination of a Tapir loop during stripmining.

commit af7ec77c5fa74ed2b851bc407ac38a1527b2304d
Author: TB Schardl <[email protected]>
Date:   Mon Apr 26 12:31:34 2021 +0000

    Bug fixes for rebase onto LLVM 12.0.0

commit a6a7624642aa524ffebf45a64d56278dbddf503f
Author: TB Schardl <[email protected]>
Date:   Mon Apr 5 13:07:08 2021 +0000

    [LoopUtils] Fix typo in stripmine.enable attribute name.

commit fe52c8f8fecbe1cd0f2e236a4c1c87638df667a9
Author: TB Schardl <[email protected]>
Date:   Mon Apr 5 13:05:54 2021 +0000

    [InlineFunction] Update PHI nodes properly when function inlining introduces a taskframe.resume or detached.rethrow.

commit f6793e3030e954f8c6c0a5a7e9a87bce1d4373a3
Author: TB Schardl <[email protected]>
Date:   Mon Apr 5 13:04:01 2021 +0000

    [LoweringUtils] Update PHI nodes in continuation blocks of outlined task frames.

commit 42e1e5f340a61dbd096036ad819f67f9ac64bfa1
Author: TB Schardl <[email protected]>
Date:   Mon Apr 5 13:01:59 2021 +0000

    [TapirToTarget] Ensure that Tapir lowering never attempts to process a function with no body.

commit 18ee06baede9a40f3c7e3d6592aed925b42bb559
Author: TB Schardl <[email protected]>
Date:   Sun Mar 28 17:50:37 2021 +0000

    [OpenCilkABI] Adjust how runtime-ABI functions are marked to ensure they never end up defined in the final object file.

commit e184a4cfda51c905b14f543747954c50b090809e
Author: TB Schardl <[email protected]>
Date:   Sun Mar 28 17:15:12 2021 +0000

    [CilkSanitizer] Fix computation of MAAPs and function race info to ensure races are properly checked and reported.

commit f5fd041fa362ddbb6eca5d2c7e30783465226958
Author: TB Schardl <[email protected]>
Date:   Mon Mar 22 13:38:52 2021 +0000

    [Driver] Add -shared-libcilktool and -static-libcilktool flags to control whether a Cilktool's runtime library is linked statically or dynamically.

commit a0e840c07e13d0eadc4fa7e5a7cc8c70b5d407c7
Author: TB Schardl <[email protected]>
Date:   Mon Mar 22 03:30:09 2021 +0000

    [CommonArgs] Prevent Cilksan from being linked twice when dynamically linked.

commit 82a1f870afce0225f0e657f3d898e7140907645d
Author: TB Schardl <[email protected]>
Date:   Fri Mar 19 13:01:00 2021 +0000

    [MemorySSA] Change MemorySSA to depend on TaskInfo, and update relevant LLVM passes to ensure the legacy pass manager supports this dependency.

commit a40d6019e1f0fa40aa166fc99cb1ee5aab77e783
Author: TB Schardl <[email protected]>
Date:   Fri Mar 19 12:57:17 2021 +0000

    [RegisterCoalescer] Enable limited register-coalescing in functions that exoose returns-twice only via LLVM's setjmp intrinsic.

commit 66a5bf8c2c9bcdcad85e8d3cabf78d19901cd5b9
Author: TB Schardl <[email protected]>
Date:   Fri Mar 19 12:55:30 2021 +0000

    [CodeGen] Add a MachineFunction property to identify when a function exposes returns-twice via a function other than LLVM's setjmp intrinsic.

commit 609365a91dbc582bed89f5cf64a189d1a87b3c21
Author: TB Schardl <[email protected]>
Date:   Fri Mar 19 12:50:11 2021 +0000

    [MachineSink] Remove workaround for machine-sink optimization in the presence of setjmps, which no longer seems necessary as of LLVM 10.

commit 9148d3000e52a414a01096820e1c0745ffa59410
Author: TB Schardl <[email protected]>
Date:   Fri Mar 19 12:45:29 2021 +0000

    [SimplifyCFGPass] When removing useless syncs, don't use the placement syncregion.start intrinsics to direct the CFG traversal.

commit c3141b3974d7e485168b5e1b6fe9fd11f8ceb219
Author: TB Schardl <[email protected]>
Date:   Fri Mar 19 12:42:23 2021 +0000

    [JumpThreading] Fix jump-threading to accommodate Tapir instructions when threading through two blocks.

commit b422181ad7e731fb663b98f835dd47c7727f129d
Author: TB Schardl <[email protected]>
Date:   Tue Mar 9 19:24:24 2021 +0000

    Bug fixes for rebase onto LLVM 11.1.0

commit 600300bc4c1c17ba04d2e3dd7da202b37e826c48
Author: TB Schardl <[email protected]>
Date:   Thu Mar 4 21:08:55 2021 +0000

    [CodeGenFunction] Fix emission of implicit syncs before returns for return statements processed early in a function.

commit be59935040732156080f28d54d040bcb79…
AlexisPerry pushed a commit to AlexisPerry/kitsune-1 that referenced this issue Jul 23, 2024
…ollowed

by a purge of a fair bit of the OpenCilk-specific parts of the frontend. The
middle and backends (i.e. the Tapir code) is mostly retained.

All credit for OpenCilk contributions go to the individuals listed in the commit messages below.

commit 9e7b5b83a06d24f18d53bce2ae84ad23e8629566
Author: TB Schardl <[email protected]>
Date:   Fri Nov 24 14:35:53 2023 +0000

    [test/Examples] Fix Tapir-Kaleidoscope test to check Tapir-IR code generation and execution as serial code.

commit edf18d2cb3ccae6b82e8fc2bb724b6b4e210135f
Author: TB Schardl <[email protected]>
Date:   Fri Nov 24 13:58:07 2023 +0000

    [examples] Add command-line options to control IR printing in Tapir-Kaleidoscope example.

commit 371c986883d3759cd48edb1570238d3e39d02b03
Author: TB Schardl <[email protected]>
Date:   Fri Nov 24 13:57:08 2023 +0000

    [examples] Fix Tapir Kaleidoscope example to use new pass manager and updated OrcJIT interface.

commit e551f77d3ee462c4c0ac35155d69ffa7c892ef91
Author: TB Schardl <[email protected]>
Date:   Fri Nov 24 13:52:08 2023 +0000

    Code cleanup and formatting.

commit 6ef312d8799d05324d956a819c2e078505d00ee4
Author: TB Schardl <[email protected]>
Date:   Sun Nov 12 20:10:57 2023 +0000

    Fix bugs for rebase onto LLVM 17.0.4

commit 1f6d36945cbb4529b7a83e5eb557f02f7e9c4dfc
Author: TB Schardl <[email protected]>
Date:   Sun Oct 22 19:12:01 2023 +0000

    [SimpleLoopUnswitch] Fix nontrivial loop-unswitching to work with Tapir, and restore relevant regression tests.

commit e5aca09467aa9f5174bbaeba85aa667c5f055006
Author: TB Schardl <[email protected]>
Date:   Sat Oct 21 00:31:59 2023 +0000

    [AArch64] Modify read of threadpointer to be marked that it may load memory, rather than having unmodeled side effects.

commit 052ab4e90209797c6da67f78f71255a79e71f3c8
Author: TB Schardl <[email protected]>
Date:   Mon Oct 9 10:26:09 2023 +0000

    [AArch64] Mark the read of the threadpointer has having unmodeled side effects to prevent misoptimization in programs where the executing thread may change across a function call.

    In principle, this change could be made more precise to enable some
    optimizations of this operation, including removal of redundant reads
    when there is no intervening function call.  But it is not clear what
    attributes currently exist that could be attached to this operation to
    model its behavior more precisely.

commit 8754ae43760485e9a168254f322816760871396d
Author: TB Schardl <[email protected]>
Date:   Mon Oct 9 10:25:43 2023 +0000

    [test/Tapir] Fix requirement for test that needs X86 target.

commit 6e75058f3cc757eb7ef959dcd3d1361d20595338
Author: TB Schardl <[email protected]>
Date:   Fri Oct 20 00:15:22 2023 +0000

    [InstCombine] Fix removal of adjacent tapir.runtime.start and tapir.runtime.end calls.

commit b7220ab142f3e839b1dafc142b2213d561c05470
Author: TB Schardl <[email protected]>
Date:   Wed Oct 18 14:15:46 2023 +0000

    [AddressSanitizer] Analyze parallel-promotable allocas before ASan's instrumentation might invalidate task analysis.

commit 95f8a8edb37b999745b0bb8772149c744a68eddc
Author: TB Schardl <[email protected]>
Date:   Sat Oct 14 11:48:49 2023 +0000

    [JumpThreading] Fix jump threading to remove pointers to deleted basic blocks that contain Tapir instructions.

commit aeeb5b1b1a582ec850bf960cbb349f5d021332eb
Author: TB Schardl <[email protected]>
Date:   Fri Oct 13 23:27:59 2023 +0000

    [DRFScopedNoAliasAA] Fix a compiler warning.

commit 76c49de053a605163c212d5f59ccccc6600608e4
Author: TB Schardl <[email protected]>
Date:   Fri Oct 13 23:25:14 2023 +0000

    [Tapir,Cilk] Fix a memory error and some memory leaks.

commit a6641c8c2561e98f356435e936711584c81fbfeb
Author: John F. Carr <[email protected]>
Date:   Tue Oct 10 15:02:02 2023 -0400

    Set memory(none) instead of readonly on strand_pure function definition

commit 317b6d5ca7bcc44dd91771a65cd793b7f12b6408
Author: TB Schardl <[email protected]>
Date:   Sat Oct 7 15:05:58 2023 +0000

    [Attributes] Make sure that inlining propagates the stealable attribute on a function to callers.

commit ec78c76b0a01faf207a28c66d1fff4ba9411500a
Author: TB Schardl <[email protected]>
Date:   Sat Sep 30 03:08:44 2023 +0000

    [InlineFunction] Fix inlining of detaches with no unwinds into taskframes with unwind destinations.

commit 4ebb3d94a206fd1222febaa618bf213f17cf84c1
Author: TB Schardl <[email protected]>
Date:   Mon Sep 25 01:09:17 2023 +0000

    [LoweringUtils] Ensure that calls to outline helper functions have proper debug information.

commit 2686e68573527096ce8bb146777a2c7dd0cce785
Author: TB Schardl <[email protected]>
Date:   Mon Sep 25 01:07:47 2023 +0000

    [CilkSanitizer,CSI] Skip allocas in entry blocks when finding the initial place to insert instrumentation.  This change ensures that allocas in spawning functions are on the original stack, allowing ASan to properly instrument those allocas without being disrupted by stack switching.  Fixes issue OpenCilk/opencilk-project#197.

commit 51ffb8acf34131b32f5b80e5ceb1011d9cd1a935
Author: TB Schardl <[email protected]>
Date:   Mon Sep 25 00:56:19 2023 +0000

    [CSI] Assign numbers to local sync regions and pass those numbers to Tapir CSI hooks, instead of a separate stack allocation.

commit 0019cd04c112b31fbd6066ff0c85f572ba39e1c3
Author: TB Schardl <[email protected]>
Date:   Mon Sep 25 00:46:05 2023 +0000

    [SelectionDAGBuilder] Provide default serial lowering for task.frameaddress intrinsic.  Fixes issue OpenCilk/opencilk-project#198.

commit 17993c6aa8022d2f71d93044e7d0ac33d9a9f72f
Author: TB Schardl <[email protected]>
Date:   Mon Sep 25 00:21:46 2023 +0000

    [SemaCilk] Throw error when a _Cilk_spawn spawns a return statement.

    Fixes issue OpenCilk/opencilk-project#194.

commit 2525529acb32d203fbff77b60c8f30e490ff79ba
Author: Tao B. Schardl <[email protected]>
Date:   Sun Sep 17 09:20:04 2023 -0400

    Update README.md

    Fix typos and add some extra notes.

commit 0d946a072db5bea6a7bbb3a74d8ed36d21b78f8e
Author: Tao B. Schardl <[email protected]>
Date:   Sat Sep 16 14:13:50 2023 -0400

    Simplify headers in README.md

commit 59cdaa58f19432befdad8806db5f6bf5809d2c97
Author: Tao B. Schardl <[email protected]>
Date:   Sat Sep 16 14:10:42 2023 -0400

    Fix headers in README.md

commit a488d8bf61588a8798888309bf85dfdb96e2b30f
Author: Tao B. Schardl <[email protected]>
Date:   Sat Sep 16 14:08:53 2023 -0400

    Create README.md

    Add README that briefly overviews OpenCilk and how to use it.

commit 5523fa6746cb7b67c112b52b89618602e1d9358c
Author: TB Schardl <[email protected]>
Date:   Fri Sep 15 12:33:50 2023 +0000

    [README] Rename LLVM README file.

commit dfdf56660eb70df5f2cd3c55717f7ed00f59461c
Author: John F. Carr <[email protected]>
Date:   Wed Sep 6 12:14:08 2023 -0400

    Remove unused HyperToken attribute

commit 5dcd8bcef85c451791da5f6b2717665a4d15c674
Author: TB Schardl <[email protected]>
Date:   Fri Sep 1 20:21:27 2023 -0400

    [test/Cilk] Fix tests to accommodate different constructor ABIs.

commit a2a5e20b00da185d01f9caf510006efdadef560b
Author: TB Schardl <[email protected]>
Date:   Fri Sep 1 08:01:16 2023 -0400

    [CilkSanitizer,CSI] Fix CFG setup to properly update the dominator tree and handle free functions.

commit 13b7ac764d75e34b4b5c04ae093f274413334aca
Author: John F. Carr <[email protected]>
Date:   Thu Aug 31 14:33:25 2023 -0400

    Use BuildBuiltinCallExpr for hyper_lookup too

commit a78944f376cb512cd3d7069ed16454e019bc972f
Author: John F. Carr <[email protected]>
Date:   Wed Aug 30 16:42:08 2023 -0400

    Use BuildBuiltinCallExpr to generate call to __builtin_addressof

commit 5cac64f4f56f42e90e5eda94d494b14d833f99c5
Author: John F. Carr <[email protected]>
Date:   Thu Aug 24 10:13:21 2023 -0400

    Look through _Hyperobject in delete

commit 8a409dfc1fc889ee3e4020208899dce3b2bc7c9b
Author: TB Schardl <[email protected]>
Date:   Sun Aug 20 13:53:50 2023 +0000

    [github] Update workflows to run more tests, to run tests on pull requests, and to run tests on dev/ and ci/ branches.

commit d8724a170163b266cd887f123efad6cb8f768e21
Author: TB Schardl <[email protected]>
Date:   Sun Aug 20 13:42:13 2023 +0000

    [CilkSanitizer,CSI] Instrument allocation and free functions as such even when the program is compiled with -fno-builtin.

commit d96e33c920295ac1aa7abc929ecc64a4f145d4c7
Author: TB Schardl <[email protected]>
Date:   Wed Aug 9 09:45:00 2023 +0000

    [Intrinsics] Fix memory attributes of llvm.threadlocal.address intrinsic to prevent misoptimization of intrinsic in Cilk code.

commit f2ebdcc6ab2c2600848c7743216d3250657864c1
Author: TB Schardl <[email protected]>
Date:   Thu Aug 3 11:10:50 2023 +0000

    [JumpThreading] Do not thread a detach-continue edge if the corresponding reattach-continue edge is not also threaded.

commit 93fb23676c5a5ece416b1c4c1485ea6c3303bc24
Author: TB Schardl <[email protected]>
Date:   Wed Jul 26 11:57:41 2023 +0000

    [clang] Convert more instances of Optional to std::optional.

commit 5e6c4f2974822d28abb52e851d86b318657e8a20
Author: TB Schardl <[email protected]>
Date:   Sun Jul 23 22:30:06 2023 +0000

    [test/Tapir] Remove tests using old pass manager.

commit c8e60b12aa8c07a97a4ca57fab76e0bfde227317
Author: John F. Carr <[email protected]>
Date:   Fri Jul 21 18:57:22 2023 -0400

    Compute memory effects of outlined function

commit 008a2e069ddb68c9843727d1f9d911eea2ca3dcd
Author: John F. Carr <[email protected]>
Date:   Thu Jul 20 20:32:17 2023 -0400

    Use new memory effects interface for outlined function

commit c3c430f335c47a7e142f0abac315a3a68d240c12
Author: TB Schardl <[email protected]>
Date:   Fri Jul 14 14:25:59 2023 +0000

    [LoopInfo] Fix bug in which getting task exits of a loop would exclude nested tasks.  Fix issue OpenCilk/opencilk-project#177.

commit e210d0c730d19dfac0cecb283e743f248e2d4904
Author: John F. Carr <[email protected]>
Date:   Mon Jun 5 13:47:24 2023 -0400

    Call overloaded unary operator on hyperobject

commit 2c24a1354caa121ed28daa9c5f7149063761afa5
Author: John F. Carr <[email protected]>
Date:   Mon Jun 5 15:34:56 2023 -0400

    Allow hyperobject view lookup in overload resolution

commit 2c8940f87fb5056b7f63630b49633dde363a6e1c
Author: TB Schardl <[email protected]>
Date:   Sat Jun 24 20:19:12 2023 +0000

    [Tapir] Use internal linkage for generated helper functions, to ensure that they have symbols that tools can use.  Fix issue OpenCilk/opencilk-project#172.

commit 0f00524cbaf358995ecd61ce55b98939edc61cb1
Author: TB Schardl <[email protected]>
Date:   Tue Jul 4 18:42:05 2023 +0000

    [cmake] Remove unused logic for passing llvm-link path to external projects.

commit 5dc8895b0f6da272e7c7f801bb7a2cd33675f980
Author: TB Schardl <[email protected]>
Date:   Tue Jul 4 18:41:07 2023 +0000

    [llvm-reduce] Ensure that Tapir instructions are replced properly when removing basic blocks.

commit 10c6f3d2e768151744ea60526e1eb9158672ad06
Author: TB Schardl <[email protected]>
Date:   Tue Jul 4 17:43:49 2023 +0000

    [SROA] Maintain Tapir task info as SROA modifies the CFG.  TODO: Add functionality to incrementally update Tapir task info analysis.

commit 18b3fbe2e3aebb270dd9b7466a789b557b340d36
Author: TB Schardl <[email protected]>
Date:   Mon Jul 3 16:30:07 2023 -0400

    Fix bugs for rebase onto LLVM 16.0.6

commit ee2dba003c86a78ac8870b5d67889e6df5e97303
Author: TB Schardl <[email protected]>
Date:   Sun Jun 4 13:18:11 2023 +0000

    [PassBuilder] Create separate TapirLoopLowerPipeline for lowering Tapir loops, and add options to run Tapir lowering pipelines via opt.

commit 750fd88a40d90d4a9aed3dd5e58052adde9f3019
Author: TB Schardl <[email protected]>
Date:   Mon May 29 14:12:32 2023 +0000

    [github] Reenable tests on GitHub Actions.

commit 80110eff05f6edfd427af5293f380d990928fbfd
Author: TB Schardl <[email protected]>
Date:   Mon May 29 19:43:44 2023 -0400

    [test/Tapir] Generalize SROA test to fix test failure on macOS.

commit b22925221b7f476a3aaf836e2cba8e99031f0760
Author: TB Schardl <[email protected]>
Date:   Mon May 29 14:02:09 2023 +0000

    [SimplyCFG,TaskSimplify] Add hidden command-line options to disable optimization of removing detaches that immediately sync.

commit e1a34b85ece70fff8b3c1b297d97a6962f5dfb5f
Author: TB Schardl <[email protected]>
Date:   Mon May 29 14:01:20 2023 +0000

    [Tapir] Remove deprecated CudaABI and OpenMPABI Tapir targets.  Add LambdaABI and OMPTaskABI Tapir targets from OpenCilk PPoPP'23 paper for targeting alternative parallel runtimes.

commit e4d3b479a35685d95a49fac4e7cb4ff2dea4fc8a
Author: TB Schardl <[email protected]>
Date:   Mon May 22 01:52:35 2023 +0000

    [Tapir] Code formatting.

commit 7f44fab557139b1e61ccb9c7105b6b483c85f5be
Author: TB Schardl <[email protected]>
Date:   Mon May 22 01:51:39 2023 +0000

    [InlineFunction] Fix insertion of landingpads for taskframes when multiple taskframes appear in the same basic block.

commit 32f6f0be8204008f449f401c048363b7c6d35533
Author: TB Schardl <[email protected]>
Date:   Mon May 22 01:48:29 2023 +0000

    [TapirUtils] Modify FindTaskFrameCreateInBlock to optionally ignore a specific taskframe.create when searching a block for a taskframe.create.

commit 1c76104684bcdd9c28b85d03a41fdc8120030fc0
Author: TB Schardl <[email protected]>
Date:   Mon May 22 01:46:08 2023 +0000

    [Verifier] Add check that the successor of a reattach has a predecessor terminated by a detach that dominates the reattach.

commit e89d3bf0875a3da8f1ed852f589e96837b6c0310
Author: TB Schardl <[email protected]>
Date:   Mon May 22 01:44:51 2023 +0000

    [SSAUpdater] Fix handling of detach-continuation blocks with multiple detach and reattach predecessors.

commit eb439ea8c2b10622dd9b28ad8ff29e301a9cb095
Author: TB Schardl <[email protected]>
Date:   Thu May 18 17:39:20 2023 +0000

    [OpenCilkABI] Fix OpenCilk target to ensure that any sync that can possibly throw an exception has an associated landingpad.

commit a07679135eb1ac1d084815943feca0d4029a167b
Author: TB Schardl <[email protected]>
Date:   Tue Apr 18 01:14:31 2023 +0000

    Fix bugs for rebase onto LLVM 15.0.7.

commit 0b9ca933ffec4892d942a0725d3d3ff4763a3332
Author: Tao B. Schardl <[email protected]>
Date:   Thu Apr 6 05:59:35 2023 -0400

    Fix workaround in llvm-project-tests.yml for new macOS runner image.

commit a475e5f5c47a70be9ca1e5777576cb61967c7748
Author: TB Schardl <[email protected]>
Date:   Thu Mar 30 19:10:44 2023 +0000

    [test/Tapir] Mark test that requires the X86 target as such.

commit c98c75e6159ae279dd08cdf9af072b119bac32bf
Author: TB Schardl <[email protected]>
Date:   Sun Jan 29 20:21:12 2023 +0000

    [CilkSanitizer] Special-case the instrumentation of hyper.lookup, to allow Cilksan library to implement its own handling of reducers separately from runtime system.

commit 6396775792b42ee51d4e4f7a29629e2e0456770f
Author: TB Schardl <[email protected]>
Date:   Sat Jan 28 03:22:47 2023 +0000

    [BasicAliasAnalysis,test/Cilk,test/Tapir] Fix test cases and alias analysis to accommodate new hyper.lookup signature.

commit 09ac42508428f619c332ae0c27a4ac0b6e730ebc
Author: TB Schardl <[email protected]>
Date:   Wed Jan 4 00:31:50 2023 +0000

    [CodeGen,Sema] Fix support for __hyper_lookup calls in dependent contexts.

commit 56f889f3e21d6be19d9502af410138ce234af05a
Author: TB Schardl <[email protected]>
Date:   Sun Dec 18 22:03:43 2022 -0500

    [Basic,CodeGen,Sema,IR,Tapir] Modify hyper_lookup intrinsic to pass additional information about the reducer being looked up, namely, its view size, identity function, and reduce function.

commit 8ff678c882a5d1bd1e84495fcbefc49745807fcd
Author: John F. Carr <[email protected]>
Date:   Sat Feb 25 13:42:18 2023 -0500

    Fix crashes on bad hyperobject declarations

commit 4f43a60975c503c698dbde9aac31e33d8f731204
Author: TB Schardl <[email protected]>
Date:   Wed Feb 1 03:23:48 2023 +0000

    [CSI,CilkSanitizer] Identify detaches and their continuations that are associated with Tapir loops.

commit 02dea84d7d5521638bae13bf88b132a540ee0f5b
Author: TB Schardl <[email protected]>
Date:   Tue Feb 7 11:36:49 2023 +0000

    [TailRecursionElimination] Allow TRE to occur when a tail call is separated from a return by a sync and a tapir.runtime.end intrinsic.  In such cases, TRE removes the tapir.runtime intrinsics altogether.

commit b93ccc5bfb6c51905111c5bdac94c211328dda53
Author: TB Schardl <[email protected]>
Date:   Tue Feb 7 11:34:51 2023 +0000

    [TailRecursionElimination] Avoid performing tail-recursion elimination for a tail call followed by a sync if there exists a sync preceding that call in the function.  TRE in this case can change the synchronization of the program, by causing some spawns to sync earlier than before.  TRE in such cases appears to make parallel scalability worse.

commit 99c8bf79d59311331c3839a45357aae9388cda17
Author: TB Schardl <[email protected]>
Date:   Tue Feb 7 11:13:28 2023 +0000

    [InstCombineCalls] Combine consective pairs of tapir.runtime intrinsics, to avoid needlessly stopping and resuming a parallel runtime.

commit f7f8e08c655be46ab3b90808f1ed3a433fc11b43
Author: TB Schardl <[email protected]>
Date:   Sat Feb 4 01:30:50 2023 +0000

    [TapirUtils] Two changes involving optimizations with taskframes:

    - When serializing a detach, if the task contains a sync, replace the
      detach with a taskframe, to prevent that sync from synchronizing
      tasks in the parent.

    - Allow a taskframe containing allocas to be replaced with
      stacksave/stackrestore intrinsics.

commit 32f4498946d58a21d0e2b5ca00c31e3083a2d414
Author: TB Schardl <[email protected]>
Date:   Wed Feb 1 11:20:01 2023 +0000

    [github] Update llvm-project-tests for new macOS 11 runner image.

commit 8629b933e525db8b66fb29d7628f3697601825d0
Author: TB Schardl <[email protected]>
Date:   Wed Feb 1 03:32:16 2023 +0000

    [LoweringUtils] Identify blocks in taskframes that are shared outside of the taskframe, e.g., for __clang_call_terminate.  These blocks may have PHI nodes that need to be updated during lowering.

commit ebea8384f158dcbbcadd7228966776d01e39927a
Author: TB Schardl <[email protected]>
Date:   Sat Nov 12 20:27:51 2022 +0000

    [Clang] Don't necessarily add the OpenCilk runtime bitcode ABI if a custom Tapir target is specified.

commit 17c5191782250602488c7b0a3fce8f051aa330dc
Author: John F. Carr <[email protected]>
Date:   Tue Jan 3 16:22:19 2023 -0500

    Test case for OpenCilk issue 157

commit 91590ae258da4a08b22e29ca0df060336b205083
Author: John F. Carr <[email protected]>
Date:   Tue Jan 3 15:50:46 2023 -0500

    Make isViewSet check the View flag instead of the Pure flag.
    Regression introduced by 52f8a61bc248d312da9269cfdddabad8ff51f9d6.

commit b75ad9a29a76acdb52c84cf24930063988d19b6d
Author: John F. Carr <[email protected]>
Date:   Sat Dec 31 14:29:16 2022 -0500

    Fix type checking of Cilk for loops with pointer loop variables

commit 36ccb03b7c7ce2418bf72d995a18754fa1348ab6
Author: John F. Carr <[email protected]>
Date:   Tue Dec 27 14:53:11 2022 -0500

    Fix crash on type error in Cilk for statement

commit 8f4bcb58ba33d7406263d80455c28aba5a7b218c
Author: TB Schardl <[email protected]>
Date:   Thu Dec 1 10:16:05 2022 -0500

    [CSI] Ensure that all global variables CSI introduces have a name, because -flto expects all global symbols to have names.  Fix issue #149.

commit a6df8341db1ffe6ac967787dea8784af6988991f
Author: TB Schardl <[email protected]>
Date:   Thu Dec 1 07:17:25 2022 -0500

    [test/Tapir] Add aarch64-target requirement to an aarch64 codegen test.

commit e0b8e54b7d1c4f58632c141cc6a50cf103897402
Author: TB Schardl <[email protected]>
Date:   Thu Dec 1 06:39:18 2022 -0500

    [InlineFunction] Fix insertion of allocas when inlining function calls with byval arguments inside of tasks.  Fix issue #148.

commit 6991ce6ea07ee324c451a9360ac934ee04280d5f
Author: TB Schardl <[email protected]>
Date:   Wed Nov 9 20:25:31 2022 -0500

    [Tapir] Adjust Tapir Target API to fix handling of analyses when a target handles Tapir instructions manually, i.e., without using the standard infrastructure to outline tasks.

commit 7bc03ea1ca310534377dce4ba925c71e0b370af8
Author: TB Schardl <[email protected]>
Date:   Tue Nov 8 11:50:14 2022 +0000

    [InlineFunction,EHPersonalities] Add support for inlining functions that use the Cilk and GXX EH personalities.

commit f623521ce37b8bf34a14b53f152e7b3f6e36153d
Author: TB Schardl <[email protected]>
Date:   Sun Nov 6 23:02:33 2022 +0000

    [test/Cilk] Fix test for syncregion debug info to work on Linux.

commit df1786d82e4a8ac49dc093748272517767c4cd00
Author: TB Schardl <[email protected]>
Date:   Sun Nov 6 15:53:09 2022 -0500

    [CGCilk,OpenCilkABI] Generate debug info on syncregion.start intrinsics to help ensure that the OpenCilk Tapir target can attach debug information to runtime-ABI calls it inserts.

commit 166681fa315dd667633c11b6236207dfb0bf716b
Author: TB Schardl <[email protected]>
Date:   Fri Nov 4 00:06:26 2022 +0000

    [OpenCilkABI] Fix typo in comments.

commit aa64c25ee1e20078dc9375d3c2a4382cf5c8000f
Author: TB Schardl <[email protected]>
Date:   Fri Nov 4 00:05:26 2022 +0000

    [InstCombine] Prevent InstCombine from sinking instructions from a continuation to after a sync instruction, as doing so is a pessimization.

commit 22cb41d746a4367c9d689129c485a1393b1067c8
Author: John F. Carr <[email protected]>
Date:   Wed Oct 26 09:56:54 2022 -0400

    Demangle mangled hyperobject type

commit ff0cb780b62bbc8c081414db8fc26ffe34c5b19f
Author: TB Schardl <[email protected]>
Date:   Sat Oct 22 09:05:16 2022 -0400

    [CilkSanitizer] Spill complex arguments, including structures, onto the stack when passing them to hooks.

commit 02690918b737504d0bf5ccfa1536a83b8009ae44
Author: TB Schardl <[email protected]>
Date:   Thu Oct 20 22:10:13 2022 -0400

    [DebugInfo] Fix compiler crash when calling findDbgValues for a Value that has a ConstantAsMetadata.

commit 30e93e3013ba3aaf2e8dc4edea6394b2792bbcad
Author: TB Schardl <[email protected]>
Date:   Wed Oct 19 18:59:58 2022 -0400

    [InlineFunction] Work around issue to allow inlining functions with different personalities where the caller is using the default personality.

commit ddccecf6a5b4f0f9e316cb130fa6463af8e3ecc8
Author: TB Schardl <[email protected]>
Date:   Wed Oct 19 18:58:41 2022 -0400

    [TapirUtils] Fix logic to promote calls to invokes in taskframes when taskframe.end precedes another important terminator, such as a reattach.

commit c7f6aae56a9039fd78d28b3312ebb1cde3d8a3b9
Author: TB Schardl <[email protected]>
Date:   Wed Oct 19 17:58:17 2022 -0400

    [TapirUtils] Fix logic to promote calls to invokes within tasks to handle cases where a taskframe comprises less than a single basic block.

commit 7a808290c0045a23fcdc7b7ec6a27593a0be3a45
Author: TB Schardl <[email protected]>
Date:   Thu Oct 13 10:46:41 2022 +0000

    [TapirUtils] Support promoting calls to invokes in tasks that are not reachable.  This functionality avoids compiler crashes on some codes that are instrumented with Sanitizers and compiled with no optimizations.

commit ecacc75102deeea488a53c54f418d68906c484ad
Author: TB Schardl <[email protected]>
Date:   Thu Oct 13 10:39:50 2022 +0000

    [TapirTaskInfo] Allow a task to use shared-EH spindles managed by an ancestor task that is not the immediate parent task.

commit e1cdaaa5e896985c94d37af98e323ec1b1164dd0
Author: Tao B. Schardl <[email protected]>
Date:   Fri Oct 7 14:19:55 2022 -0400

    [github] Update llvm-project-tests.yml

    Fix include path for updated macOS runner

commit cde7a91d7bc2c425367d93e52f7e07bd53ab0ab0
Author: TB Schardl <[email protected]>
Date:   Mon Sep 19 01:21:53 2022 +0000

    [test/Tapir] Update requirements on SLP-vectorization test.

commit 307e3d7c452167b728ebcb20f256ae3c6651b506
Author: TB Schardl <[email protected]>
Date:   Sun Sep 18 21:32:54 2022 +0000

    [Passes] Fix pass pipeline to run CSE after SLP vectorization.  Running CSE before SLP vectorization can disrupt the SLP vectorizer's ability to determine how to vectorize code.

commit 7541c785ba2cbe3cb0c8b48f674ee0ebfca84096
Author: John F. Carr <[email protected]>
Date:   Mon Sep 5 06:35:43 2022 -0400

    Hyperobject lookups need special handling in any dependent context

commit 0e31a81c0c1620e5526308057bd4c54433269e41
Author: TB Schardl <[email protected]>
Date:   Sun Aug 28 15:47:19 2022 +0000

    [test/Tapir] Add regression test for linking null bitcode module.

commit a653bce91d9461be3ebecff8c1a8e4dcbdc389c3
Author: John F. Carr <[email protected]>
Date:   Thu Aug 11 13:30:13 2022 -0400

    Fill in all the missing pieces after failure to load bitcode

commit 0b874f609e2fb47ba86d808c620d8b26dddac9f4
Author: John F. Carr <[email protected]>
Date:   Thu Aug 11 13:04:03 2022 -0400

    Do not try to link null bitcode module

commit 096f06752fee07f997892321732065471f9cfcce
Author: TB Schardl <[email protected]>
Date:   Thu Aug 25 11:21:18 2022 +0000

    [InlineFunction] Allow a function to be inlined into another with a different personality function if the callee simply uses the default personality function.  This workaround addresses issue #127.

commit 89918abac5655a23e4a83084fff2d72d09f3a1d1
Author: TB Schardl <[email protected]>
Date:   Thu Aug 25 11:09:59 2022 +0000

    [github] Make workflows consistent with workflows in mainline LLVM.

commit 7a24497661eea1267b1df503542e04bd824d3dbc
Author: TB Schardl <[email protected]>
Date:   Mon Aug 1 13:29:44 2022 +0000

    [CSI] Ignore unreachable basic blocks for instrumentation.  Remove debug statement to fix issue #129.

commit ab4e5b34f0fcb9c818267fdd0c800541f3d3a764
Author: TB Schardl <[email protected]>
Date:   Sun Aug 21 02:01:32 2022 +0000

    [github] Update llvm-project-tests based on upstream changes.

commit c2f58be9762b72edf4ac7a038a18ce41ef4a07e6
Author: TB Schardl <[email protected]>
Date:   Sun Aug 21 01:56:53 2022 +0000

    [github] Disable issue-subscriber action.

commit 35c54228228ef79e1458da1eb37a748f3f24ca2f
Author: John F. Carr <[email protected]>
Date:   Sun Jul 24 12:47:07 2022 -0400

    Fix crash on undeclared reducer callback

commit 672bb71d9272a0867562e147058810df2400151e
Author: TB Schardl <[email protected]>
Date:   Wed Jul 20 11:33:16 2022 +0000

    [github] Update workflows for release.

commit 615c152cec47318479e38c7e78aae6eadb8d5989
Author: TB Schardl <[email protected]>
Date:   Tue Jul 19 13:42:35 2022 +0000

    [ToolChain] When an OpenCilk resource directory is specified, add the include directory within that resource directory to the include path.

commit 6d6cc7e8dc7ebf6144d4e339613fc8b06709d821
Author: TB Schardl <[email protected]>
Date:   Mon Jul 18 11:58:48 2022 +0000

    [CMakeLists] Add OpenCilk version number that is distinct from LLVM version number.

commit 9493c3247b94dcccdafc1a9501933e81c0c2c395
Author: TB Schardl <[email protected]>
Date:   Sun Jul 17 15:35:05 2022 +0000

    [CSI][ThreadSanitizer] Fix promotion of calls to invokes within Tapir tasks.  Fixes issue OpenCilk/opencilk-project#113.

commit 3ee74ab8798c20c599fe8a410f40025f7da94333
Author: John F. Carr <[email protected]>
Date:   Mon Jul 18 13:45:19 2022 -0400

    Test for hyperobject with constructor but no destructor

commit 683ff7fdeb85fc5943c71285c8cf4215f28b7f44
Author: John F. Carr <[email protected]>
Date:   Mon Jul 18 10:17:13 2022 -0400

    Fix test for trivial destructor

commit cb5dbb6e36d31a3720eb294f28eb459e1e26af91
Author: TB Schardl <[email protected]>
Date:   Thu Jul 14 11:44:37 2022 +0000

    [github] Update workaround for building on macos-10.15 GitHub virtual environment.

commit 461d443bb0eebbfda24d534bb8cda0f70624a232
Author: John F. Carr <[email protected]>
Date:   Sun Jul 10 14:45:12 2022 -0400

    Merge reducer destructor callback into reduce callback.

commit 1930b5aef735a070dabdf5d1656ccbcfd6fb829f
Author: John F. Carr <[email protected]>
Date:   Sun Jul 10 14:23:01 2022 -0400

    Visit statment children of HyperobjectType

commit 9ff353d37b34ebc270792588675735e80ebc97af
Author: TB Schardl <[email protected]>
Date:   Sun Jul 10 20:48:53 2022 +0000

    [CREDITS] Expand CREDITS.TXT to reflect recent contributions.

commit 451ce36119e7547bcd4068976d15483c6cda1d8b
Author: TB Schardl <[email protected]>
Date:   Sun Jul 10 20:46:01 2022 +0000

    [test/Tapir] Fix llvm test failues on non-x86 systems.

commit 8321ebf8e6e19f46e4ceb48d465c590d9be65067
Author: TB Schardl <[email protected]>
Date:   Sun Jul 10 20:45:24 2022 +0000

    [test/Cilk] Fix clang test failures on non-x86 systems.

commit a508e80246f815e447db539e4db81d8992064d9a
Author: TB Schardl <[email protected]>
Date:   Sun Jul 10 20:44:37 2022 +0000

    [TapirUtils][SimplifyCFG][TaskSimplify] Remove taskframe intrinsics when serializing a detach where the task uses a taskframe.  Clean up logic for serilizing detaches that immediately sync.

commit bdede63111267ffc435ac880385ad6e74cce77ee
Author: TB Schardl <[email protected]>
Date:   Fri Jul 8 14:13:34 2022 +0000

    [BasicAliasAnalysis] Convert #define's to an enum class, to match code style of similar structures in LLVM.

commit 249353b3f8076eb8de84e9330cd61006894c7abb
Author: TB Schardl <[email protected]>
Date:   Fri Jul 8 11:51:48 2022 +0000

    [TableGen] Change additions to CodeGenIntrinsic to match LLVM code style, to avoid merge conflicts down the road.

commit cccd276bcc0cc541141e0cd6d8253e07bdcf8b09
Author: TB Schardl <[email protected]>
Date:   Thu Jul 7 19:29:19 2022 +0000

    [SROA] Make SROA preserve the atomicity of load and store operations when it rewrites load and store operations.

commit 1eb273e8d4c545ce17190463f1287fd0468f94e3
Author: TB Schardl <[email protected]>
Date:   Thu Jul 7 13:55:47 2022 +0000

    [SimpleLoopUnswitch] Fix compiler crash when unswitching a parallel loop with task-exit blocks.

commit 5e76b20e134f03620d6b8040aa8425e3a6abeb68
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 23:48:28 2022 +0000

    [bindings/python] Update diagnostics test.

commit ed514c2530691a5624ef20f4f5b03583e80e69b3
Author: John F. Carr <[email protected]>
Date:   Wed Jul 6 16:12:01 2022 -0400

    Improve compatibility testing of hyperobject types

commit 42a01ebcdcf8a9ac6db44ed9d5dae644f7d9ac42
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 19:33:24 2022 +0000

    Fix a little formatting with clang-format.

commit f2959caf0f419591cbf4b26b3a823df6f02c70f6
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 19:22:13 2022 +0000

    [github] Cleanup path.

commit 7d3ffda22243175e0c7b1a52ca8ba42d6c59b0f9
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 19:21:52 2022 +0000

    [IntrinsicEmitter] Fix handling of new intrinsics, which fixes spurious test failures.  Restore previous tests marked XFAIL.

commit 0489a6fbecf17ad12c007e8197aa1c9de8be1d7f
Author: John F. Carr <[email protected]>
Date:   Wed Jul 6 12:04:08 2022 -0400

    Fix rebuild of hyperobject reference in template expansion

commit 04db56e81f8b7d9684a08a47cf417079bf2ff019
Author: John F. Carr <[email protected]>
Date:   Wed Jul 6 11:18:59 2022 -0400

    Test of reducer += inside a template expansion

commit f738cbe7884ba00f9b1b4e33793a983889c732cd
Author: John F. Carr <[email protected]>
Date:   Wed Jul 6 11:14:38 2022 -0400

    Check that llvm.hyper.lookup is called only once

commit 794bda39b9704f541960a1bc11f367f467e4bf62
Author: John F. Carr <[email protected]>
Date:   Tue Jul 5 14:00:02 2022 -0400

    FreeBSD sanitizer needs -lstdthreads for mtx_init and related functions

commit 021495ff738c68589d08c7e86dddfd10e81ff182
Author: John F. Carr <[email protected]>
Date:   Sun Jul 3 22:13:24 2022 -0400

    Template instantiations with integer, null, or missing arguments can be hyperobjects

commit 26c32b06b1860d4c85cb37cc24366f89930e36e7
Author: John F. Carr <[email protected]>
Date:   Sun Jul 3 13:33:00 2022 -0400

    Try to unregister reducers the correct number of times

commit c3178cc4a30d5b10844ffc642ec101f41c62187d
Author: John F. Carr <[email protected]>
Date:   Fri Jul 1 12:04:29 2022 -0400

    XFAIL test with duplicate unregister call

commit 2bbb3e5fdc7bbd88bc7fa27895f3c9f15825b85b
Author: John F. Carr <[email protected]>
Date:   Wed Jun 29 16:09:34 2022 -0400

    Fix rebuild of hyperobject in using declaration

commit de6d421bb9029fa25e4f2edd0b322556145b7434
Author: John F. Carr <[email protected]>
Date:   Tue Jun 21 13:57:40 2022 -0400

    Clean up reducer callback order

commit 635399a93aac7cbb7e7a7a76cafc790f23f30817
Author: John F. Carr <[email protected]>
Date:   Fri Jun 17 08:04:02 2022 -0400

    Stricter type checking of reducer callback

commit 32b2d8cd83676f12099d61a340477b99660fb64d
Author: John F. Carr <[email protected]>
Date:   Thu Jun 16 16:54:12 2022 -0400

    Handle overloaded function as reducer callback

commit 1ad8fb0ec3f43beaaf9d02788e48dfca2662edf6
Author: John F. Carr <[email protected]>
Date:   Thu Jun 16 11:01:22 2022 -0400

    Add noundef to expected LLVM IR

commit 61bea1ff3305b0121b912ad44ce5e0355404a0cd
Author: John F. Carr <[email protected]>
Date:   Thu Jun 16 09:57:52 2022 -0400

    Syntactic hyperobjects

commit 66e55994cb95312f4a25bb48c582cb8f0df70066
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 15:28:20 2022 +0000

    [OpenCilkABI] Replace a SmallVector with an array.

commit 89d05d95e4ab7533c4b2526968f0150e8e80e19a
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 15:27:43 2022 +0000

    [CilkSanitizer] Remove unused variables.

commit 639dc0f74ca81837f888e146dd329b814ba24d2d
Author: TB Schardl <[email protected]>
Date:   Tue Jul 5 12:30:55 2022 +0000

    [Driver] Remove code to select alternate OpenCilk bitcode ABI file when pedigrees are enabled.

commit ec10d525876570d0ac64c8b0328561864c606a7d
Author: TB Schardl <[email protected]>
Date:   Thu Jun 30 21:18:09 2022 +0000

    [OpenCilkABI] Adjust diagnostic handling for cleaner error messages.

commit 5a9148a66b7bb8c394a841fbed0b866eaa98ab54
Author: TB Schardl <[email protected]>
Date:   Thu Jun 30 21:15:34 2022 +0000

    [CudaABI] Resolve compiler warning temporarily.

commit 8cea22dd0f232c533076029988a18b08017a3611
Author: TB Schardl <[email protected]>
Date:   Wed Jul 6 15:30:27 2022 +0000

    [github] Update CPLUS_INCLUDE_PATH workaround to accommodate updates to macOS virtual environment.

commit acef38cfe906cd7f6f01ee96b90ead9fd9a291b2
Author: TB Schardl <[email protected]>
Date:   Mon Jun 27 01:17:39 2022 +0000

    [CSI] Properly emit diagnostic messages raised when linking a tool bitcode file.

commit d0c5eca736f43ebbd51c9b914dddd3c2fa5fbe67
Author: TB Schardl <[email protected]>
Date:   Sun Jun 26 18:39:20 2022 +0000

    [gold-plugin] Add plugin options for Tapir lowering target and OpenCilk ABI bitcode file.

commit d2ae9283a4171d918e7632214a2a6f4b6d08c2ba
Author: TB Schardl <[email protected]>
Date:   Sun Jun 26 18:38:31 2022 +0000

    [InlineFunction] Fix stack overflow when inlining an invoked function that contains taskframe intrinsics that have not been split.

commit 3edbf6c56d15bd382f3f0b8abb05bb42ecfc3cdf
Author: TB Schardl <[email protected]>
Date:   Sun Jun 26 18:34:48 2022 +0000

    [CilkSanitizer] Add logic to synthesize default hooks for library functions that are not present in a linked tool bitcode file.

commit c9b864da8c317240e1d8396d491775e741feabea
Author: TB Schardl <[email protected]>
Date:   Sun Jun 26 18:33:23 2022 +0000

    [CilkSanitizer] Clean up synthesis and handling of MAAP checks.  Enable load-store coalescing when potential racing instruction is local but not in the same loop.  Cleanup code.

commit dcf56d3b579a57a8354c4ea83a1cd1bc2eef125f
Author: TB Schardl <[email protected]>
Date:   Sun Jun 26 18:29:51 2022 +0000

    [CSI][CilkSanitizer] Add property bit for loads and stores that are guaranteed to access thread-local storage.

commit 2c15ea0c37c09a373cdfefea70db475fd8688bb7
Author: TB Schardl <[email protected]>
Date:   Sun Jun 26 18:26:46 2022 +0000

    [TapirRaceDetect] Add method to get mod-ref information for a local race.  Include accesses to thread-local variables for race detection.  Cleanup code.

commit 965c8cc439fbbaa71828e7f3a5d32c402e3743e0
Author: TB Schardl <[email protected]>
Date:   Wed Feb 16 15:51:36 2022 +0000

    [CSI][CilkSanitizer] Draft change to support using a bitcode-ABI file for Cilksan.

commit d2850fcd14b47a54f8c899fea53dfb5ea38388c0
Author: TB Schardl <[email protected]>
Date:   Wed Feb 16 15:46:39 2022 +0000

    [CilkSanitizer] Add logic to aggressively search for debug information to attach to instrumentation hooks.

commit c611385b3cd116c8acbe9c1bb90b987ae0829d2e
Author: TB Schardl <[email protected]>
Date:   Wed Feb 16 15:44:08 2022 +0000

    [CilkSanitizer] Fix type of sync-region-number arguments in hooks to match Cilksan driver ABI.

commit 4cd1695c100c85578f2fd2819be41680dbae35b9
Author: TB Schardl <[email protected]>
Date:   Fri Jun 24 22:22:44 2022 +0000

    [Kaleidoscope/Tapir] Update Tapir Kaleidoscope example for LLVM 14.

commit 3b1b87304aef097a88de3e40af110825bcb4e999
Author: TB Schardl <[email protected]>
Date:   Fri Jun 24 17:57:57 2022 -0400

    [OpenCilkABI] Properly emit diagnostic messages raised when linking a bitcode ABI file.

commit 887184c964b3ff4b1293e51eb0297408aee993c2
Author: TB Schardl <[email protected]>
Date:   Fri Jun 24 14:38:48 2022 -0400

    [lld] Fix lld handling of command-line arguments for Tapir lowering at link time on Darwin.

commit d114aeb38e54f8334a6ca26f5f954ea0bd2b0bde
Author: TB Schardl <[email protected]>
Date:   Fri Jun 24 13:39:43 2022 +0000

    [lld][LTO] Update lld and LTO to pass flags for Tapir lowering at link time.  Based on changes by George Stelle <[email protected]>.

commit 6f01c4f0a5a475ed166c41e8486e97e3ffbfa42c
Author: TB Schardl <[email protected]>
Date:   Fri Jun 24 11:09:46 2022 +0000

    [MemoryBuiltins] Add method to get the arguments to a library allocation function, and use that method to simplify the logic in CilkSanitizer and CSI to instrument allocation functions.

commit 788723fdd51840ca9fb712d0388c848f1e869016
Author: TB Schardl <[email protected]>
Date:   Thu Jun 23 18:02:02 2022 +0000

    [OpenCilkABI] Make the __cilkrts_stack_frame_align variable linkage private, to avoid linking issues when code is compiled with -fopencilk and no optimizations.  Update regression tests with new OpenCilk ABI bitcode file.

commit 49a91d69042012127355821db819d1b8c439fb2c
Author: TB Schardl <[email protected]>
Date:   Thu Jun 23 17:58:06 2022 +0000

    [test/Tapir] Fix test case for rebase onto LLVM 14.

commit f66e80d84bebab348805349c443b4d9bb5f11a80
Author: TB Schardl <[email protected]>
Date:   Thu Mar 24 19:22:06 2022 +0000

    [LoopUnroll] Put custom GraphTraits in llvm namespace, to appease GCC.

commit 59b4c1c88f598a5452cd2455851838c0b5d4d347
Author: TB Schardl <[email protected]>
Date:   Fri Mar 18 13:46:44 2022 +0000

    [LoopUnroll] Clone task-exit blocks similarly to ordinary loop blocks during loop unrolling.

commit 5a0c91c6aabd5f8eafeb0028061a6dbc23f6e552
Author: John F. Carr <[email protected]>
Date:   Fri Mar 11 11:52:24 2022 -0500

    Read __cilkrts_stack_frame alignment from bitcode if available

commit 02012923412b9310c713fa41a55600aaacf94256
Author: TB Schardl <[email protected]>
Date:   Tue Jun 21 12:59:54 2022 +0000

    [IndVarSimplify] Add TapirIndVarSimplify pass, a version of the IndVarSimplify pass that applies only to Tapir loops.  Run TapirIndVarSimplify before loop stripmining to help ensure that Tapir loops can be stripmined after other optimizations, such as loop peeling.  Addresses issue #88.

commit 77c8b63bb7172ccbd7daf53f2f952d4fc2dca3e6
Author: TB Schardl <[email protected]>
Date:   Tue Jun 21 12:53:17 2022 +0000

    [OpenCilkABI] Ensure that debug information is attached to __cilkrts_enter_landingpad calls.

commit 11d18c63618e13e27f3d2f6dcd8abc6301abe9c5
Author: TB Schardl <[email protected]>
Date:   Tue Jun 21 12:51:12 2022 +0000

    [LoopSpawningTI] Set the debug location of a tapir.loop.grainsize intrinsic call to match the loop it applies to.

commit fc811c47384077332dd78f32a98b2cd376634be3
Author: TB Schardl <[email protected]>
Date:   Tue Jun 21 12:49:31 2022 +0000

    [OpenCilkABI] Fix compiler warning about unused variable.

commit cb26ec1ad0e0cd1be88e9e9f99c165ed3493aba0
Author: TB Schardl <[email protected]>
Date:   Sun Jun 19 08:01:04 2022 -0400

    [AArch64RegisterInfo] Fix AArch64 code generation to properly use the base register for stealable functions.

commit cdd5eae928e63d4f2d117288ac6d1fce037edbe6
Author: TB Schardl <[email protected]>
Date:   Mon Jun 13 11:29:55 2022 +0000

    [CGCilk] Fix code generation of unreachable _Cilk_sync statements.  Fixes issue #93.

commit 42bb03c984419251c1d5f991584f962603dbd6a1
Author: TB Schardl <[email protected]>
Date:   Mon Jun 13 11:27:19 2022 +0000

    [Tapir] Remove some uses of getElementType.

commit 6b7df525dafe13bd85ef2dc45e0c20812378041f
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 18:26:20 2022 +0000

    [TailRecursionElimination] When eliminating a tail call that is separated from a return by only a sync, defer reinserting syncs into return blocks until tail calls have all been eliminated.  This change helps TRE remove multiple tail calls that are each separated from a common return by a sync.

commit c76ab34aaeb322bdd10445bec97aad0f0903a6e0
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 18:23:44 2022 +0000

    [TapirUtils] When splitting blocks around taskframe intrinsics, try to ensure that a branch inserted after a taskframe.end intrinsic has debug info.

commit 1abcc7a38ce6c82351c28abb558da0c419ab54d9
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 18:21:56 2022 +0000

    [SimplifyCFG] Simplify a sync when it immediately leads to another sync in the same sync region.  Improve logic for simplifying branches around Tapir instructions.

commit 2684472245e9b1b5ce3713e8c492adcd9857a77f
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 18:18:51 2022 +0000

    [Outline] When outlining a helper function, remove any prologue data cloned from the parent function onto the helper.  Addresses issue #77.

commit fe8ff8f3f79949122d8893a8928a1fde965b4427
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 18:15:35 2022 +0000

    [CSI,CilkSanitizer] Add CSISetup pass to canonicalize the CFG before instrumentation when the canonicalization does not preserve analyses.

commit 7003d3570447576b00d99aad7287c28b2ce4ab1e
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 14:36:15 2022 +0000

    [test/Cilk] Add triple command-line argument to test.

commit 66f1485b58a794d4db9f17fb168f3aa91eb7e9bd
Author: TB Schardl <[email protected]>
Date:   Sun Jun 12 14:34:40 2022 +0000

    [cindex.py] Incorporate Cilk changes into Python bindings.

commit 3d8b1e881c1e0d1285f07ddfac99f0898d908b81
Author: TB Schardl <[email protected]>
Date:   Sat Jun 11 21:06:15 2022 +0000

    [github] Fix GitHub workflows for opencilk-project.

commit 004a118d1f18670af1499720318d4d09c5940c5d
Author: TB Schardl <[email protected]>
Date:   Sat Jun 11 20:59:23 2022 +0000

    Bug fixes for rebase onto LLVM 14.0.5

commit 9626886e087a11dcfaffb8998499aabfe2855a12
Author: TB Schardl <[email protected]>
Date:   Sat Jun 4 11:38:10 2022 +0000

    [Local] Fix bug when removing the unwind destination of a detach insrtuction that is used by multiple detach instructions.

commit 323bfeded53653b3f98a03d682ee00126c79192b
Author: TB Schardl <[email protected]>
Date:   Thu Mar 10 01:14:28 2022 +0000

    [llvm/test] Cleanup and fix a couple Tapir regression tests.

commit 3a36939d4a5217c21dae4f567972112900bea426
Author: TB Schardl <[email protected]>
Date:   Mon Mar 7 22:58:48 2022 +0000

    Bug fixes for rebase onto LLVM 13.0.1

commit 269b232fe59a569a8c1fc6294bf30f5752c6fd38
Author: TB Schardl <[email protected]>
Date:   Wed Feb 16 15:29:24 2022 +0000

    [cmake] Propagate path to llvm-link tool when adding external projects.

commit 01aa4fb1628661cb8da8c1b8888be1eec31bd6f0
Author: TB Schardl <[email protected]>
Date:   Wed Feb 16 14:55:52 2022 +0000

    [cmake] Add more dependencies between components.

commit 34504b8abbab440563f728c517900c373fd04b7f
Author: George Stelle <[email protected]>
Date:   Wed Oct 27 09:05:52 2021 -0600

    [cmake] Added IRReader dependency to instrumentation component

commit 20452488ed2428f9f46e8ab6f36776feb23ae955
Author: TB Schardl <[email protected]>
Date:   Sun Jan 9 00:34:33 2022 +0000

    [test/Tapir] Fix output path for GCOV test.

commit 755042ce8700e5051cd7fc03289a718824a54357
Author: TB Schardl <[email protected]>
Date:   Sat Jan 8 21:29:45 2022 +0000

    [GCOVProfiling] Ensure that GCOVProfiling does not try to split critical edges from detach instructions.

commit d961aa51938981ba3f11625b269c3d0f9332adcf
Author: TB Schardl <[email protected]>
Date:   Wed Dec 22 19:57:12 2021 +0000

    [Tapir][TapirUtils] Add logic to maintain debug locations to enable inlining of bitcode ABI functions with debug information.

commit 171342baac4cb817ab415b5c8266b70b3142c314
Author: TB Schardl <[email protected]>
Date:   Sun Nov 21 18:21:01 2021 +0000

    [ParseCilk][CGCilk] Fix compiler crashes on bad _Cilk_for inputs.

    Co-authored-by: John F. Carr <[email protected]>

commit 1b0608b28fa1954d27bab2859e9cf174d9789da8
Author: TB Schardl <[email protected]>
Date:   Thu Oct 28 19:45:18 2021 +0000

    [TapirRaceDetect] Fix crash when checking an indirect call instruction in a block terminated by unreachable.

commit 515ee9978d72e11be8ea4e50e04d8c4165aafd07
Author: TB Schardl <[email protected]>
Date:   Thu Oct 28 19:43:08 2021 +0000

    [MachineSink] Refine handling of EH_SjLj_Setup constructs to fix
    performance regressions.

commit 309ea1ba51d8689e823bbb8107860c89e6986bf3
Author: TB Schardl <[email protected]>
Date:   Sun Oct 24 00:26:03 2021 +0000

    [MachineSink] Ensure that arthimetic that stores results onto the
    stack is not sunk into a setjmp construct, specifically, between the
    longjmp destination and the test.  Addresses issue #78.

commit 77c63f94293aadfb088474ca655b28abe24fd25c
Author: TB Schardl <[email protected]>
Date:   Sun Oct 24 00:17:48 2021 +0000

    [CGCilk] Fix cilk_for-loop code generation when emission of loop
    variable may introduce new basic blocks.  Addresses issue #77.

commit 7bfda87d06194f5bf2a539513cf590b1be8b5b31
Author: TB Schardl <[email protected]>
Date:   Sat Oct 16 20:17:57 2021 +0000

    [InlineFunction] Fix logic to update PHI nodes in an exceptional block
    when inlining tasks at an invoke instruction.  Addresses issue #73.

commit 9ff936ce98ef4121fd43b3458302ae5fe2d0e1c2
Author: TB Schardl <[email protected]>
Date:   Sat Oct 16 19:15:07 2021 +0000

    [CilkSanitizer] Ensure that CilkSanitizer pass properly handles Tapir intrinsics in not within any task, i.e., in unreachable blocks.

commit cbd90428774adc9b3753993c3002cd8c84973a85
Author: TB Schardl <[email protected]>
Date:   Sat Oct 16 19:11:43 2021 +0000

    [DependenceAnalysis] Fix crash in dependence analysis when analyzing
    memory references in different loop nests.

commit f3aae1752175752975be1b23fe6bde48dec8345d
Author: TB Schardl <[email protected]>
Date:   Sun Sep 26 19:54:51 2021 +0000

    [SemaExpr] Fix Sema test to disallow _Cilk_spawn on the right-hand side of a compound assignment.

commit e2908075ed24effe71403153d07fa1122bc77342
Author: TB Schardl <[email protected]>
Date:   Fri Sep 24 02:25:42 2021 +0000

    [TapirRaceDetect] Add logic to handle pointers that cannot be stripped when checking whether a pointer is captured.

commit 8154ee135b6cd516068448761bd51d4ff167ee82
Author: Alexandros-Stavros Iliopoulos <[email protected]>
Date:   Tue Sep 7 20:13:03 2021 +0000

    Create issue template for bug reports

commit 463b18d8708ea71b85cebc0b5fe165527cc71fcd
Author: William M. Leiserson <[email protected]>
Date:   Mon Jun 28 20:41:33 2021 -0400

    [Tapir] Minor modifications to the OCaml bindings; Add OCaml bindings to the regression test suite.

commit 42e23a547836772d239b0c7c15a6005810fa6047
Author: William M. Leiserson <[email protected]>
Date:   Fri Jun 25 15:04:48 2021 -0400

    [Tapir] Update OCaml bindings.

commit 84ac2833abfb2037cc0d74e9a6934a233abf26e3
Author: TB Schardl <[email protected]>
Date:   Thu Sep 16 03:16:17 2021 +0000

    [CilkSanitizer][Kaleidoscope] Start deprecating the JitMode option, as it no longer seems necessary with recent changes to LLVM's JIT infrastructure.  Clean up Tapir Kaleidoscope code.

commit fc132e62d5297bd580febe0be5f8ebd9484e19aa
Author: TB Schardl <[email protected]>
Date:   Sun Sep 12 19:15:25 2021 +0000

    [OpenCilkABI] Mark all functions internalized from an external bitcode file as available_externally, regardless of whether OpenCilkABI uses that function.

commit 0bc52e4863eeaa9f8824cbf494c9fb28cbc6885f
Author: TB Schardl <[email protected]>
Date:   Sun Sep 12 19:13:00 2021 +0000

    [OpenCilkABI] Remove argmemonly attribute on spawning functions to ensure that changes to the stackframe flags are properly observed when a spawning function calls another spawning function.

commit 23b6de4ef8f5830059e43c47aa9fdea198c7a57e
Author: TB Schardl <[email protected]>
Date:   Sun Sep 12 19:06:45 2021 +0000

    [PassBuilder][PassManagerBuilder] Run LICM before loop spawning to ensure loop-invariant conditions appear outside of the loop.  Addresses #66.

commit 74b69d346fd5b539e049afc7862f257b8d61ee4c
Author: TB Schardl <[email protected]>
Date:   Sun Sep 12 19:04:04 2021 +0000

    [TapirLoopInfo] Fix handling of Tapir loops with loop-variant conditions.  Fixes #66.

commit a26d892c951182fae0231875cbe21b0e6bd4805b
Author: TB Schardl <[email protected]>
Date:   Mon Sep 6 22:10:28 2021 +0000

    [CilkSanitizer][CSI] Avoid inserting hooks or PHI nodes in placeholder
    destinations of task exits.

    This commit addresses #62.

commit 8b7e52844ccedfc28c9ca8f701762c7cf51151bf
Author: TB Schardl <[email protected]>
Date:   Fri Sep 3 02:13:19 2021 +0000

    [OpenCilkABI] Remove redundant code from OpenCilkABI, and add documentation about attributes and linkage for the CilkRTS ABI functions.

commit 5f5b3c197d41cbcf867f93b3eecf483a2d206c4d
Author: TB Schardl <[email protected]>
Date:   Tue Aug 31 15:31:20 2021 -0400

    [TapirTaskInfo] Remove false assertion that the continuation spindle of a detach must not be the same as the spindle containing the detach itself.

commit 0f1afa2b0cb90bc258542cf648e60020376d2109
Author: TB Schardl <[email protected]>
Date:   Mon Aug 30 23:57:17 2021 -0400

    [Darwin] Automatically use ASan-enabled version of OpenCilk runtime system on Darwin when the Cilk program is compiled with ASan.

commit eeef2443122ae71e57f22a5944ee28ddbbad34b8
Author: TB Schardl <[email protected]>
Date:   Tue Aug 31 02:20:17 2021 +0000

    [Driver] Automatically use ASan-enabled version of OpenCilk runtime system when the Cilk program is compiled with ASan.

commit aaff3f5db5c5136bbea164bcd3b1000a3f2d98b7
Author: TB Schardl <[email protected]>
Date:   Thu Aug 26 12:42:12 2021 +0000

    [Kaleidoscope][CSI] Fix Tapir Kaleidoscope code to link against the
    OpenCilk and Cilksan runtime libraries and run initializers for
    Cilksan.

    - Revert changes to general KaleidoscopeJIT code, and add custom
      KaleidoscopeJIT to Tapir Kaleidoscope example, which supports
      loading external libraries and running initializers.

    - Fix CSI jitMode operation to emit llvm.global_ctors entry even when
      used in a JIT.  This CSI change complements recent changes to how
      Orc handles initializers.

commit 0870a416b689118bc077793433375c158e017a5d
Author: TB Schardl <[email protected]>
Date:   Tue Aug 24 03:48:57 2021 +0000

    [Kaleidoscope] Fix up the Tapir Kaleidoscope example code to use the OpenCilk Tapir target.  Some additional work is needed to fix running parallel code using the OpenCilk runtime or Cilksan.

commit 3cdb414d46ecfabb2f2932f0519cd988e2e79327
Author: TB Schardl <[email protected]>
Date:   Tue Aug 24 03:16:57 2021 +0000

    [CMake] Add Vectorize as a link component of TapirOpts LLVM component library.

commit ce08dc233d5385e685fb5d2470a9d5d373adc63e
Author: TB Schardl <[email protected]>
Date:   Tue Aug 24 03:15:32 2021 +0000

    [LoopStripMinePass] Ensure that loop-stripmining inserts nested syncs when targetting OpenCilk.

commit 61501bb8f941d4de750691f26865a6c6f085452d
Author: TB Schardl <[email protected]>
Date:   Tue Aug 24 02:59:38 2021 +0000

    [Driver][CodeGen] Pass OpenCilk runtime-ABI bitcode file to the OpenCilkABI Tapir target as a Tapir-target option.

commit a74202e24967355cbc8f6940ab359453d65633ee
Author: TB Schardl <[email protected]>
Date:   Tue Aug 24 02:46:42 2021 +0000

    [OpenCilkABI] Get OpenCilk runtime-ABI bitcode file from OpenCilk Tapir-target option.

commit b8bcb0430276c826aba92af464d318136338e5ca
Author: TB Schardl <[email protected]>
Date:   Tue Aug 24 02:44:17 2021 +0000

    [TapirTargetIDs] Add facility to pass options to specific Tapir targets using TLI.  Add OpenCilkABI Tapir-target option.

commit fabb24be55bf96e6aeec5bbef3f7861f5ecc29b9
Author: TB Schardl <[email protected]>
Date:   Thu Aug 19 14:23:01 2021 +0000

    [Tapir] Don't propagate the noreturn attribute to outlined helper functions when the parent is marked noreturn.  Similarly, when using DAC loop spawning, don't propagate norecurse to the outlined helper function.

commit 6e0197429783874fe5a934f766ff8f5c58b52da2
Author: TB Schardl <[email protected]>
Date:   Mon Aug 9 15:54:59 2021 +0000

    [Cilk] Fix the scope definition on _Cilk_scope's, and add basic jump diagnostics to disallow jumping into the middle of a _Cilk_scope.  Add a couple simple regression tests for _Cilk_scope's.

commit d1632c7a735f24046020633e0b2f001829628481
Author: TB Schardl <[email protected]>
Date:   Sun Aug 8 22:24:25 2021 -0400

    [GVN] Prevent GVN from splitting critical detach-continue edges.

commit afef9ca56015cd17a667ff1e0e98c8b43bc2a5e4
Author: TB Schardl <[email protected]>
Date:   Sun Aug 8 22:21:53 2021 -0400

    [LoopStripMine] Fix test to not require the same loop-cost analysis on all systems.

commit 96a4f28c0ef76f6e344c8b35b2e54d74e6e39821
Author: TB Schardl <[email protected]>
Date:   Sat Aug 7 12:02:05 2021 +0000

    [OpenCilkABI] Add handling of tapir.runtime.{start,end} intrinsic calls to guide insertion of __cilkrts_enter_frame and __cilkrts_leave_frame ABI calls.

commit ec11e602a464d9032015322e8b924a2161825b93
Author: TB Schardl <[email protected]>
Date:   Sat Aug 7 11:56:17 2021 +0000

    [OpenCilkABI] Update target to reflect new runtime ABI.  Update error
    handling when the OpenCilkABI target fails to load the runtime ABI
    bitcode file (and -debug-abi-calls is not specified).

commit 3cc10b1efcd02db417bf1d01201c853bcefbe3f5
Author: TB Schardl <[email protected]>
Date:   Fri Aug 6 15:01:45 2021 +0000

    [TapirToTarget] Allow Tapir targets to maintain mappings keyed on taskframe-entry blocks in the original function.  Add a separate processing routine to handle functions that do not spawn and are not spawned.

commit c5b4e5161f69ad8b2be65319e2ad7fbed0309a11
Author: TB Schardl <[email protected]>
Date:   Fri Aug 6 14:46:22 2021 +0000

    [LoopStripMine] Fix handling of shared EH blocks so that, if the new parallel loop after stripmining is spawned, then shared EH blocks do not end up shared between the spawned loop and the parent task.  This commit addresses issue #58.

commit 7e879619c1e50f411cabf5b3253c39e99e6586e6
Author: TB Schardl <[email protected]>
Date:   Fri Aug 6 14:34:53 2021 +0000

    [TapirUtils] Allow passes to clone exception-handling blocks of a
    task.  Allow SerializeDetach and cloneEHBlocks to update LoopInfo.
    Fix dominator-tree updating logic in SerializeDetach and
    cloneEHBlocks.f

commit 79eca2d7caaed0148fa2598ed4839265ab0862ad
Author: TB Schardl <[email protected]>
Date:   Fri Aug 6 13:51:48 2021 +0000

    [TapirTaskInfo] Fix identification of unassociated-taskframe spindles when taskframe.create and taskframe.end are in the same basic block.

commit 771f986363ca1e72be699720f2520cf516c2ef88
Author: TB Schardl <[email protected]>
Date:   Mon Aug 2 21:01:39 2021 +0000

    [CGCilk][Intrinsics] Associate tapir.runtime.end intrinsics with tapir.runtime.start intrinsics using tokens.  Update _Cilk_scope code generation accordingly.  Avoid inserting tapir.runtime.{start,end} intrinsics unnecessarily in spawning functions.

commit 702c4169fbbbe9dfb2e77550d9994f9ac0ec53be
Author: TB Schardl <[email protected]>
Date:   Thu Jul 29 13:42:10 2021 +0000

    [CodeGenFunction][CGCilk] Optimize emission of tapir_runtime_{start,end} intrinsics when nested _Cilk_scopes are used within a function.

commit feed355d73e532cdfb0615f223bb15a6c98f6b8a
Author: TB Schardl <[email protected]>
Date:   Thu Jul 29 13:36:12 2021 +0000

    [TapirToTarget][LoweringUtils] Add generic handling of tapir_runtime_{start,end} intrinsics to Tapir targets.

commit 007f01951350f123d20593510b076e1ec2d059c4
Author: TB Schardl <[email protected]>
Date:   Sat Jul 24 16:15:06 2021 +0000

    [clang/Cilk][Intrinsics] Add _Cilk_scope construct, a lexical scope
    that guarantees upon exit to _Cilk_sync any tasks spawned within the
    scope.  Add intrinsics to allow the _Cilk_scope construct to mark
    where a Tapir-target runtime may be started and stopped at the
    beginning and end of the scope, respectively.

    These intrinsics are meant only to be hints to a Tapir-target runtime,
    not definitive markers for where the runtime must be started or
    stopped.  This requirement is necessary to make it safe to nest
    _Cilk_scopes, either within the same function or indirectly
    via function calls.

    No particular compiler optimizations are included for these
    intrinsics, although some optimizations may be useful to add in the
    future.

commit e48b168f12dbb2f8d11d47282b63b24a42ac9cbf
Author: TB Schardl <[email protected]>
Date:   Sat Jul 24 16:01:26 2021 +0000

    [CilkSanitizer][CSI] Extend Cilksan ABI and instrumentation to support race-detecting some Cilk programs that throw exceptions.

commit f795e7fb47e17eb99dd569d6c64826cc5086afdc
Author: TB Schardl <[email protected]>
Date:   Thu Jul 22 22:58:25 2021 +0000

    [CodeGen][Sema] Cleanup Cilk-related code, primarily around code-generation for implicit syncs.

commit 84c3ff60e5c6c81f9f6fb26da5659238d55b8f4b
Author: TB Schardl <[email protected]>
Date:   Thu Jul 22 21:25:31 2021 +0000

    [StmtCilk] Cleanup implementation of CilkSpawnStmt.

commit 671a5eaf1f53881640c560335e06ff0b9b8c6395
Author: TB Schardl <[email protected]>
Date:   Thu Jun 3 14:41:35 2021 -0400

    [TapirLoopInfo] When searching for a primary induction variable for a Tapir loop, select the widest induction-variable type only among the possible primary induction variables, i.e., integer IVs that start at 0 and have step value 1.  This change allows LoopSpawning to handle Tapir loops with multiple IVs where the primary IV is not necessarily the integer IV with the widest type.

commit 0be4014fed4d285f8e257eb675ef2d0c2a939070
Author: TB Schardl <[email protected]>
Date:   Thu Jun 3 14:38:08 2021 -0400

    [test/Tapir] Mark regression tests requiring an x86_64 target.

commit fbc80f0d6f86bb924d39073ad04d9584ecbb03dc
Author: TB Schardl <[email protected]>
Date:   Thu Jun 3 08:07:28 2021 -0400

    [compiler-rt/cmake] Create custom target for outline atomic helpers, and use this custom target for targets that use these helpers.  This additional target resolves a race that arises with the Makefile generator in creating outline atomic helpers for multiple builtin libraries in parallel.

commit 5fd97de28c1d4b440bd6eb1efaf4bbbeb4289d68
Author: TB Schardl <[email protected]>
Date:   Tue Jun 1 10:06:42 2021 -0400

    [Darwin] Update logic to link OpenCilk runtime on MacOS to handle changes to OpenCilk runtime build system.

commit e5dd814d97647f56d7a454e446b79ab431883940
Author: TB Schardl <[email protected]>
Date:   Fri May 28 18:18:12 2021 +0000

    [ToolChain] Update logic to link OpenCilk runtime to handle changes to OpenCilk runtime build system.  Specifically, add logic to handle the case where the runtime library is compiled with the target architecture added to the library filename.

commit fd07ddd86cc63e12dc986be768751d1791aff546
Author: TB Schardl <[email protected]>
Date:   Thu May 27 14:29:11 2021 +0000

    [CodeGen][Instrumentation] Resolve some compilation warnings when building with newer compilers.

commit f418e5a3b1ddda2f9883aee89eead46cac58f408
Author: TB Schardl <[email protected]>
Date:   Fri Apr 30 12:01:52 2021 +0000

    [CSI] Adjust code for adding CSI's constructor to llvm.global_ctors, in order to help bugpoint work on compiler crashes involving CSI and related instrumentation passes.

commit de41edb32cc49a8ec5707d42054333c449420e41
Author: TB Schardl <[email protected]>
Date:   Fri Apr 30 11:43:24 2021 +0000

    [InstCombine] Optimize tests for removing Tapir intrinsics.

commit 79043b03bb7a0c573f8c1048a1bfce6ba1096d13
Author: TB Schardl <[email protected]>
Date:   Thu Apr 29 17:03:20 2021 +0000

    [Outline] Fix processing of debug metadata during Tapir outlining that causes metadata in llvm.dbg intrinsics to be incorrectly mapped.

commit 2025e34e4f69ca2b6caae36e11af2da73b7d27ec
Author: TB Schardl <[email protected]>
Date:   Thu Apr 29 17:01:08 2021 +0000

    [CilkSanitizer][CSI] Fix handling of null pointers, intrinsics, and function-pointer arguments.

commit 3042493f962a4d3e85a5e26edd0e86b0b7534df7
Author: TB Schardl <[email protected]>
Date:   Thu Apr 29 14:01:28 2021 +0000

    [CilkSanitizer][CSI] Modify splitting of simple unreachable-block predecessors to preserve CFG invariants around detached.rethrow instructions.

commit 4373949d008613febfd00d93ffeb8514d835065d
Author: TB Schardl <[email protected]>
Date:   Mon Apr 26 18:26:14 2021 +0000

    [LoweringUtils] Handle PHIs in the unwind destination of a detach when outlining Tapir tasks.

commit 66bb692a74308dae0b305e1159ee0e8c7b0d4dee
Author: TB Schardl <[email protected]>
Date:   Mon Apr 26 14:56:25 2021 +0000

    [LoopStripMine] Fix maintenance of PHI nodes in the unwind destination of a Tapir loop during stripmining.

commit af7ec77c5fa74ed2b851bc407ac38a1527b2304d
Author: TB Schardl <[email protected]>
Date:   Mon Apr 26 12:31:34 2021 +0000

    Bug fixes for rebase onto LLVM 12.0.0

commit a6a7624642aa524ffebf45a64d56278dbddf503f
Author: TB Schardl <[email protected]>
Date:   Mon Apr 5 13:07:08 2021 +0000

    [LoopUtils] Fix typo in stripmine.enable attribute name.

commit fe52c8f8fecbe1cd0f2e236a4c1c87638df667a9
Author: TB Schardl <[email protected]>
Date:   Mon Apr 5 13:05:54 2021 +0000

    [InlineFunction] Update PHI nodes properly when function inlining introduces a taskframe.resume or detached.rethrow.

commit f6793e3030e954f8c6c0a5a7e9a87bce1d4373a3
Author: TB Schardl <[email protected]>
Date:   Mon Apr 5 13:04:01 2021 +0000

    [LoweringUtils] Update PHI nodes in continuation blocks of outlined task frames.

commit 42e1e5f340a61dbd096036ad819f67f9ac64bfa1
Author: TB Schardl <[email protected]>
Date:   Mon Apr 5 13:01:59 2021 +0000

    [TapirToTarget] Ensure that Tapir lowering never attempts to process a function with no body.

commit 18ee06baede9a40f3c7e3d6592aed925b42bb559
Author: TB Schardl <[email protected]>
Date:   Sun Mar 28 17:50:37 2021 +0000

    [OpenCilkABI] Adjust how runtime-ABI functions are marked to ensure they never end up defined in the final object file.

commit e184a4cfda51c905b14f543747954c50b090809e
Author: TB Schardl <[email protected]>
Date:   Sun Mar 28 17:15:12 2021 +0000

    [CilkSanitizer] Fix computation of MAAPs and function race info to ensure races are properly checked and reported.

commit f5fd041fa362ddbb6eca5d2c7e30783465226958
Author: TB Schardl <[email protected]>
Date:   Mon Mar 22 13:38:52 2021 +0000

    [Driver] Add -shared-libcilktool and -static-libcilktool flags to control whether a Cilktool's runtime library is linked statically or dynamically.

commit a0e840c07e13d0eadc4fa7e5a7cc8c70b5d407c7
Author: TB Schardl <[email protected]>
Date:   Mon Mar 22 03:30:09 2021 +0000

    [CommonArgs] Prevent Cilksan from being linked twice when dynamically linked.

commit 82a1f870afce0225f0e657f3d898e7140907645d
Author: TB Schardl <[email protected]>
Date:   Fri Mar 19 13:01:00 2021 +0000

    [MemorySSA] Change MemorySSA to depend on TaskInfo, and update relevant LLVM passes to ensure the legacy pass manager supports this dependency.

commit a40d6019e1f0fa40aa166fc99cb1ee5aab77e783
Author: TB Schardl <[email protected]>
Date:   Fri Mar 19 12:57:17 2021 +0000

    [RegisterCoalescer] Enable limited register-coalescing in functions that exoose returns-twice only via LLVM's setjmp intrinsic.

commit 66a5bf8c2c9bcdcad85e8d3cabf78d19901cd5b9
Author: TB Schardl <[email protected]>
Date:   Fri Mar 19 12:55:30 2021 +0000

    [CodeGen] Add a MachineFunction property to identify when a function exposes returns-twice via a function other than LLVM's setjmp intrinsic.

commit 609365a91dbc582bed89f5cf64a189d1a87b3c21
Author: TB Schardl <[email protected]>
Date:   Fri Mar 19 12:50:11 2021 +0000

    [MachineSink] Remove workaround for machine-sink optimization in the presence of setjmps, which no longer seems necessary as of LLVM 10.

commit 9148d3000e52a414a01096820e1c0745ffa59410
Author: TB Schardl <[email protected]>
Date:   Fri Mar 19 12:45:29 2021 +0000

    [SimplifyCFGPass] When removing useless syncs, don't use the placement syncregion.start intrinsics to direct the CFG traversal.

commit c3141b3974d7e485168b5e1b6fe9fd11f8ceb219
Author: TB Schardl <[email protected]>
Date:   Fri Mar 19 12:42:23 2021 +0000

    [JumpThreading] Fix jump-threading to accommodate Tapir instructions when threading through two blocks.

commit b422181ad7e731fb663b98f835dd47c7727f129d
Author: TB Schardl <[email protected]>
Date:   Tue Mar 9 19:24:24 2021 +0000

    Bug fixes for rebase onto LLVM 11.1.0

commit 600300bc4c1c17ba04d2e3dd7da202b37e826c48
Author: TB Schardl <[email protected]>
Date:   Thu Mar 4 21:08:55 2021 +0000

  …
jpinot pushed a commit to jpinot/llvm-project that referenced this issue Apr 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants