- Add AAICVTrackerCallSite
- Move manifest to AAICVTrackerCallSite
- Only register callsite AAs for getters.
Aug 16 2020
Aug 15 2020
Aug 14 2020
actually make it work when multiple check prefixes are provided
Aug 13 2020
Aug 12 2020
This can be closed, right?
Can you add parent revisions for this and maybe other related patches? It will be easier to know the order.
Good parts of this are merged in D85544.
Introduce 2 new AAs
Merge good parts of D85052
At first, I thought it wouldn't be very useful to have AAs for multiple positions since we only interact with the function one.
Now that I actually tried to make it work, turns out it is quiet a nice clean up and makes much more sense.
Aug 11 2020
don't track values in weak functions
Unclear if we still want D85052 to go in before this, since most of the login is replaced with this patch.
- worklist approach
- don't use MBEC explorer
- more tests
Aug 10 2020
IMHO, these few lines don't make much of a difference wrt the size of the patch. Maybe just merge them?
Aug 8 2020
adding more tests
Aug 7 2020
Better commit message.
Will add more tests tomorrow.
Note: I've added D85052 as a parent revision. However this can also be considered as a slight change in approach. If needed, those 2 can be merged together.
Aug 3 2020
lgtm, apart from clang tests. Someone else should take a look as well, though.
cover "maybe written" by another unkown call case and add test for that.
Aug 2 2020
Aug 1 2020
This is still "intra-procedural", correct? Or can it replace across function boundaries too?
We are now able to check if call changes an ICV through function attribute. Follow up should make it possible to get an ICV value for a call.
Jul 31 2020
Jul 19 2020
I see you reverted this twice. Just curious what happened?
Jul 18 2020
Jul 17 2020
Just in case you haven't seen already, clang/test/OpenMP/barrier_codegen.cpp needs to be updated as well.
Jul 16 2020
I inspected the output that opt generates and it makes sense.
also the script's output (included in the patch) also makes sense the.
I will double check everything but this is weird.
File check fails to match the first check line.
I am not sure we can help you much without the actual failure output.
Jul 15 2020
add a test
Jul 12 2020
Jul 11 2020
remove unnecessary flag, fix update_cc_test_checks
Jul 10 2020
fixing the issue with dead uses.
Thanks for figuring this out!
Jul 8 2020
Jul 6 2020
Can you add a test using this option?
Jul 5 2020
Since this is not a small change, I think it would be good if @hoyFB could test if this resolves the issue.
Attributes are going to be decleared outside of the Attributor soon.
Do you mean that there might be other abstract attributes defined outside the AttributorAttributes.cpp ?
As of yesterday, there is an AA outside of AttributorAttributes :). You should rebase.
Jul 4 2020
I think you should split this in 2 patches. One being the refactoring. (this happened to me with the ICV patch)
Jul 3 2020
Jul 2 2020
@sstefan1 could u update the patch? We then send another email out with the list of 5 attributes we will make opt-out for intrinsics. A week or so later, assuming no one objected too much, we'll land it. In the meantime we need to update the target independent ones to opt-out appropriately. I guess my nosync list will catch almost all of them already but we'll have to give it another go as the patch is updated. WDYT?
I was under the impression that the attributes will be made default in another patch. Right now we don't opt out of the default attributes, but none are set to be default yet.
If it is better to do this in this patch, no problem. I can send an email, on Monday maybe?
DisableDefaultAttributes flag instead of opt-out list
Jun 30 2020
On a related note, we might want to consider doing something for pointer/memory handling as well, since that's currently pretty awkward. Most pointer arguments should be nocapture/nofree, but we don't really mark that consistently.
One way to avoid some of the complexity would be to opt-out of everything with a single bit. So if this is set, you don't get any default attributes. Otherwise you get all.
Agreed, that could be another way to go about this. By now, I'm not really sure what is the best out of all the options. What do others think?
Jun 29 2020
For now I've only set IntrNoSync to be default and changed memset to opt-out of IntrNoSync just as an example. Maybe the part where attributes are actually made default should be done in another patch?
Introduction of IsDefault field in IntrinsicProperty as suggested by @nhaehnle.
One more thing, looks like you included only the last change, not the complete diff.
Jun 28 2020
Jun 26 2020
Personally, callsite still sounds more natural in some places, but LGTM.
Jun 25 2020
Jun 24 2020
Jun 23 2020
Sorry this took so long.
- revisit this patch with different implementation