Skip to content
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

llvm-rc.exe failing when regular rc.exe does not #77

Closed
Tagglink opened this issue Dec 25, 2019 · 5 comments
Closed

llvm-rc.exe failing when regular rc.exe does not #77

Tagglink opened this issue Dec 25, 2019 · 5 comments
Labels
llvm-tools All llvm tools that do not have corresponding tag

Comments

@Tagglink
Copy link

Tagglink commented Dec 25, 2019

I'm on Windows 10 compiling FreeGLUT version 3.2.1 (latest as of here: http://freeglut.sourceforge.net) from source using my own compiled version of Clang 10.0.0 (latest commit as of yesterday) with CMake and Ninja.

Reproduction:
First I configured and built the FreeGLUT project like so:

C:\Playspace\freeglut-3.2.1> cmake -G Ninja -B ninja-build
C:\Playspace\freeglut-3.2.1> cd ninja-build
C:\Playspace\freeglut-3.2.1\ninja-build> ninja

This crashes llvm-rc with the error "expected yet unread fixed VERSIONINFO statement type, got FILEFLAGS":

C:\Playspace\freeglut-3.2.1\ninja-build> ninja
[31/132] Building RC object CMakeFiles/freeglut.dir/freeglut.rc.res
FAILED: CMakeFiles/freeglut.dir/freeglut.rc.res
C:\PROGRA~1\LLVM\bin\llvm-rc.exe -DFREEGLUT_EXPORTS -DHAVE_CONFIG_H -DWINVER=0x0601 -D_CRT_SECURE_NO_WARNINGS -D_WIN32_WINNT=0x0601 -Dfreeglut_EXPORTS -IC:/Playspace/freeglut-3.2.1/src -IC:/Playspace/freeglut-3.2.1/include -IC:/Playspace/freeglut-3.2.1/ninja-build  /fo CMakeFiles/freeglut.dir/freeglut.rc.res C:/Playspace/freeglut-3.2.1/ninja-build/freeglut.rc
llvm-rc: Error parsing file: expected yet unread fixed VERSIONINFO statement type, got FILEFLAGS

Configuring the project like this results in a successful build:

C:\Playspace\freeglut-3.2.1> cmake -G Ninja -B ninja-test-build -DCMAKE_RC_COMPILER:FILEPATH="C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/rc.exe" -DCMAKE_BUILD_TYPE:STRING=Release
C:\Playspace\freeglut-3.2.1> cd ninja-test-build
C:\Playspace\freeglut-3.2.1\ninja-test-build> ninja

i.e. using the windows binary for the rc compiler works right away. This is ok, but it seems something is wrong with llvm-rc.

@mstorsjo
Copy link
Member

I would presume that this happens because the freeglut rc file contains preprocessor directives, see e.g. https://github.com/dcnieho/FreeGLUT/blob/git_master/freeglut/freeglut/freeglut.rc.in#L8-L12.

llvm-rc in itself isn't a full replacement for rc.exe at the moment; it doesn't run the C preprocessor, but expects the caller to have done that beforehand. (In llvm-mingw, that's done with a small frontend wrapper tool that implements the GNU windres command line syntax: https://github.com/mstorsjo/llvm-mingw/blob/master/wrappers/windres-wrapper.c#L303-L350

@Tagglink
Copy link
Author

I don't really know how regular .rc files are, I'm a novice at open source compilation. This just feels like a small bump in the road to compiling CMake projects using Ninja and Clang on Windows 10. Maybe it could be considered a backlog feature?

I will stick to using the Windows binary for now since the prospect of contributing a non-mingw C preprocessor to LLVM is a little daunting to me.

Thanks for the reply!

@ericastor
Copy link
Contributor

ericastor commented Dec 30, 2019

FWIW, this can be fixed in two ways I know of:

  1. The mostly-manual option. Whenever using llvm-rc, your build script should first run cl or clang-cl with parameters /P /DRC_INVOKED /Tc<rc file path> /Fi<temporary file path> <most other flags passed to llvm-rc>... this preprocesses the .rc file and stores the result in the temporary location. You can then run llvm-rc on the resulting temporary file, which will hold the preprocessed results. (Of course, we could ship a script that used this logic to make it easier.)

  2. Integrate clang's C preprocessor into llvm-rc. This might be a bit tricky, since it crosses LLVM project boundaries... or we could move llvm-rc into the clang project. But we at least shouldn't need to build a preprocessor from scratch.

Neither of these makes it into a perfect drop-in replacement for rc.exe; it turns out that rc.exe's preprocessor isn't quite a full C preprocessor, and will silently fail to act on certain directives under conditions that may not be completely documented. (e.g., I believe it ignores #include commands that include files with unrecognized extensions, such as .inc.) But... it's pretty close, and can be handled by (when something shouldn't be included) checking the RC_INVOKED macro, which Microsoft documents to be defined when rc.exe is processing a file.

@mstorsjo
Copy link
Member

FWIW, this can be fixed in two ways I know of:

  1. The mostly-manual option. Whenever using llvm-rc, your build script should first run cl or clang-cl with parameters /P /DRC_INVOKED /Tc<rc file path> /Fi<temporary file path> <most other flags passed to llvm-rc>... this preprocesses the .rc file and stores the result in the temporary location. You can then run llvm-rc on the resulting temporary file, which will hold the preprocessed results. (Of course, we could ship a script that used this logic to make it easier.)

This is what I do in my existing GNU windres compatible frontend.

  1. Integrate clang's C preprocessor into llvm-rc. This might be a bit tricky, since it crosses LLVM project boundaries... or we could move llvm-rc into the clang project. But we at least shouldn't need to build a preprocessor from scratch.

Neither of these makes it into a perfect drop-in replacement for rc.exe; it turns out that rc.exe's preprocessor isn't quite a full C preprocessor, and will silently fail to act on certain directives under conditions that may not be completely documented. (e.g., I believe it ignores #include commands that include files with unrecognized extensions, such as .inc.) But... it's pretty close, and can be handled by (when something shouldn't be included) checking the RC_INVOKED macro, which Microsoft documents to be defined when rc.exe is processing a file.

FWIW, I don't think the preprocessor execution itself is much different from a normal C preprocessor, but there's a rather vital gotcha; see 518b6c9 and https://docs.microsoft.com/en-us/windows/win32/menurc/preprocessor-directives?redirectedfrom=MSDN. The RC preprocessor does include everything as usual, but ignores the output contributed from files with a .c and .h suffix. This can be observed when feeding the output from a separate preprocessor run; the #line markers are essential for this to work; if they're stripped out, rc.exe will start interpreting everything as resource statements, while the .h files might have contributed e.g. typedefs.

@RKSimon RKSimon added the llvm-tools All llvm tools that do not have corresponding tag label Apr 12, 2022
tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this issue Apr 4, 2023
variable may introduce new basic blocks.  Addresses issue llvm#77.
tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this issue Apr 4, 2023
…cloned from the parent function onto the helper. Addresses issue llvm#77.
pmccormick pushed a commit to lanl/kitsune that referenced this issue May 17, 2023
variable may introduce new basic blocks.  Addresses issue llvm#77.
stelleg pushed a commit to stelleg/llvm-project that referenced this issue Jun 13, 2023
variable may introduce new basic blocks.  Addresses issue llvm#77.
stelleg pushed a commit to stelleg/llvm-project that referenced this issue Jun 13, 2023
…cloned from the parent function onto the helper. Addresses issue llvm#77.
tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this issue Jul 25, 2023
variable may introduce new basic blocks.  Addresses issue llvm#77.
tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this issue Jul 25, 2023
…cloned from the parent function onto the helper. Addresses issue llvm#77.
@mstorsjo
Copy link
Member

I believe this has been fixed since 64bc44f now (LLVM 13.0.0), as llvm-rc does run the preprocessor now.

tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this issue Sep 26, 2023
variable may introduce new basic blocks.  Addresses issue llvm#77.
tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this issue Sep 26, 2023
…cloned from the parent function onto the helper. Addresses issue llvm#77.
tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this issue Oct 12, 2023
variable may introduce new basic blocks.  Addresses issue llvm#77.
tarunprabhu pushed a commit to tarunprabhu/kitsune that referenced this issue Oct 12, 2023
…cloned from the parent function onto the helper. Addresses issue llvm#77.
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Nov 24 13:52:08 2023 +0000

    Code cleanup and formatting.

commit 6ef312d8799d05324d956a819c2e078505d00ee4
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Nov 12 20:10:57 2023 +0000

    Fix bugs for rebase onto LLVM 17.0.4

commit 1f6d36945cbb4529b7a83e5eb557f02f7e9c4dfc
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Oct 9 10:25:43 2023 +0000

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

commit 6e75058f3cc757eb7ef959dcd3d1361d20595338
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Oct 13 23:27:59 2023 +0000

    [DRFScopedNoAliasAA] Fix a compiler warning.

commit 76c49de053a605163c212d5f59ccccc6600608e4
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Sat Sep 16 14:13:50 2023 -0400

    Simplify headers in README.md

commit 59cdaa58f19432befdad8806db5f6bf5809d2c97
Author: Tao B. Schardl <neboat@mit.edu>
Date:   Sat Sep 16 14:10:42 2023 -0400

    Fix headers in README.md

commit a488d8bf61588a8798888309bf85dfdb96e2b30f
Author: Tao B. Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Sep 15 12:33:50 2023 +0000

    [README] Rename LLVM README file.

commit dfdf56660eb70df5f2cd3c55717f7ed00f59461c
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Sep 6 12:14:08 2023 -0400

    Remove unused HyperToken attribute

commit 5dcd8bcef85c451791da5f6b2717665a4d15c674
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Sep 1 20:21:27 2023 -0400

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

commit a2a5e20b00da185d01f9caf510006efdadef560b
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Thu Aug 31 14:33:25 2023 -0400

    Use BuildBuiltinCallExpr for hyper_lookup too

commit a78944f376cb512cd3d7069ed16454e019bc972f
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Aug 30 16:42:08 2023 -0400

    Use BuildBuiltinCallExpr to generate call to __builtin_addressof

commit 5cac64f4f56f42e90e5eda94d494b14d833f99c5
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Aug 24 10:13:21 2023 -0400

    Look through _Hyperobject in delete

commit 8a409dfc1fc889ee3e4020208899dce3b2bc7c9b
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Wed Jul 26 11:57:41 2023 +0000

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

commit 5e6c4f2974822d28abb52e851d86b318657e8a20
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jul 23 22:30:06 2023 +0000

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

commit c8e60b12aa8c07a97a4ca57fab76e0bfde227317
Author: John F. Carr <jfc@mit.edu>
Date:   Fri Jul 21 18:57:22 2023 -0400

    Compute memory effects of outlined function

commit 008a2e069ddb68c9843727d1f9d911eea2ca3dcd
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Jul 20 20:32:17 2023 -0400

    Use new memory effects interface for outlined function

commit c3c430f335c47a7e142f0abac315a3a68d240c12
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Mon Jun 5 13:47:24 2023 -0400

    Call overloaded unary operator on hyperobject

commit 2c24a1354caa121ed28daa9c5f7149063761afa5
Author: John F. Carr <jfc@mit.edu>
Date:   Mon Jun 5 15:34:56 2023 -0400

    Allow hyperobject view lookup in overload resolution

commit 2c8940f87fb5056b7f63630b49633dde363a6e1c
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Jul 3 16:30:07 2023 -0400

    Fix bugs for rebase onto LLVM 16.0.6

commit ee2dba003c86a78ac8870b5d67889e6df5e97303
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon May 29 14:12:32 2023 +0000

    [github] Reenable tests on GitHub Actions.

commit 80110eff05f6edfd427af5293f380d990928fbfd
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon May 22 01:52:35 2023 +0000

    [Tapir] Code formatting.

commit 7f44fab557139b1e61ccb9c7105b6b483c85f5be
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Tue Apr 18 01:14:31 2023 +0000

    Fix bugs for rebase onto LLVM 15.0.7.

commit 0b9ca933ffec4892d942a0725d3d3ff4763a3332
Author: Tao B. Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Sat Feb 25 13:42:18 2023 -0500

    Fix crashes on bad hyperobject declarations

commit 4f43a60975c503c698dbde9aac31e33d8f731204
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Tue Jan 3 16:22:19 2023 -0500

    Test case for OpenCilk issue 157

commit 91590ae258da4a08b22e29ca0df060336b205083
Author: John F. Carr <jfc@mit.edu>
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 <jfc@mit.edu>
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 <jfc@mit.edu>
Date:   Tue Dec 27 14:53:11 2022 -0500

    Fix crash on type error in Cilk for statement

commit 8f4bcb58ba33d7406263d80455c28aba5a7b218c
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Nov 4 00:06:26 2022 +0000

    [OpenCilkABI] Fix typo in comments.

commit aa64c25ee1e20078dc9375d3c2a4382cf5c8000f
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Wed Oct 26 09:56:54 2022 -0400

    Demangle mangled hyperobject type

commit ff0cb780b62bbc8c081414db8fc26ffe34c5b19f
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat16@gmail.com>
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 <neboat@mit.edu>
Date:   Mon Sep 19 01:21:53 2022 +0000

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

commit 307e3d7c452167b728ebcb20f256ae3c6651b506
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Mon Sep 5 06:35:43 2022 -0400

    Hyperobject lookups need special handling in any dependent context

commit 0e31a81c0c1620e5526308057bd4c54433269e41
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
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 <jfc@mit.edu>
Date:   Thu Aug 11 13:04:03 2022 -0400

    Do not try to link null bitcode module

commit 096f06752fee07f997892321732065471f9cfcce
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Aug 25 11:09:59 2022 +0000

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

commit 7a24497661eea1267b1df503542e04bd824d3dbc
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Sun Aug 21 02:01:32 2022 +0000

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

commit c2f58be9762b72edf4ac7a038a18ce41ef4a07e6
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Aug 21 01:56:53 2022 +0000

    [github] Disable issue-subscriber action.

commit 35c54228228ef79e1458da1eb37a748f3f24ca2f
Author: John F. Carr <jfc@mit.edu>
Date:   Sun Jul 24 12:47:07 2022 -0400

    Fix crash on undeclared reducer callback

commit 672bb71d9272a0867562e147058810df2400151e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 20 11:33:16 2022 +0000

    [github] Update workflows for release.

commit 615c152cec47318479e38c7e78aae6eadb8d5989
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Mon Jul 18 13:45:19 2022 -0400

    Test for hyperobject with constructor but no destructor

commit 683ff7fdeb85fc5943c71285c8cf4215f28b7f44
Author: John F. Carr <jfc@mit.edu>
Date:   Mon Jul 18 10:17:13 2022 -0400

    Fix test for trivial destructor

commit cb5dbb6e36d31a3720eb294f28eb459e1e26af91
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Sun Jul 10 14:45:12 2022 -0400

    Merge reducer destructor callback into reduce callback.

commit 1930b5aef735a070dabdf5d1656ccbcfd6fb829f
Author: John F. Carr <jfc@mit.edu>
Date:   Sun Jul 10 14:23:01 2022 -0400

    Visit statment children of HyperobjectType

commit 9ff353d37b34ebc270792588675735e80ebc97af
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jul 10 20:48:53 2022 +0000

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

commit 451ce36119e7547bcd4068976d15483c6cda1d8b
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jul 10 20:46:01 2022 +0000

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

commit 8321ebf8e6e19f46e4ceb48d465c590d9be65067
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jul 10 20:45:24 2022 +0000

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

commit a508e80246f815e447db539e4db81d8992064d9a
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Wed Jul 6 23:48:28 2022 +0000

    [bindings/python] Update diagnostics test.

commit ed514c2530691a5624ef20f4f5b03583e80e69b3
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Jul 6 16:12:01 2022 -0400

    Improve compatibility testing of hyperobject types

commit 42a01ebcdcf8a9ac6db44ed9d5dae644f7d9ac42
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 6 19:33:24 2022 +0000

    Fix a little formatting with clang-format.

commit f2959caf0f419591cbf4b26b3a823df6f02c70f6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 6 19:22:13 2022 +0000

    [github] Cleanup path.

commit 7d3ffda22243175e0c7b1a52ca8ba42d6c59b0f9
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Wed Jul 6 12:04:08 2022 -0400

    Fix rebuild of hyperobject reference in template expansion

commit 04db56e81f8b7d9684a08a47cf417079bf2ff019
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Jul 6 11:18:59 2022 -0400

    Test of reducer += inside a template expansion

commit f738cbe7884ba00f9b1b4e33793a983889c732cd
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Jul 6 11:14:38 2022 -0400

    Check that llvm.hyper.lookup is called only once

commit 794bda39b9704f541960a1bc11f367f467e4bf62
Author: John F. Carr <jfc@mit.edu>
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 <jfc@mit.edu>
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 <jfc@mit.edu>
Date:   Sun Jul 3 13:33:00 2022 -0400

    Try to unregister reducers the correct number of times

commit c3178cc4a30d5b10844ffc642ec101f41c62187d
Author: John F. Carr <jfc@mit.edu>
Date:   Fri Jul 1 12:04:29 2022 -0400

    XFAIL test with duplicate unregister call

commit 2bbb3e5fdc7bbd88bc7fa27895f3c9f15825b85b
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Jun 29 16:09:34 2022 -0400

    Fix rebuild of hyperobject in using declaration

commit de6d421bb9029fa25e4f2edd0b322556145b7434
Author: John F. Carr <jfc@mit.edu>
Date:   Tue Jun 21 13:57:40 2022 -0400

    Clean up reducer callback order

commit 635399a93aac7cbb7e7a7a76cafc790f23f30817
Author: John F. Carr <jfc@mit.edu>
Date:   Fri Jun 17 08:04:02 2022 -0400

    Stricter type checking of reducer callback

commit 32b2d8cd83676f12099d61a340477b99660fb64d
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Jun 16 16:54:12 2022 -0400

    Handle overloaded function as reducer callback

commit 1ad8fb0ec3f43beaaf9d02788e48dfca2662edf6
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Jun 16 11:01:22 2022 -0400

    Add noundef to expected LLVM IR

commit 61bea1ff3305b0121b912ad44ce5e0355404a0cd
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Jun 16 09:57:52 2022 -0400

    Syntactic hyperobjects

commit 66e55994cb95312f4a25bb48c582cb8f0df70066
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 6 15:28:20 2022 +0000

    [OpenCilkABI] Replace a SmallVector with an array.

commit 89d05d95e4ab7533c4b2526968f0150e8e80e19a
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 6 15:27:43 2022 +0000

    [CilkSanitizer] Remove unused variables.

commit 639dc0f74ca81837f888e146dd329b814ba24d2d
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Jun 30 21:18:09 2022 +0000

    [OpenCilkABI] Adjust diagnostic handling for cleaner error messages.

commit 5a9148a66b7bb8c394a841fbed0b866eaa98ab54
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 30 21:15:34 2022 +0000

    [CudaABI] Resolve compiler warning temporarily.

commit 8cea22dd0f232c533076029988a18b08017a3611
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Jun 24 22:22:44 2022 +0000

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

commit 3b1b87304aef097a88de3e40af110825bcb4e999
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <stelleg@lanl.gov>.

commit 6f01c4f0a5a475ed166c41e8486e97e3ffbfa42c
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Jun 23 17:58:06 2022 +0000

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

commit f66e80d84bebab348805349c443b4d9bb5f11a80
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Mar 24 19:22:06 2022 +0000

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

commit 59b4c1c88f598a5452cd2455851838c0b5d4d347
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Fri Mar 11 11:52:24 2022 -0500

    Read __cilkrts_stack_frame alignment from bitcode if available

commit 02012923412b9310c713fa41a55600aaacf94256
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Tue Jun 21 12:49:31 2022 +0000

    [OpenCilkABI] Fix compiler warning about unused variable.

commit cb26ec1ad0e0cd1be88e9e9f99c165ed3493aba0
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Jun 13 11:27:19 2022 +0000

    [Tapir] Remove some uses of getElementType.

commit 6b7df525dafe13bd85ef2dc45e0c20812378041f
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Sun Jun 12 14:36:15 2022 +0000

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

commit 66f1485b58a794d4db9f17fb168f3aa91eb7e9bd
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jun 12 14:34:40 2022 +0000

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

commit 3d8b1e881c1e0d1285f07ddfac99f0898d908b81
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 11 21:06:15 2022 +0000

    [github] Fix GitHub workflows for opencilk-project.

commit 004a118d1f18670af1499720318d4d09c5940c5d
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 11 20:59:23 2022 +0000

    Bug fixes for rebase onto LLVM 14.0.5

commit 9626886e087a11dcfaffb8998499aabfe2855a12
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Mar 10 01:14:28 2022 +0000

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

commit 3a36939d4a5217c21dae4f567972112900bea426
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Mar 7 22:58:48 2022 +0000

    Bug fixes for rebase onto LLVM 13.0.1

commit 269b232fe59a569a8c1fc6294bf30f5752c6fd38
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Wed Feb 16 14:55:52 2022 +0000

    [cmake] Add more dependencies between components.

commit 34504b8abbab440563f728c517900c373fd04b7f
Author: George Stelle <stelleg@lanl.gov>
Date:   Wed Oct 27 09:05:52 2021 -0600

    [cmake] Added IRReader dependency to instrumentation component

commit 20452488ed2428f9f46e8ab6f36776feb23ae955
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jan 9 00:34:33 2022 +0000

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

commit 755042ce8700e5051cd7fc03289a718824a54357
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <jfc@mit.edu>

commit 1b0608b28fa1954d27bab2859e9cf174d9789da8
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <1577182+ailiop@users.noreply.github.com>
Date:   Tue Sep 7 20:13:03 2021 +0000

    Create issue template for bug reports

commit 463b18d8708ea71b85cebc0b5fe165527cc71fcd
Author: William M. Leiserson <willtor@mit.edu>
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 <willtor@mit.edu>
Date:   Fri Jun 25 15:04:48 2021 -0400

    [Tapir] Update OCaml bindings.

commit 84ac2833abfb2037cc0d74e9a6934a233abf26e3
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Sun Aug 8 22:24:25 2021 -0400

    [GVN] Prevent GVN from splitting critical detach-continue edges.

commit afef9ca56015cd17a667ff1e0e98c8b43bc2a5e4
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Jul 22 21:25:31 2021 +0000

    [StmtCilk] Cleanup implementation of CilkSpawnStmt.

commit 671a5eaf1f53881640c560335e06ff0b9b8c6395
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Jun 3 14:38:08 2021 -0400

    [test/Tapir] Mark regression tests requiring an x86_64 target.

commit fbc80f0d6f86bb924d39073ad04d9584ecbb03dc
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Apr 30 11:43:24 2021 +0000

    [InstCombine] Optimize tests for removing Tapir intrinsics.

commit 79043b03bb7a0c573f8c1048a1bfce6ba1096d13
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Apr 26 12:31:34 2021 +0000

    Bug fixes for rebase onto LLVM 12.0.0

commit a6a7624642aa524ffebf45a64d56278dbddf503f
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Apr 5 13:07:08 2021 +0000

    [LoopUtils] Fix typo in stripmine.enable attribute name.

commit fe52c8f8fecbe1cd0f2e236a4c1c87638df667a9
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Mar 22 03:30:09 2021 +0000

    [CommonArgs] Prevent Cilksan from being linked twice when dynamically linked.

commit 82a1f870afce0225f0e657f3d898e7140907645d
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Tue Mar 9 19:24:24 2021 +0000

    Bug fixes for rebase onto LLVM 11.1.0

commit 600300bc4c1c17ba04d2e3dd7da202b37e826c48
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Nov 24 13:52:08 2023 +0000

    Code cleanup and formatting.

commit 6ef312d8799d05324d956a819c2e078505d00ee4
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Nov 12 20:10:57 2023 +0000

    Fix bugs for rebase onto LLVM 17.0.4

commit 1f6d36945cbb4529b7a83e5eb557f02f7e9c4dfc
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Oct 9 10:25:43 2023 +0000

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

commit 6e75058f3cc757eb7ef959dcd3d1361d20595338
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Oct 13 23:27:59 2023 +0000

    [DRFScopedNoAliasAA] Fix a compiler warning.

commit 76c49de053a605163c212d5f59ccccc6600608e4
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Sat Sep 16 14:13:50 2023 -0400

    Simplify headers in README.md

commit 59cdaa58f19432befdad8806db5f6bf5809d2c97
Author: Tao B. Schardl <neboat@mit.edu>
Date:   Sat Sep 16 14:10:42 2023 -0400

    Fix headers in README.md

commit a488d8bf61588a8798888309bf85dfdb96e2b30f
Author: Tao B. Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Sep 15 12:33:50 2023 +0000

    [README] Rename LLVM README file.

commit dfdf56660eb70df5f2cd3c55717f7ed00f59461c
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Sep 6 12:14:08 2023 -0400

    Remove unused HyperToken attribute

commit 5dcd8bcef85c451791da5f6b2717665a4d15c674
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Sep 1 20:21:27 2023 -0400

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

commit a2a5e20b00da185d01f9caf510006efdadef560b
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Thu Aug 31 14:33:25 2023 -0400

    Use BuildBuiltinCallExpr for hyper_lookup too

commit a78944f376cb512cd3d7069ed16454e019bc972f
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Aug 30 16:42:08 2023 -0400

    Use BuildBuiltinCallExpr to generate call to __builtin_addressof

commit 5cac64f4f56f42e90e5eda94d494b14d833f99c5
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Aug 24 10:13:21 2023 -0400

    Look through _Hyperobject in delete

commit 8a409dfc1fc889ee3e4020208899dce3b2bc7c9b
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Wed Jul 26 11:57:41 2023 +0000

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

commit 5e6c4f2974822d28abb52e851d86b318657e8a20
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jul 23 22:30:06 2023 +0000

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

commit c8e60b12aa8c07a97a4ca57fab76e0bfde227317
Author: John F. Carr <jfc@mit.edu>
Date:   Fri Jul 21 18:57:22 2023 -0400

    Compute memory effects of outlined function

commit 008a2e069ddb68c9843727d1f9d911eea2ca3dcd
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Jul 20 20:32:17 2023 -0400

    Use new memory effects interface for outlined function

commit c3c430f335c47a7e142f0abac315a3a68d240c12
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Mon Jun 5 13:47:24 2023 -0400

    Call overloaded unary operator on hyperobject

commit 2c24a1354caa121ed28daa9c5f7149063761afa5
Author: John F. Carr <jfc@mit.edu>
Date:   Mon Jun 5 15:34:56 2023 -0400

    Allow hyperobject view lookup in overload resolution

commit 2c8940f87fb5056b7f63630b49633dde363a6e1c
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Jul 3 16:30:07 2023 -0400

    Fix bugs for rebase onto LLVM 16.0.6

commit ee2dba003c86a78ac8870b5d67889e6df5e97303
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon May 29 14:12:32 2023 +0000

    [github] Reenable tests on GitHub Actions.

commit 80110eff05f6edfd427af5293f380d990928fbfd
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon May 22 01:52:35 2023 +0000

    [Tapir] Code formatting.

commit 7f44fab557139b1e61ccb9c7105b6b483c85f5be
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Tue Apr 18 01:14:31 2023 +0000

    Fix bugs for rebase onto LLVM 15.0.7.

commit 0b9ca933ffec4892d942a0725d3d3ff4763a3332
Author: Tao B. Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Sat Feb 25 13:42:18 2023 -0500

    Fix crashes on bad hyperobject declarations

commit 4f43a60975c503c698dbde9aac31e33d8f731204
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Tue Jan 3 16:22:19 2023 -0500

    Test case for OpenCilk issue 157

commit 91590ae258da4a08b22e29ca0df060336b205083
Author: John F. Carr <jfc@mit.edu>
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 <jfc@mit.edu>
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 <jfc@mit.edu>
Date:   Tue Dec 27 14:53:11 2022 -0500

    Fix crash on type error in Cilk for statement

commit 8f4bcb58ba33d7406263d80455c28aba5a7b218c
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Nov 4 00:06:26 2022 +0000

    [OpenCilkABI] Fix typo in comments.

commit aa64c25ee1e20078dc9375d3c2a4382cf5c8000f
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Wed Oct 26 09:56:54 2022 -0400

    Demangle mangled hyperobject type

commit ff0cb780b62bbc8c081414db8fc26ffe34c5b19f
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat16@gmail.com>
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 <neboat@mit.edu>
Date:   Mon Sep 19 01:21:53 2022 +0000

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

commit 307e3d7c452167b728ebcb20f256ae3c6651b506
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Mon Sep 5 06:35:43 2022 -0400

    Hyperobject lookups need special handling in any dependent context

commit 0e31a81c0c1620e5526308057bd4c54433269e41
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
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 <jfc@mit.edu>
Date:   Thu Aug 11 13:04:03 2022 -0400

    Do not try to link null bitcode module

commit 096f06752fee07f997892321732065471f9cfcce
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Aug 25 11:09:59 2022 +0000

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

commit 7a24497661eea1267b1df503542e04bd824d3dbc
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Sun Aug 21 02:01:32 2022 +0000

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

commit c2f58be9762b72edf4ac7a038a18ce41ef4a07e6
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Aug 21 01:56:53 2022 +0000

    [github] Disable issue-subscriber action.

commit 35c54228228ef79e1458da1eb37a748f3f24ca2f
Author: John F. Carr <jfc@mit.edu>
Date:   Sun Jul 24 12:47:07 2022 -0400

    Fix crash on undeclared reducer callback

commit 672bb71d9272a0867562e147058810df2400151e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 20 11:33:16 2022 +0000

    [github] Update workflows for release.

commit 615c152cec47318479e38c7e78aae6eadb8d5989
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Mon Jul 18 13:45:19 2022 -0400

    Test for hyperobject with constructor but no destructor

commit 683ff7fdeb85fc5943c71285c8cf4215f28b7f44
Author: John F. Carr <jfc@mit.edu>
Date:   Mon Jul 18 10:17:13 2022 -0400

    Fix test for trivial destructor

commit cb5dbb6e36d31a3720eb294f28eb459e1e26af91
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Sun Jul 10 14:45:12 2022 -0400

    Merge reducer destructor callback into reduce callback.

commit 1930b5aef735a070dabdf5d1656ccbcfd6fb829f
Author: John F. Carr <jfc@mit.edu>
Date:   Sun Jul 10 14:23:01 2022 -0400

    Visit statment children of HyperobjectType

commit 9ff353d37b34ebc270792588675735e80ebc97af
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jul 10 20:48:53 2022 +0000

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

commit 451ce36119e7547bcd4068976d15483c6cda1d8b
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jul 10 20:46:01 2022 +0000

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

commit 8321ebf8e6e19f46e4ceb48d465c590d9be65067
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jul 10 20:45:24 2022 +0000

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

commit a508e80246f815e447db539e4db81d8992064d9a
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Wed Jul 6 23:48:28 2022 +0000

    [bindings/python] Update diagnostics test.

commit ed514c2530691a5624ef20f4f5b03583e80e69b3
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Jul 6 16:12:01 2022 -0400

    Improve compatibility testing of hyperobject types

commit 42a01ebcdcf8a9ac6db44ed9d5dae644f7d9ac42
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 6 19:33:24 2022 +0000

    Fix a little formatting with clang-format.

commit f2959caf0f419591cbf4b26b3a823df6f02c70f6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 6 19:22:13 2022 +0000

    [github] Cleanup path.

commit 7d3ffda22243175e0c7b1a52ca8ba42d6c59b0f9
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Wed Jul 6 12:04:08 2022 -0400

    Fix rebuild of hyperobject reference in template expansion

commit 04db56e81f8b7d9684a08a47cf417079bf2ff019
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Jul 6 11:18:59 2022 -0400

    Test of reducer += inside a template expansion

commit f738cbe7884ba00f9b1b4e33793a983889c732cd
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Jul 6 11:14:38 2022 -0400

    Check that llvm.hyper.lookup is called only once

commit 794bda39b9704f541960a1bc11f367f467e4bf62
Author: John F. Carr <jfc@mit.edu>
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 <jfc@mit.edu>
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 <jfc@mit.edu>
Date:   Sun Jul 3 13:33:00 2022 -0400

    Try to unregister reducers the correct number of times

commit c3178cc4a30d5b10844ffc642ec101f41c62187d
Author: John F. Carr <jfc@mit.edu>
Date:   Fri Jul 1 12:04:29 2022 -0400

    XFAIL test with duplicate unregister call

commit 2bbb3e5fdc7bbd88bc7fa27895f3c9f15825b85b
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Jun 29 16:09:34 2022 -0400

    Fix rebuild of hyperobject in using declaration

commit de6d421bb9029fa25e4f2edd0b322556145b7434
Author: John F. Carr <jfc@mit.edu>
Date:   Tue Jun 21 13:57:40 2022 -0400

    Clean up reducer callback order

commit 635399a93aac7cbb7e7a7a76cafc790f23f30817
Author: John F. Carr <jfc@mit.edu>
Date:   Fri Jun 17 08:04:02 2022 -0400

    Stricter type checking of reducer callback

commit 32b2d8cd83676f12099d61a340477b99660fb64d
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Jun 16 16:54:12 2022 -0400

    Handle overloaded function as reducer callback

commit 1ad8fb0ec3f43beaaf9d02788e48dfca2662edf6
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Jun 16 11:01:22 2022 -0400

    Add noundef to expected LLVM IR

commit 61bea1ff3305b0121b912ad44ce5e0355404a0cd
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Jun 16 09:57:52 2022 -0400

    Syntactic hyperobjects

commit 66e55994cb95312f4a25bb48c582cb8f0df70066
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 6 15:28:20 2022 +0000

    [OpenCilkABI] Replace a SmallVector with an array.

commit 89d05d95e4ab7533c4b2526968f0150e8e80e19a
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 6 15:27:43 2022 +0000

    [CilkSanitizer] Remove unused variables.

commit 639dc0f74ca81837f888e146dd329b814ba24d2d
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Jun 30 21:18:09 2022 +0000

    [OpenCilkABI] Adjust diagnostic handling for cleaner error messages.

commit 5a9148a66b7bb8c394a841fbed0b866eaa98ab54
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 30 21:15:34 2022 +0000

    [CudaABI] Resolve compiler warning temporarily.

commit 8cea22dd0f232c533076029988a18b08017a3611
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Jun 24 22:22:44 2022 +0000

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

commit 3b1b87304aef097a88de3e40af110825bcb4e999
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <stelleg@lanl.gov>.

commit 6f01c4f0a5a475ed166c41e8486e97e3ffbfa42c
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Jun 23 17:58:06 2022 +0000

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

commit f66e80d84bebab348805349c443b4d9bb5f11a80
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Mar 24 19:22:06 2022 +0000

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

commit 59b4c1c88f598a5452cd2455851838c0b5d4d347
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Fri Mar 11 11:52:24 2022 -0500

    Read __cilkrts_stack_frame alignment from bitcode if available

commit 02012923412b9310c713fa41a55600aaacf94256
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Tue Jun 21 12:49:31 2022 +0000

    [OpenCilkABI] Fix compiler warning about unused variable.

commit cb26ec1ad0e0cd1be88e9e9f99c165ed3493aba0
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Jun 13 11:27:19 2022 +0000

    [Tapir] Remove some uses of getElementType.

commit 6b7df525dafe13bd85ef2dc45e0c20812378041f
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Sun Jun 12 14:36:15 2022 +0000

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

commit 66f1485b58a794d4db9f17fb168f3aa91eb7e9bd
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jun 12 14:34:40 2022 +0000

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

commit 3d8b1e881c1e0d1285f07ddfac99f0898d908b81
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 11 21:06:15 2022 +0000

    [github] Fix GitHub workflows for opencilk-project.

commit 004a118d1f18670af1499720318d4d09c5940c5d
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 11 20:59:23 2022 +0000

    Bug fixes for rebase onto LLVM 14.0.5

commit 9626886e087a11dcfaffb8998499aabfe2855a12
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Mar 10 01:14:28 2022 +0000

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

commit 3a36939d4a5217c21dae4f567972112900bea426
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Mar 7 22:58:48 2022 +0000

    Bug fixes for rebase onto LLVM 13.0.1

commit 269b232fe59a569a8c1fc6294bf30f5752c6fd38
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Wed Feb 16 14:55:52 2022 +0000

    [cmake] Add more dependencies between components.

commit 34504b8abbab440563f728c517900c373fd04b7f
Author: George Stelle <stelleg@lanl.gov>
Date:   Wed Oct 27 09:05:52 2021 -0600

    [cmake] Added IRReader dependency to instrumentation component

commit 20452488ed2428f9f46e8ab6f36776feb23ae955
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jan 9 00:34:33 2022 +0000

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

commit 755042ce8700e5051cd7fc03289a718824a54357
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <jfc@mit.edu>

commit 1b0608b28fa1954d27bab2859e9cf174d9789da8
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <1577182+ailiop@users.noreply.github.com>
Date:   Tue Sep 7 20:13:03 2021 +0000

    Create issue template for bug reports

commit 463b18d8708ea71b85cebc0b5fe165527cc71fcd
Author: William M. Leiserson <willtor@mit.edu>
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 <willtor@mit.edu>
Date:   Fri Jun 25 15:04:48 2021 -0400

    [Tapir] Update OCaml bindings.

commit 84ac2833abfb2037cc0d74e9a6934a233abf26e3
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Sun Aug 8 22:24:25 2021 -0400

    [GVN] Prevent GVN from splitting critical detach-continue edges.

commit afef9ca56015cd17a667ff1e0e98c8b43bc2a5e4
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Jul 22 21:25:31 2021 +0000

    [StmtCilk] Cleanup implementation of CilkSpawnStmt.

commit 671a5eaf1f53881640c560335e06ff0b9b8c6395
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Jun 3 14:38:08 2021 -0400

    [test/Tapir] Mark regression tests requiring an x86_64 target.

commit fbc80f0d6f86bb924d39073ad04d9584ecbb03dc
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Apr 30 11:43:24 2021 +0000

    [InstCombine] Optimize tests for removing Tapir intrinsics.

commit 79043b03bb7a0c573f8c1048a1bfce6ba1096d13
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Apr 26 12:31:34 2021 +0000

    Bug fixes for rebase onto LLVM 12.0.0

commit a6a7624642aa524ffebf45a64d56278dbddf503f
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Apr 5 13:07:08 2021 +0000

    [LoopUtils] Fix typo in stripmine.enable attribute name.

commit fe52c8f8fecbe1cd0f2e236a4c1c87638df667a9
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Mar 22 03:30:09 2021 +0000

    [CommonArgs] Prevent Cilksan from being linked twice when dynamically linked.

commit 82a1f870afce0225f0e657f3d898e7140907645d
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Tue Mar 9 19:24:24 2021 +0000

    Bug fixes for rebase onto LLVM 11.1.0

commit 600300bc4c1c17ba04d2e3dd7da202b37e826c48
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Mar 4 21:08:55 2021 +0000

  …
alexanderguy pushed a commit to alexanderguy/llvm-project that referenced this issue Sep 25, 2024
* Fix incorrect obj-dump

* Read flag from elf
tarunprabhu added a commit to tarunprabhu/kitsune that referenced this issue Oct 2, 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) are mostly retained.

All credit for OpenCilk contributions go to the individuals listed in the commit messages below.

commit 9e7b5b83a06d24f18d53bce2ae84ad23e8629566
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Nov 24 13:52:08 2023 +0000

    Code cleanup and formatting.

commit 6ef312d8799d05324d956a819c2e078505d00ee4
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Nov 12 20:10:57 2023 +0000

    Fix bugs for rebase onto LLVM 17.0.4

commit 1f6d36945cbb4529b7a83e5eb557f02f7e9c4dfc
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Oct 9 10:25:43 2023 +0000

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

commit 6e75058f3cc757eb7ef959dcd3d1361d20595338
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Oct 13 23:27:59 2023 +0000

    [DRFScopedNoAliasAA] Fix a compiler warning.

commit 76c49de053a605163c212d5f59ccccc6600608e4
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Sat Sep 16 14:13:50 2023 -0400

    Simplify headers in README.md

commit 59cdaa58f19432befdad8806db5f6bf5809d2c97
Author: Tao B. Schardl <neboat@mit.edu>
Date:   Sat Sep 16 14:10:42 2023 -0400

    Fix headers in README.md

commit a488d8bf61588a8798888309bf85dfdb96e2b30f
Author: Tao B. Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Sep 15 12:33:50 2023 +0000

    [README] Rename LLVM README file.

commit dfdf56660eb70df5f2cd3c55717f7ed00f59461c
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Sep 6 12:14:08 2023 -0400

    Remove unused HyperToken attribute

commit 5dcd8bcef85c451791da5f6b2717665a4d15c674
Author: TB Schardl <neboat@mit.edu>
Date:   Fri Sep 1 20:21:27 2023 -0400

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

commit a2a5e20b00da185d01f9caf510006efdadef560b
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Thu Aug 31 14:33:25 2023 -0400

    Use BuildBuiltinCallExpr for hyper_lookup too

commit a78944f376cb512cd3d7069ed16454e019bc972f
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Aug 30 16:42:08 2023 -0400

    Use BuildBuiltinCallExpr to generate call to __builtin_addressof

commit 5cac64f4f56f42e90e5eda94d494b14d833f99c5
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Aug 24 10:13:21 2023 -0400

    Look through _Hyperobject in delete

commit 8a409dfc1fc889ee3e4020208899dce3b2bc7c9b
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Wed Jul 26 11:57:41 2023 +0000

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

commit 5e6c4f2974822d28abb52e851d86b318657e8a20
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jul 23 22:30:06 2023 +0000

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

commit c8e60b12aa8c07a97a4ca57fab76e0bfde227317
Author: John F. Carr <jfc@mit.edu>
Date:   Fri Jul 21 18:57:22 2023 -0400

    Compute memory effects of outlined function

commit 008a2e069ddb68c9843727d1f9d911eea2ca3dcd
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Jul 20 20:32:17 2023 -0400

    Use new memory effects interface for outlined function

commit c3c430f335c47a7e142f0abac315a3a68d240c12
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Mon Jun 5 13:47:24 2023 -0400

    Call overloaded unary operator on hyperobject

commit 2c24a1354caa121ed28daa9c5f7149063761afa5
Author: John F. Carr <jfc@mit.edu>
Date:   Mon Jun 5 15:34:56 2023 -0400

    Allow hyperobject view lookup in overload resolution

commit 2c8940f87fb5056b7f63630b49633dde363a6e1c
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Jul 3 16:30:07 2023 -0400

    Fix bugs for rebase onto LLVM 16.0.6

commit ee2dba003c86a78ac8870b5d67889e6df5e97303
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon May 29 14:12:32 2023 +0000

    [github] Reenable tests on GitHub Actions.

commit 80110eff05f6edfd427af5293f380d990928fbfd
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon May 22 01:52:35 2023 +0000

    [Tapir] Code formatting.

commit 7f44fab557139b1e61ccb9c7105b6b483c85f5be
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Tue Apr 18 01:14:31 2023 +0000

    Fix bugs for rebase onto LLVM 15.0.7.

commit 0b9ca933ffec4892d942a0725d3d3ff4763a3332
Author: Tao B. Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Sat Feb 25 13:42:18 2023 -0500

    Fix crashes on bad hyperobject declarations

commit 4f43a60975c503c698dbde9aac31e33d8f731204
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Tue Jan 3 16:22:19 2023 -0500

    Test case for OpenCilk issue 157

commit 91590ae258da4a08b22e29ca0df060336b205083
Author: John F. Carr <jfc@mit.edu>
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 <jfc@mit.edu>
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 <jfc@mit.edu>
Date:   Tue Dec 27 14:53:11 2022 -0500

    Fix crash on type error in Cilk for statement

commit 8f4bcb58ba33d7406263d80455c28aba5a7b218c
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Nov 4 00:06:26 2022 +0000

    [OpenCilkABI] Fix typo in comments.

commit aa64c25ee1e20078dc9375d3c2a4382cf5c8000f
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Wed Oct 26 09:56:54 2022 -0400

    Demangle mangled hyperobject type

commit ff0cb780b62bbc8c081414db8fc26ffe34c5b19f
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat16@gmail.com>
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 <neboat@mit.edu>
Date:   Mon Sep 19 01:21:53 2022 +0000

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

commit 307e3d7c452167b728ebcb20f256ae3c6651b506
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Mon Sep 5 06:35:43 2022 -0400

    Hyperobject lookups need special handling in any dependent context

commit 0e31a81c0c1620e5526308057bd4c54433269e41
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
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 <jfc@mit.edu>
Date:   Thu Aug 11 13:04:03 2022 -0400

    Do not try to link null bitcode module

commit 096f06752fee07f997892321732065471f9cfcce
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Aug 25 11:09:59 2022 +0000

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

commit 7a24497661eea1267b1df503542e04bd824d3dbc
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Sun Aug 21 02:01:32 2022 +0000

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

commit c2f58be9762b72edf4ac7a038a18ce41ef4a07e6
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Aug 21 01:56:53 2022 +0000

    [github] Disable issue-subscriber action.

commit 35c54228228ef79e1458da1eb37a748f3f24ca2f
Author: John F. Carr <jfc@mit.edu>
Date:   Sun Jul 24 12:47:07 2022 -0400

    Fix crash on undeclared reducer callback

commit 672bb71d9272a0867562e147058810df2400151e
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 20 11:33:16 2022 +0000

    [github] Update workflows for release.

commit 615c152cec47318479e38c7e78aae6eadb8d5989
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Mon Jul 18 13:45:19 2022 -0400

    Test for hyperobject with constructor but no destructor

commit 683ff7fdeb85fc5943c71285c8cf4215f28b7f44
Author: John F. Carr <jfc@mit.edu>
Date:   Mon Jul 18 10:17:13 2022 -0400

    Fix test for trivial destructor

commit cb5dbb6e36d31a3720eb294f28eb459e1e26af91
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Sun Jul 10 14:45:12 2022 -0400

    Merge reducer destructor callback into reduce callback.

commit 1930b5aef735a070dabdf5d1656ccbcfd6fb829f
Author: John F. Carr <jfc@mit.edu>
Date:   Sun Jul 10 14:23:01 2022 -0400

    Visit statment children of HyperobjectType

commit 9ff353d37b34ebc270792588675735e80ebc97af
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jul 10 20:48:53 2022 +0000

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

commit 451ce36119e7547bcd4068976d15483c6cda1d8b
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jul 10 20:46:01 2022 +0000

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

commit 8321ebf8e6e19f46e4ceb48d465c590d9be65067
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jul 10 20:45:24 2022 +0000

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

commit a508e80246f815e447db539e4db81d8992064d9a
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Wed Jul 6 23:48:28 2022 +0000

    [bindings/python] Update diagnostics test.

commit ed514c2530691a5624ef20f4f5b03583e80e69b3
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Jul 6 16:12:01 2022 -0400

    Improve compatibility testing of hyperobject types

commit 42a01ebcdcf8a9ac6db44ed9d5dae644f7d9ac42
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 6 19:33:24 2022 +0000

    Fix a little formatting with clang-format.

commit f2959caf0f419591cbf4b26b3a823df6f02c70f6
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 6 19:22:13 2022 +0000

    [github] Cleanup path.

commit 7d3ffda22243175e0c7b1a52ca8ba42d6c59b0f9
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Wed Jul 6 12:04:08 2022 -0400

    Fix rebuild of hyperobject reference in template expansion

commit 04db56e81f8b7d9684a08a47cf417079bf2ff019
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Jul 6 11:18:59 2022 -0400

    Test of reducer += inside a template expansion

commit f738cbe7884ba00f9b1b4e33793a983889c732cd
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Jul 6 11:14:38 2022 -0400

    Check that llvm.hyper.lookup is called only once

commit 794bda39b9704f541960a1bc11f367f467e4bf62
Author: John F. Carr <jfc@mit.edu>
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 <jfc@mit.edu>
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 <jfc@mit.edu>
Date:   Sun Jul 3 13:33:00 2022 -0400

    Try to unregister reducers the correct number of times

commit c3178cc4a30d5b10844ffc642ec101f41c62187d
Author: John F. Carr <jfc@mit.edu>
Date:   Fri Jul 1 12:04:29 2022 -0400

    XFAIL test with duplicate unregister call

commit 2bbb3e5fdc7bbd88bc7fa27895f3c9f15825b85b
Author: John F. Carr <jfc@mit.edu>
Date:   Wed Jun 29 16:09:34 2022 -0400

    Fix rebuild of hyperobject in using declaration

commit de6d421bb9029fa25e4f2edd0b322556145b7434
Author: John F. Carr <jfc@mit.edu>
Date:   Tue Jun 21 13:57:40 2022 -0400

    Clean up reducer callback order

commit 635399a93aac7cbb7e7a7a76cafc790f23f30817
Author: John F. Carr <jfc@mit.edu>
Date:   Fri Jun 17 08:04:02 2022 -0400

    Stricter type checking of reducer callback

commit 32b2d8cd83676f12099d61a340477b99660fb64d
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Jun 16 16:54:12 2022 -0400

    Handle overloaded function as reducer callback

commit 1ad8fb0ec3f43beaaf9d02788e48dfca2662edf6
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Jun 16 11:01:22 2022 -0400

    Add noundef to expected LLVM IR

commit 61bea1ff3305b0121b912ad44ce5e0355404a0cd
Author: John F. Carr <jfc@mit.edu>
Date:   Thu Jun 16 09:57:52 2022 -0400

    Syntactic hyperobjects

commit 66e55994cb95312f4a25bb48c582cb8f0df70066
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 6 15:28:20 2022 +0000

    [OpenCilkABI] Replace a SmallVector with an array.

commit 89d05d95e4ab7533c4b2526968f0150e8e80e19a
Author: TB Schardl <neboat@mit.edu>
Date:   Wed Jul 6 15:27:43 2022 +0000

    [CilkSanitizer] Remove unused variables.

commit 639dc0f74ca81837f888e146dd329b814ba24d2d
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Jun 30 21:18:09 2022 +0000

    [OpenCilkABI] Adjust diagnostic handling for cleaner error messages.

commit 5a9148a66b7bb8c394a841fbed0b866eaa98ab54
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Jun 30 21:15:34 2022 +0000

    [CudaABI] Resolve compiler warning temporarily.

commit 8cea22dd0f232c533076029988a18b08017a3611
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Jun 24 22:22:44 2022 +0000

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

commit 3b1b87304aef097a88de3e40af110825bcb4e999
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <stelleg@lanl.gov>.

commit 6f01c4f0a5a475ed166c41e8486e97e3ffbfa42c
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Jun 23 17:58:06 2022 +0000

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

commit f66e80d84bebab348805349c443b4d9bb5f11a80
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Mar 24 19:22:06 2022 +0000

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

commit 59b4c1c88f598a5452cd2455851838c0b5d4d347
Author: TB Schardl <neboat@mit.edu>
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 <jfc@mit.edu>
Date:   Fri Mar 11 11:52:24 2022 -0500

    Read __cilkrts_stack_frame alignment from bitcode if available

commit 02012923412b9310c713fa41a55600aaacf94256
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Tue Jun 21 12:49:31 2022 +0000

    [OpenCilkABI] Fix compiler warning about unused variable.

commit cb26ec1ad0e0cd1be88e9e9f99c165ed3493aba0
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Jun 13 11:27:19 2022 +0000

    [Tapir] Remove some uses of getElementType.

commit 6b7df525dafe13bd85ef2dc45e0c20812378041f
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Sun Jun 12 14:36:15 2022 +0000

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

commit 66f1485b58a794d4db9f17fb168f3aa91eb7e9bd
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jun 12 14:34:40 2022 +0000

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

commit 3d8b1e881c1e0d1285f07ddfac99f0898d908b81
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 11 21:06:15 2022 +0000

    [github] Fix GitHub workflows for opencilk-project.

commit 004a118d1f18670af1499720318d4d09c5940c5d
Author: TB Schardl <neboat@mit.edu>
Date:   Sat Jun 11 20:59:23 2022 +0000

    Bug fixes for rebase onto LLVM 14.0.5

commit 9626886e087a11dcfaffb8998499aabfe2855a12
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Mar 10 01:14:28 2022 +0000

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

commit 3a36939d4a5217c21dae4f567972112900bea426
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Mar 7 22:58:48 2022 +0000

    Bug fixes for rebase onto LLVM 13.0.1

commit 269b232fe59a569a8c1fc6294bf30f5752c6fd38
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Wed Feb 16 14:55:52 2022 +0000

    [cmake] Add more dependencies between components.

commit 34504b8abbab440563f728c517900c373fd04b7f
Author: George Stelle <stelleg@lanl.gov>
Date:   Wed Oct 27 09:05:52 2021 -0600

    [cmake] Added IRReader dependency to instrumentation component

commit 20452488ed2428f9f46e8ab6f36776feb23ae955
Author: TB Schardl <neboat@mit.edu>
Date:   Sun Jan 9 00:34:33 2022 +0000

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

commit 755042ce8700e5051cd7fc03289a718824a54357
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <jfc@mit.edu>

commit 1b0608b28fa1954d27bab2859e9cf174d9789da8
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <1577182+ailiop@users.noreply.github.com>
Date:   Tue Sep 7 20:13:03 2021 +0000

    Create issue template for bug reports

commit 463b18d8708ea71b85cebc0b5fe165527cc71fcd
Author: William M. Leiserson <willtor@mit.edu>
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 <willtor@mit.edu>
Date:   Fri Jun 25 15:04:48 2021 -0400

    [Tapir] Update OCaml bindings.

commit 84ac2833abfb2037cc0d74e9a6934a233abf26e3
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Sun Aug 8 22:24:25 2021 -0400

    [GVN] Prevent GVN from splitting critical detach-continue edges.

commit afef9ca56015cd17a667ff1e0e98c8b43bc2a5e4
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Jul 22 21:25:31 2021 +0000

    [StmtCilk] Cleanup implementation of CilkSpawnStmt.

commit 671a5eaf1f53881640c560335e06ff0b9b8c6395
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Thu Jun 3 14:38:08 2021 -0400

    [test/Tapir] Mark regression tests requiring an x86_64 target.

commit fbc80f0d6f86bb924d39073ad04d9584ecbb03dc
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Fri Apr 30 11:43:24 2021 +0000

    [InstCombine] Optimize tests for removing Tapir intrinsics.

commit 79043b03bb7a0c573f8c1048a1bfce6ba1096d13
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Apr 26 12:31:34 2021 +0000

    Bug fixes for rebase onto LLVM 12.0.0

commit a6a7624642aa524ffebf45a64d56278dbddf503f
Author: TB Schardl <neboat@mit.edu>
Date:   Mon Apr 5 13:07:08 2021 +0000

    [LoopUtils] Fix typo in stripmine.enable attribute name.

commit fe52c8f8fecbe1cd0f2e236a4c1c87638df667a9
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Mon Mar 22 03:30:09 2021 +0000

    [CommonArgs] Prevent Cilksan from being linked twice when dynamically linked.

commit 82a1f870afce0225f0e657f3d898e7140907645d
Author: TB Schardl <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
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 <neboat@mit.edu>
Date:   Tue Mar 9 19:24:24 2021 +0000

    Bug fixes for rebase onto LLVM 11.1.0

commit 600300bc4c1c17ba04d2e3dd7da202b37e826c48
Author: TB Schardl <neboat@mit.edu>
Date:   Thu Mar 4 21:08:55 2021 +0000

 …
kadircet added a commit to kadircet/llvm-project that referenced this issue Dec 3, 2024
following ASAN failure is fixed with this patch.
We store cleanups in EvalInfo, which are usually run with certain
ScopeRAII objects.
We can have temporaries in the cleanup stack, backed by CallStackFrame.
If such temporaries aren't destroyed before the enclosing
CallStackFrame, we end up accessing the freed temporary to run the
cleanup.

```
=================================================================
==553356==ERROR: AddressSanitizer: heap-use-after-free on address 0x7c63f05a65b0 at pc 0x561e4add6ae7 bp 0x7fff430f7770 sp 0x7fff430f7768
READ of size 4 at 0x7c63f05a65b0 thread T0
    #0 0x561e4add6ae6 in clang::APValue::operator=(clang::APValue&&) third_party/llvm/llvm-project/clang/lib/AST/APValue.cpp:394:9
    #1 0x561e4b41fd0b in (anonymous namespace)::Cleanup::endLifetime((anonymous namespace)::EvalInfo&, bool) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:749:27
    #2 0x561e4b4d42a7 in (anonymous namespace)::ScopeRAII<((anonymous namespace)::ScopeKind)1>::cleanup((anonymous namespace)::EvalInfo&, bool, unsigned int) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:1449:41
    llvm#3 0x561e4b4246ec in destroy third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:1427:17
    llvm#4 0x561e4b4246ec in ~ScopeRAII third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:1433:9
    llvm#5 0x561e4b4246ec in EvaluateCond((anonymous namespace)::EvalInfo&, clang::VarDecl const*, clang::Expr const*, bool&) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5185:1
    llvm#6 0x561e4b41ea8c in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5555:17
    llvm#7 0x561e4b423755 in EvaluateLoopBody((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5221:24
    llvm#8 0x561e4b41d597 in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5635:28
    llvm#9 0x561e4b41d341 in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5521:28
    llvm#10 0x561e4b40113c in HandleFunctionCall(clang::SourceLocation, clang::FunctionDecl const*, (anonymous namespace)::LValue const*, clang::Expr const*, llvm::ArrayRef<clang::Expr const*>, (anonymous namespace)::CallRef, clang::Stmt const*, (anonymous namespace)::EvalInfo&, clang::APValue&, (anonymous namespace)::LValue const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6520:24
    llvm#11 0x561e4b4c9652 in handleCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8332:10
    llvm#12 0x561e4b4c9652 in VisitCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8132:10
    llvm#13 0x561e4b4c9652 in visitNonBuiltinCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9749:28
    llvm#14 0x561e4b4c9652 in (anonymous namespace)::PointerExprEvaluator::VisitCallExpr(clang::CallExpr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9763:12
    llvm#15 0x561e4b4c3e5b in clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::PointerExprEvaluator, bool>::Visit(clang::Stmt const*) blaze-out/k8-opt-asan/genfiles/third_party/llvm/llvm-project/clang/include/clang/AST/StmtNodes.inc
    llvm#16 0x561e4b3ff820 in EvaluatePointer third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9458:60
    llvm#17 0x561e4b3ff820 in Evaluate(clang::APValue&, (anonymous namespace)::EvalInfo&, clang::Expr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16343:10
    llvm#18 0x561e4b41f204 in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5511:17
    llvm#19 0x561e4b41d341 in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5521:28
    llvm#20 0x561e4b40113c in HandleFunctionCall(clang::SourceLocation, clang::FunctionDecl const*, (anonymous namespace)::LValue const*, clang::Expr const*, llvm::ArrayRef<clang::Expr const*>, (anonymous namespace)::CallRef, clang::Stmt const*, (anonymous namespace)::EvalInfo&, clang::APValue&, (anonymous namespace)::LValue const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6520:24
    llvm#21 0x561e4b4c9652 in handleCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8332:10
    llvm#22 0x561e4b4c9652 in VisitCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8132:10
    llvm#23 0x561e4b4c9652 in visitNonBuiltinCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9749:28
    llvm#24 0x561e4b4c9652 in (anonymous namespace)::PointerExprEvaluator::VisitCallExpr(clang::CallExpr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9763:12
    llvm#25 0x561e4b4c3e5b in clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::PointerExprEvaluator, bool>::Visit(clang::Stmt const*) blaze-out/k8-opt-asan/genfiles/third_party/llvm/llvm-project/clang/include/clang/AST/StmtNodes.inc
    llvm#26 0x561e4b3ff820 in EvaluatePointer third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9458:60
    llvm#27 0x561e4b3ff820 in Evaluate(clang::APValue&, (anonymous namespace)::EvalInfo&, clang::Expr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16343:10
    llvm#28 0x561e4b4ad3c2 in EvaluateAsBooleanCondition third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:2742:8
    llvm#29 0x561e4b4ad3c2 in (anonymous namespace)::IntExprEvaluator::VisitCastExpr(clang::CastExpr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:14877:10
    llvm#30 0x561e4b49f192 in clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::IntExprEvaluator, bool>::Visit(clang::Stmt const*) third_party/llvm/llvm-project/clang/include/clang/AST/StmtVisitor.h
    llvm#31 0x561e4b3ff8af in Evaluate(clang::APValue&, (anonymous namespace)::EvalInfo&, clang::Expr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16339:41
    llvm#32 0x561e4b4a0dd2 in EvaluateAsBooleanCondition third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:2742:8
    llvm#33 0x561e4b4a0dd2 in (anonymous namespace)::IntExprEvaluator::VisitUnaryOperator(clang::UnaryOperator const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:14795:10
    llvm#34 0x561e4b49f0db in clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::IntExprEvaluator, bool>::Visit(clang::Stmt const*) third_party/llvm/llvm-project/clang/include/clang/AST/StmtVisitor.h
    llvm#35 0x561e4b3ff8af in Evaluate(clang::APValue&, (anonymous namespace)::EvalInfo&, clang::Expr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16339:41
    llvm#36 0x561e4b3fbe35 in EvaluateAsRValue((anonymous namespace)::EvalInfo&, clang::Expr const*, clang::APValue&) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16455:8
    llvm#37 0x561e4b3fc278 in clang::Expr::EvaluateForOverflow(clang::ASTContext const&) const third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16903:11
    llvm#38 0x561e4a020e69 in clang::Sema::CheckForIntOverflow(clang::Expr const*) third_party/crosstool/v18/stable/src/libcxx/include/__memory/uninitialized_algorithms.h
    llvm#39 0x561e4a021cd7 in clang::Sema::CheckCompletedExpr(clang::Expr*, clang::SourceLocation, bool) third_party/llvm/llvm-project/clang/lib/Sema/SemaChecking.cpp:12989:5
    llvm#40 0x561e4a4b9d2e in clang::Sema::ActOnFinishFullExpr(clang::Expr*, clang::SourceLocation, bool, bool, bool) third_party/llvm/llvm-project/clang/lib/Sema/SemaExprCXX.cpp:9225:3
    llvm#41 0x561e4a372e20 in MakeFullExpr third_party/llvm/llvm-project/clang/include/clang/Sema/Sema.h:7292:9
    llvm#42 0x561e4a372e20 in clang::Sema::ActOnCondition(clang::Scope*, clang::SourceLocation, clang::Expr*, clang::Sema::ConditionKind, bool) third_party/llvm/llvm-project/clang/lib/Sema/SemaExpr.cpp:20363:26
    llvm#43 0x561e49b5407d in clang::Parser::ParseCXXCondition(clang::ActionResult<clang::Stmt*, true>*, clang::SourceLocation, clang::Sema::ConditionKind, bool, clang::Parser::ForRangeInfo*, bool) third_party/llvm/llvm-project/clang/lib/Parse/ParseExprCXX.cpp:2204:20
    llvm#44 0x561e49c000a8 in clang::Parser::ParseParenExprOrCondition(clang::ActionResult<clang::Stmt*, true>*, clang::Sema::ConditionResult&, clang::SourceLocation, clang::Sema::ConditionKind, clang::SourceLocation&, clang::SourceLocation&) third_party/llvm/llvm-project/clang/lib/Parse/ParseStmt.cpp:1376:12
    llvm#45 0x561e49bf6c2f in clang::Parser::ParseIfStatement(clang::SourceLocation*) third_party/llvm/llvm-project/clang/lib/Parse/ParseStmt.cpp:1587:9
    llvm#46 0x561e49bf2d6d in clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) third_party/llvm/llvm-project/clang/lib/Parse/ParseStmt.cpp:325:12
    llvm#47 0x561e49bf0a6e in clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) third_party/llvm/llvm-project/clang/lib/Parse/ParseStmt.cpp:125:20
    llvm#48 0x561e49bff57d in clang::Parser::ParseCompoundStatementBody(bool) third_party/llvm/llvm-project/clang/lib/Parse/ParseStmt.cpp:1267:11
    llvm#49 0x561e49c0136e in clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) third_party/llvm/llvm-project/clang/lib/Parse/ParseStmt.cpp:2577:21
    llvm#50 0x561e49afa4fd in clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) third_party/llvm/llvm-project/clang/lib/Parse/Parser.cpp:1520:10
    llvm#51 0x561e49ba6e44 in clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) third_party/llvm/llvm-project/clang/lib/Parse/ParseDecl.cpp:2460:17
    llvm#52 0x561e49af8746 in clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) third_party/llvm/llvm-project/clang/lib/Parse/Parser.cpp:1244:10
    llvm#53 0x561e49af79f8 in clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) third_party/llvm/llvm-project/clang/lib/Parse/Parser.cpp:1266:12
    llvm#54 0x561e49af5d96 in clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) third_party/llvm/llvm-project/clang/lib/Parse/Parser.cpp:1069:14
    llvm#55 0x561e49b6c42c in clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:276:7
    llvm#56 0x561e49b6c5d7 in clang::Parser::ParseInnerNamespace(llvm::SmallVector<clang::Parser::InnerNamespaceInfo, 4u> const&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:298:3
    llvm#57 0x561e49b6b7c3 in clang::Parser::ParseNamespace(clang::DeclaratorContext, clang::SourceLocation&, clang::SourceLocation) third_party/llvm/llvm-project/clang/lib/Parse/ParseDeclCXX.cpp:253:3
    llvm#58 0x561e49ba337a in clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) third_party/llvm/llvm-project/clang/lib/Parse/ParseDecl.cpp
    llvm#59 0x561e49af563a in clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) third_party/llvm/llvm-project/clang/lib/Parse/Parser.cpp:985:14
    llvm#60 0x561e49af3779 in clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) third_party/llvm/llvm-project/clang/lib/Parse/Parser.cpp:758:12
    llvm#61 0x561e49aec6ae in clang::ParseAST(clang::Sema&, bool, bool) third_party/llvm/llvm-project/clang/lib/Parse/ParseAST.cpp:171:20
    llvm#62 0x561e496f13ae in clang::ASTFrontendAction::ExecuteAction() third_party/llvm/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1191:3
    llvm#63 0x561e496f0874 in clang::FrontendAction::Execute() third_party/llvm/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1077:8
    llvm#64 0x561e49644511 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) third_party/llvm/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1062:33
    llvm#65 0x561e47ffe1b9 in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) third_party/llvm/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:296:25
    llvm#66 0x561e47fee631 in cc1_main(llvm::ArrayRef<char const*>, char const*, void*) third_party/llvm/llvm-project/clang/tools/driver/cc1_main.cpp:286:15
    llvm#67 0x561e47fe9912 in ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) third_party/llvm/llvm-project/clang/tools/driver/driver.cpp:218:12
    llvm#68 0x561e47fec7e6 in operator() third_party/llvm/llvm-project/clang/tools/driver/driver.cpp:360:14
    llvm#69 0x561e47fec7e6 in int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) third_party/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
    #70 0x561e498bc531 in operator() third_party/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
    llvm#71 0x561e498bc531 in operator() third_party/llvm/llvm-project/clang/lib/Driver/Job.cpp:437:34
    llvm#72 0x561e498bc531 in void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__u::optional<llvm::StringRef>>, std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char>>*, bool*) const::$_0>(long) third_party/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:12
    llvm#73 0x561e4ff969e8 in operator() third_party/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:12
    llvm#74 0x561e4ff969e8 in llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) third_party/llvm/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:426:3
    llvm#75 0x561e498bb331 in clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__u::optional<llvm::StringRef>>, std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char>>*, bool*) const third_party/llvm/llvm-project/clang/lib/Driver/Job.cpp:437:12
    llvm#76 0x561e49860e38 in clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const third_party/llvm/llvm-project/clang/lib/Driver/Compilation.cpp:196:15
    llvm#77 0x561e49861154 in clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__u::pair<int, clang::driver::Command const*>>&, bool) const third_party/llvm/llvm-project/clang/lib/Driver/Compilation.cpp:250:19
    llvm#78 0x561e49886037 in clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__u::pair<int, clang::driver::Command const*>>&) third_party/llvm/llvm-project/clang/lib/Driver/Driver.cpp:1968:5
    llvm#79 0x561e47fe8c7d in clang_main(int, char**, llvm::ToolContext const&) third_party/llvm/llvm-project/clang/tools/driver/driver.cpp:396:21
    llvm#80 0x561e47fe6ae7 in main blaze-out/k8-opt-asan/bin/third_party/llvm/llvm-project/clang/clang-driver.cpp:17:10
    llvm#81 0x7fb3f13c33d3 in __libc_start_main (/usr/grte/v5/lib64/libc.so.6+0x613d3) (BuildId: 9a996398ce14a94560b0c642eb4f6e94)
    llvm#82 0x561e47f0a229 in _start /usr/grte/v5/debug-src/src/csu/../sysdeps/x86_64/start.S:120

0x7c63f05a65b0 is located 48 bytes inside of 104-byte region [0x7c63f05a6580,0x7c63f05a65e8)
freed by thread T0 here:
    #0 0x561e47fe5342 in operator delete(void*, unsigned long) third_party/llvm/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:155:3
    #1 0x561e4b4c2fcc in __libcpp_operator_delete<void *, unsigned long> third_party/crosstool/v18/stable/src/libcxx/include/new:286:3
    #2 0x561e4b4c2fcc in __do_deallocate_handle_size<> third_party/crosstool/v18/stable/src/libcxx/include/new:310:10
    llvm#3 0x561e4b4c2fcc in __libcpp_deallocate third_party/crosstool/v18/stable/src/libcxx/include/new:323:12
    llvm#4 0x561e4b4c2fcc in deallocate third_party/crosstool/v18/stable/src/libcxx/include/__memory/allocator.h:135:7
    llvm#5 0x561e4b4c2fcc in deallocate third_party/crosstool/v18/stable/src/libcxx/include/__memory/allocator_traits.h:313:9
    llvm#6 0x561e4b4c2fcc in std::__u::__tree<std::__u::__value_type<std::__u::pair<void const*, unsigned int>, clang::APValue>, std::__u::__map_value_compare<std::__u::pair<void const*, unsigned int>, std::__u::__value_type<std::__u::pair<void const*, unsigned int>, clang::APValue>, std::__u::less<std::__u::pair<void const*, unsigned int>>, true>, std::__u::allocator<std::__u::__value_type<std::__u::pair<void const*, unsigned int>, clang::APValue>>>::destroy(std::__u::__tree_node<std::__u::__value_type<std::__u::pair<void const*, unsigned int>, clang::APValue>, void*>*) third_party/crosstool/v18/stable/src/libcxx/include/__tree:1549:5
    llvm#7 0x561e4b400340 in ~__tree third_party/crosstool/v18/stable/src/libcxx/include/__tree:1539:3
    llvm#8 0x561e4b400340 in ~map third_party/crosstool/v18/stable/src/libcxx/include/map:1138:112
    llvm#9 0x561e4b400340 in (anonymous namespace)::CallStackFrame::~CallStackFrame() third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:1524:1
    llvm#10 0x561e4b49697b in HandleConstructorCall(clang::Expr const*, (anonymous namespace)::LValue const&, (anonymous namespace)::CallRef, clang::CXXConstructorDecl const*, (anonymous namespace)::EvalInfo&, clang::APValue&) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6742:1
    llvm#11 0x561e4b400cca in HandleConstructorCall(clang::Expr const*, (anonymous namespace)::LValue const&, llvm::ArrayRef<clang::Expr const*>, clang::CXXConstructorDecl const*, (anonymous namespace)::EvalInfo&, clang::APValue&) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6753:10
    llvm#12 0x561e4b45cfae in (anonymous namespace)::RecordExprEvaluator::VisitCXXConstructExpr(clang::CXXConstructExpr const*, clang::QualType) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:10792:10
    llvm#13 0x561e4b45dae7 in clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::RecordExprEvaluator, bool>::Visit(clang::Stmt const*) blaze-out/k8-opt-asan/genfiles/third_party/llvm/llvm-project/clang/include/clang/AST/StmtNodes.inc
    llvm#14 0x561e4b3f963e in EvaluateRecord third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:10917:50
    llvm#15 0x561e4b3f963e in EvaluateInPlace(clang::APValue&, (anonymous namespace)::EvalInfo&, (anonymous namespace)::LValue const&, clang::Expr const*, bool) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16425:14
    llvm#16 0x561e4b3ff0b3 in EvaluateCallArg(clang::ParmVarDecl const*, clang::Expr const*, (anonymous namespace)::CallRef, (anonymous namespace)::EvalInfo&, bool) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6403:8
    llvm#17 0x561e4b440530 in EvaluateArgs(llvm::ArrayRef<clang::Expr const*>, (anonymous namespace)::CallRef, (anonymous namespace)::EvalInfo&, clang::FunctionDecl const*, bool) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6442:10
    llvm#18 0x561e4b4a503e in handleCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8298:12
    llvm#19 0x561e4b4a503e in VisitCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8132:10
    llvm#20 0x561e4b4a503e in (anonymous namespace)::IntExprEvaluator::VisitCallExpr(clang::CallExpr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:12700:33
    llvm#21 0x561e4b49f1a5 in clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::IntExprEvaluator, bool>::Visit(clang::Stmt const*) third_party/llvm/llvm-project/clang/include/clang/AST/StmtVisitor.h
    llvm#22 0x561e4b3ff8af in Evaluate(clang::APValue&, (anonymous namespace)::EvalInfo&, clang::Expr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16339:41
    llvm#23 0x561e4b424658 in EvaluateAsBooleanCondition third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:2742:8
    llvm#24 0x561e4b424658 in EvaluateCond((anonymous namespace)::EvalInfo&, clang::VarDecl const*, clang::Expr const*, bool&) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5182:8
    llvm#25 0x561e4b41ea8c in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5555:17
    llvm#26 0x561e4b423755 in EvaluateLoopBody((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5221:24
    llvm#27 0x561e4b41d597 in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5635:28
    llvm#28 0x561e4b41d341 in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5521:28
    llvm#29 0x561e4b40113c in HandleFunctionCall(clang::SourceLocation, clang::FunctionDecl const*, (anonymous namespace)::LValue const*, clang::Expr const*, llvm::ArrayRef<clang::Expr const*>, (anonymous namespace)::CallRef, clang::Stmt const*, (anonymous namespace)::EvalInfo&, clang::APValue&, (anonymous namespace)::LValue const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6520:24
    llvm#30 0x561e4b4c9652 in handleCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8332:10
    llvm#31 0x561e4b4c9652 in VisitCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8132:10
    llvm#32 0x561e4b4c9652 in visitNonBuiltinCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9749:28
    llvm#33 0x561e4b4c9652 in (anonymous namespace)::PointerExprEvaluator::VisitCallExpr(clang::CallExpr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9763:12
    llvm#34 0x561e4b4c3e5b in clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::PointerExprEvaluator, bool>::Visit(clang::Stmt const*) blaze-out/k8-opt-asan/genfiles/third_party/llvm/llvm-project/clang/include/clang/AST/StmtNodes.inc
    llvm#35 0x561e4b3ff820 in EvaluatePointer third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9458:60
    llvm#36 0x561e4b3ff820 in Evaluate(clang::APValue&, (anonymous namespace)::EvalInfo&, clang::Expr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16343:10
    llvm#37 0x561e4b41f204 in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5511:17
    llvm#38 0x561e4b41d341 in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5521:28
    llvm#39 0x561e4b40113c in HandleFunctionCall(clang::SourceLocation, clang::FunctionDecl const*, (anonymous namespace)::LValue const*, clang::Expr const*, llvm::ArrayRef<clang::Expr const*>, (anonymous namespace)::CallRef, clang::Stmt const*, (anonymous namespace)::EvalInfo&, clang::APValue&, (anonymous namespace)::LValue const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6520:24
    llvm#40 0x561e4b4c9652 in handleCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8332:10
    llvm#41 0x561e4b4c9652 in VisitCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8132:10
    llvm#42 0x561e4b4c9652 in visitNonBuiltinCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9749:28
    llvm#43 0x561e4b4c9652 in (anonymous namespace)::PointerExprEvaluator::VisitCallExpr(clang::CallExpr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9763:12
    llvm#44 0x561e4b4c3e5b in clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::PointerExprEvaluator, bool>::Visit(clang::Stmt const*) blaze-out/k8-opt-asan/genfiles/third_party/llvm/llvm-project/clang/include/clang/AST/StmtNodes.inc
    llvm#45 0x561e4b3ff820 in EvaluatePointer third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9458:60
    llvm#46 0x561e4b3ff820 in Evaluate(clang::APValue&, (anonymous namespace)::EvalInfo&, clang::Expr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16343:10
    llvm#47 0x561e4b4ad3c2 in EvaluateAsBooleanCondition third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:2742:8
    llvm#48 0x561e4b4ad3c2 in (anonymous namespace)::IntExprEvaluator::VisitCastExpr(clang::CastExpr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:14877:10
    llvm#49 0x561e4b49f192 in clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::IntExprEvaluator, bool>::Visit(clang::Stmt const*) third_party/llvm/llvm-project/clang/include/clang/AST/StmtVisitor.h

previously allocated by thread T0 here:
    #0 0x561e47fe46bd in operator new(unsigned long) third_party/llvm/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:86:3
    #1 0x561e4b424d00 in __libcpp_operator_new<unsigned long> third_party/crosstool/v18/stable/src/libcxx/include/new:277:10
    #2 0x561e4b424d00 in __libcpp_allocate third_party/crosstool/v18/stable/src/libcxx/include/new:301:10
    llvm#3 0x561e4b424d00 in allocate third_party/crosstool/v18/stable/src/libcxx/include/__memory/allocator.h:120:32
    llvm#4 0x561e4b424d00 in allocate third_party/crosstool/v18/stable/src/libcxx/include/__memory/allocator_traits.h:281:16
    llvm#5 0x561e4b424d00 in __construct_node<const std::__u::piecewise_construct_t &, std::__u::tuple<std::__u::pair<const void *, unsigned int> &&>, std::__u::tuple<> > third_party/crosstool/v18/stable/src/libcxx/include/__tree:1820:21
    llvm#6 0x561e4b424d00 in std::__u::pair<std::__u::__tree_iterator<std::__u::__value_type<std::__u::pair<void const*, unsigned int>, clang::APValue>, std::__u::__tree_node<std::__u::__value_type<std::__u::pair<void const*, unsigned int>, clang::APValue>, void*>*, long>, bool> std::__u::__tree<std::__u::__value_type<std::__u::pair<void const*, unsigned int>, clang::APValue>, std::__u::__map_value_compare<std::__u::pair<void const*, unsigned int>, std::__u::__value_type<std::__u::pair<void const*, unsigned int>, clang::APValue>, std::__u::less<std::__u::pair<void const*, unsigned int>>, true>, std::__u::allocator<std::__u::__value_type<std::__u::pair<void const*, unsigned int>, clang::APValue>>>::__emplace_unique_key_args<std::__u::pair<void const*, unsigned int>, std::__u::piecewise_construct_t const&, std::__u::tuple<std::__u::pair<void const*, unsigned int>&&>, std::__u::tuple<>>(std::__u::pair<void const*, unsigned int> const&, std::__u::piecewise_construct_t const&, std::__u::tuple<std::__u::pair<void const*, unsigned int>&&>&&, std::__u::tuple<>&&) third_party/crosstool/v18/stable/src/libcxx/include/__tree:1787:25
    llvm#7 0x561e4b424a03 in operator[] third_party/crosstool/v18/stable/src/libcxx/include/map:1531:8
    llvm#8 0x561e4b424a03 in (anonymous namespace)::CallStackFrame::createLocal(clang::APValue::LValueBase, void const*, clang::QualType, (anonymous namespace)::ScopeKind) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:1963:21
    llvm#9 0x561e4b42bd95 in clang::APValue& (anonymous namespace)::CallStackFrame::createTemporary<clang::Expr>(clang::Expr const*, clang::QualType, (anonymous namespace)::ScopeKind, (anonymous namespace)::LValue&) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:1944:10
    llvm#10 0x561e4b3ffd17 in Evaluate(clang::APValue&, (anonymous namespace)::EvalInfo&, clang::Expr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16367:27
    llvm#11 0x561e4b40429c in handleLValueToRValueConversion((anonymous namespace)::EvalInfo&, clang::Expr const*, clang::QualType, (anonymous namespace)::LValue const&, clang::APValue&, bool) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:4518:12
    llvm#12 0x561e4b496e9c in handleTrivialCopy((anonymous namespace)::EvalInfo&, clang::ParmVarDecl const*, clang::Expr const*, clang::APValue&, bool) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6469:10
    llvm#13 0x561e4b494fdd in HandleConstructorCall(clang::Expr const*, (anonymous namespace)::LValue const&, (anonymous namespace)::CallRef, clang::CXXConstructorDecl const*, (anonymous namespace)::EvalInfo&, clang::APValue&) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6582:12
    llvm#14 0x561e4b400cca in HandleConstructorCall(clang::Expr const*, (anonymous namespace)::LValue const&, llvm::ArrayRef<clang::Expr const*>, clang::CXXConstructorDecl const*, (anonymous namespace)::EvalInfo&, clang::APValue&) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6753:10
    llvm#15 0x561e4b45cfae in (anonymous namespace)::RecordExprEvaluator::VisitCXXConstructExpr(clang::CXXConstructExpr const*, clang::QualType) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:10792:10
    llvm#16 0x561e4b45dae7 in clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::RecordExprEvaluator, bool>::Visit(clang::Stmt const*) blaze-out/k8-opt-asan/genfiles/third_party/llvm/llvm-project/clang/include/clang/AST/StmtNodes.inc
    llvm#17 0x561e4b3f963e in EvaluateRecord third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:10917:50
    llvm#18 0x561e4b3f963e in EvaluateInPlace(clang::APValue&, (anonymous namespace)::EvalInfo&, (anonymous namespace)::LValue const&, clang::Expr const*, bool) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16425:14
    llvm#19 0x561e4b3ff0b3 in EvaluateCallArg(clang::ParmVarDecl const*, clang::Expr const*, (anonymous namespace)::CallRef, (anonymous namespace)::EvalInfo&, bool) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6403:8
    llvm#20 0x561e4b440530 in EvaluateArgs(llvm::ArrayRef<clang::Expr const*>, (anonymous namespace)::CallRef, (anonymous namespace)::EvalInfo&, clang::FunctionDecl const*, bool) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6442:10
    llvm#21 0x561e4b4a503e in handleCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8298:12
    llvm#22 0x561e4b4a503e in VisitCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8132:10
    llvm#23 0x561e4b4a503e in (anonymous namespace)::IntExprEvaluator::VisitCallExpr(clang::CallExpr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:12700:33
    llvm#24 0x561e4b49f1a5 in clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::IntExprEvaluator, bool>::Visit(clang::Stmt const*) third_party/llvm/llvm-project/clang/include/clang/AST/StmtVisitor.h
    llvm#25 0x561e4b3ff8af in Evaluate(clang::APValue&, (anonymous namespace)::EvalInfo&, clang::Expr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16339:41
    llvm#26 0x561e4b424658 in EvaluateAsBooleanCondition third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:2742:8
    llvm#27 0x561e4b424658 in EvaluateCond((anonymous namespace)::EvalInfo&, clang::VarDecl const*, clang::Expr const*, bool&) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5182:8
    llvm#28 0x561e4b41ea8c in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5555:17
    llvm#29 0x561e4b423755 in EvaluateLoopBody((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5221:24
    llvm#30 0x561e4b41d597 in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5635:28
    llvm#31 0x561e4b41d341 in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5521:28
    llvm#32 0x561e4b40113c in HandleFunctionCall(clang::SourceLocation, clang::FunctionDecl const*, (anonymous namespace)::LValue const*, clang::Expr const*, llvm::ArrayRef<clang::Expr const*>, (anonymous namespace)::CallRef, clang::Stmt const*, (anonymous namespace)::EvalInfo&, clang::APValue&, (anonymous namespace)::LValue const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6520:24
    llvm#33 0x561e4b4c9652 in handleCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8332:10
    llvm#34 0x561e4b4c9652 in VisitCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8132:10
    llvm#35 0x561e4b4c9652 in visitNonBuiltinCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9749:28
    llvm#36 0x561e4b4c9652 in (anonymous namespace)::PointerExprEvaluator::VisitCallExpr(clang::CallExpr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9763:12
    llvm#37 0x561e4b4c3e5b in clang::StmtVisitorBase<llvm::make_const_ptr, (anonymous namespace)::PointerExprEvaluator, bool>::Visit(clang::Stmt const*) blaze-out/k8-opt-asan/genfiles/third_party/llvm/llvm-project/clang/include/clang/AST/StmtNodes.inc
    llvm#38 0x561e4b3ff820 in EvaluatePointer third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9458:60
    llvm#39 0x561e4b3ff820 in Evaluate(clang::APValue&, (anonymous namespace)::EvalInfo&, clang::Expr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:16343:10
    llvm#40 0x561e4b41f204 in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5511:17
    llvm#41 0x561e4b41d341 in EvaluateStmt((anonymous namespace)::StmtResult&, (anonymous namespace)::EvalInfo&, clang::Stmt const*, clang::SwitchCase const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:5521:28
    llvm#42 0x561e4b40113c in HandleFunctionCall(clang::SourceLocation, clang::FunctionDecl const*, (anonymous namespace)::LValue const*, clang::Expr const*, llvm::ArrayRef<clang::Expr const*>, (anonymous namespace)::CallRef, clang::Stmt const*, (anonymous namespace)::EvalInfo&, clang::APValue&, (anonymous namespace)::LValue const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:6520:24
    llvm#43 0x561e4b4c9652 in handleCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8332:10
    llvm#44 0x561e4b4c9652 in VisitCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:8132:10
    llvm#45 0x561e4b4c9652 in visitNonBuiltinCallExpr third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9749:28
    llvm#46 0x561e4b4c9652 in (anonymous namespace)::PointerExprEvaluator::VisitCallExpr(clang::CallExpr const*) third_party/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp:9763:12
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
llvm-tools All llvm tools that do not have corresponding tag
Projects
None yet
Development

No branches or pull requests

4 participants