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

Enzyme rust #12

Merged
merged 1,344 commits into from
Mar 7, 2023
Merged

Enzyme rust #12

merged 1,344 commits into from
Mar 7, 2023

Conversation

ZuseZ4
Copy link
Member

@ZuseZ4 ZuseZ4 commented Mar 7, 2023

@bytesnake requires purging the build dir once, but gives us all the enzyme bugfixes from the last year.
Also fixes some bugs I ran into.

ZuseZ4 and others added 30 commits May 28, 2022 02:56
* closes rust-lang#657

* Handle vector case

* adding test

* remove test until further bugfixes
* Add get type analyzer method to C API

* Add inverted phi type handler
* Primal activity analysis fix

* bugfix

* Fix tests
* Fix constant instruction binop in forward mode

* Fix llvm7
The `@_ZN9__gnu_cxx12__to_xstringINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEET_PFiPT0_mPKS8_P13__va_list_tagEmSB_z`
one seems strange to me, but based on my libstdc++ usage probably ok. 

How about generally getting (slowly) rid of this list by calling 
`std::string llvm::demangle(const std::string &MangledName)`
in `llvm/Demangle/Demangle.h` for every function missing a definition?
If it succeeds we can still match the beginning, but using the demangled name 
it should end up in a shorter comparison list and we should miss less functions. 
I didn't run into a single fn which I couldn't demangle with llvm-c++filt, so I guess it's valid to still panic then.
* move inactive fn-matching to demangled names

* fix clang-format

* inactive alloc

* only demangle LLVM >= 9
…#608)

* Investigate memory error from lstm

* Initial tablegen

* More tblgen

* cmake

* Add first call emission

* Working atan2 rev

* Handle calls to self

* Add same type func

* Fix lower LLVM build

* Remove prints

* Cleanup tablegen

* Cleanup

* LLVM-14 support

* fix formating

* fix llvm-9/10 build

* fix llvm-7/8 build

* fix llvm7-10 test failures

* test Julia cmake fix

* add missing tg dependency

* fix cmake for older versions

Co-authored-by: Manuel Drehwald <git@manuel.drehwald.info>
Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com>
tgymnich and others added 26 commits February 12, 2023 05:22
* use getCalledFunction
* fix insert choice

* fix tests
* simplify trace interface

* move trace interface into separate header

* replace strings with constexpr

* move sampe_func detection into TraceInterface
* Preserve invariant group properties on unwrap

* fix remat bug
Both projects have moved, so point to their current location.
* Remove using namespace llvm from header files

* Move implementation out of headers
* Move custom handler to preserve nvvm

* Add test

* fix

* fix llvm tests

* fix tests
* Simplify intrinsic activity

* Add to list
…ec0e432e'

git-subtree-dir: src/tools/enzyme
git-subtree-mainline: cbe696f
git-subtree-split: 74122a3
@ZuseZ4
Copy link
Member Author

ZuseZ4 commented Mar 7, 2023

Oh and subtrees are partly broken (git issue), so I just deleted and re-added the whole subtree, as I've already done it in the past. sry.

@ZuseZ4 ZuseZ4 merged commit 467171d into master Mar 7, 2023
@ZuseZ4 ZuseZ4 deleted the enzyme-rust branch March 7, 2023 00:50
@ZuseZ4 ZuseZ4 restored the enzyme-rust branch March 7, 2023 00:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants