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

Contextual profile vogr #9

Open
wants to merge 140 commits into
base: contextualProfile
Choose a base branch
from

Conversation

vogr
Copy link

@vogr vogr commented Jun 17, 2021

I reverted your commit to add mine on your branch ; and then added back the bits from your commit related to compileFlag.

I tried to de-correlate a bit compileFlag from the ContextualProfiling part, I added a CompilationStrategy file.

Also I added what I said I wouldn't add: a hashable struct to represent a function version (id + context) ; it was quite simple in fact and makes working with sets/maps of versions easier...

I also moved the logic to get a string from a context into the Context class so that it could be used in the logging logic too

(Note: I have not tested the compileFlag flag part yet, I hope it 's working the same way as in your commit!)

JanJecmen and others added 30 commits June 17, 2021 15:10
* The state would be recomputed even with the keepSnapshot flag
* (experimental) Disable the lookup cache
Constants which are symbols are interpreted as variable lookups by eval
and therefore must be quoted.
prevent fetch-llvm from re-downloading file
trying to work around CI timeouts and crashes
Try avoiding unnecessary analysis state recomputation
Speculatively inline promise code for builtins in RIR.
if we move an environment over a PushContext we need to update its
context offset field, or it will register itself to the wrong context.
E.g.

    e1 = mkenv context 1
         PushContext ... e2
         Checkpoint ....

if we move `e1` into the checkpoint, then the context must be increased
to 2, otherwise it will override the environment `e2` in the inlined
context.
* Run ASan and UBsan and fix issues

Finally I found out how to run the sanitizers from clang.

This commit fixes a ton of memory leaks, UB and memory errors. The
alignment sanitizer is still broken and thus disabled for now.
…onEnv

ensure that when moving environments the context position is updated
o- and others added 30 commits July 30, 2021 06:32
because we want to target them with match_call_args now
convert uses the to-type to determine the type of the box, but we need
the from type here...
the first checkpoint of the inlinee can be replaced by the last
checkpoint of the caller. This fixes many regressions.
since runtime objects do not have their dtrs called, we cannot use
C++ objects as members...
…vement

try to ensure that speculation gets placed before and not after noop …
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.

4 participants