[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-04-02 Thread Hendrik Greving via Phabricator via cfe-commits
hgreving added a comment. In D74183#1942262 , @nikic wrote: > In D74183#1941741 , @efriedma wrote: > > > If it's just tramp3d-v4, I'm not that concerned... but that's a weird > > result. On x86 in particular,

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-03-26 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added subscribers: hfinkel, jdoerfert. efriedma added a comment. That makes sense. I would slightly lean towards not generating the assumptions, given the current state of assumptions and the likely benefit in this context. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-03-26 Thread John McCall via Phabricator via cfe-commits
rjmccall added a comment. Yeah, if emitting alignment assumptions in inlining is causing regressions when frontends provide better information, those assumptions need to be reverted until they can be fixed. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-03-26 Thread Nikita Popov via Phabricator via cfe-commits
nikic added a comment. In D74183#1941741 , @efriedma wrote: > If it's just tramp3d-v4, I'm not that concerned... but that's a weird result. > On x86 in particular, alignment markings have almost no effect on > optimization, generally. I've just

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-03-25 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a comment. If it's just tramp3d-v4, I'm not that concerned... but that's a weird result. On x86 in particular, alignment markings have almost no effect on optimization, generally. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-03-24 Thread Nikita Popov via Phabricator via cfe-commits
nikic added a comment. For the record, this change caused an 1.5% compile-time regression on tramp3d-v4 (http://llvm-compile-time-tracker.com/compare.php?from=43a6d285bfead762ac472a6e62beedc9f88bce89=de98cf92e301ab559a7417f1eca5cfa53624c9e1=instructions). As there was also a 0.9% increase in

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-03-23 Thread John McCall via Phabricator via cfe-commits
rjmccall added a comment. In D74183#1937426 , @efriedma wrote: > I think we should remove the LangRef rule that says "sret" pointers have to > be dereferenceable/naturally aligned, and let the frontend add explicit > aligned/dereferenceable markings

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-03-23 Thread Eli Friedman via Phabricator via cfe-commits
efriedma added a comment. I think we should remove the LangRef rule that says "sret" pointers have to be dereferenceable/naturally aligned, and let the frontend add explicit aligned/dereferenceable markings where appropriate. (At that point, sret has no target-independent meaning; it's just

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-03-23 Thread John McCall via Phabricator via cfe-commits
rjmccall accepted this revision. rjmccall added a comment. This revision is now accepted and ready to land. Herald added a subscriber: wuzish. I'm just going to assume the test changes look good; thank you for taking the time to do this. CHANGES SINCE LAST ACTION

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-02-07 Thread John McCall via Phabricator via cfe-commits
rjmccall added inline comments. Comment at: clang/lib/CodeGen/CGCall.cpp:2077 +getDataLayout().getABITypeAlignment(getTypes().ConvertType(RetTy))) + SRETAttrs.addAlignmentAttr(Align); ArgAttrs[IRFunctionArgs.getSRetArgNo()] = rjmccall wrote: >

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-02-07 Thread Duncan P. N. Exon Smith via Phabricator via cfe-commits
dexonsmith added inline comments. Comment at: clang/lib/CodeGen/CGCall.cpp:2077 +getDataLayout().getABITypeAlignment(getTypes().ConvertType(RetTy))) + SRETAttrs.addAlignmentAttr(Align); ArgAttrs[IRFunctionArgs.getSRetArgNo()] = rjmccall wrote:

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-02-07 Thread John McCall via Phabricator via cfe-commits
rjmccall added inline comments. Comment at: clang/lib/CodeGen/CGCall.cpp:2077 +getDataLayout().getABITypeAlignment(getTypes().ConvertType(RetTy))) + SRETAttrs.addAlignmentAttr(Align); ArgAttrs[IRFunctionArgs.getSRetArgNo()] = dexonsmith wrote:

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-02-07 Thread Duncan P. N. Exon Smith via Phabricator via cfe-commits
dexonsmith added inline comments. Comment at: clang/lib/CodeGen/CGCall.cpp:2077 +getDataLayout().getABITypeAlignment(getTypes().ConvertType(RetTy))) + SRETAttrs.addAlignmentAttr(Align); ArgAttrs[IRFunctionArgs.getSRetArgNo()] = scanon wrote: >

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-02-07 Thread Steve Canon via Phabricator via cfe-commits
scanon added inline comments. Comment at: clang/lib/CodeGen/CGCall.cpp:2077 +getDataLayout().getABITypeAlignment(getTypes().ConvertType(RetTy))) + SRETAttrs.addAlignmentAttr(Align); ArgAttrs[IRFunctionArgs.getSRetArgNo()] = rjmccall wrote: >

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-02-06 Thread John McCall via Phabricator via cfe-commits
rjmccall added inline comments. Comment at: clang/lib/CodeGen/CGCall.cpp:2077 +getDataLayout().getABITypeAlignment(getTypes().ConvertType(RetTy))) + SRETAttrs.addAlignmentAttr(Align); ArgAttrs[IRFunctionArgs.getSRetArgNo()] = Why only when

[PATCH] D74183: [IRGen] Add an alignment attribute to underaligned sret parameters

2020-02-06 Thread Erik Pilkington via Phabricator via cfe-commits
erik.pilkington created this revision. erik.pilkington added reviewers: rjmccall, scanon. Herald added subscribers: ributzka, dexonsmith, jkorous. Without this, LLVM will assume the pointer has the type's alignment, which is undefined if the value is actually underaligned. rdar://58316406