Nikita Popov
fcfc31fffb
[InstCombine] Convert some tests to opaque pointers (NFC)
...
Conversion was performed (without manual fixup) using:
https://gist.github.com/nikic/98357b71fd67756b0f064c9517b62a34
2022-10-28 13:07:30 +02:00
Bjorn Pettersson
acdc419c89
[test] Use -passes=instcombine instead of -instcombine in lots of tests. NFC
...
Another step moving away from the deprecated syntax of specifying
pass pipeline in opt.
Differential Revision: https://reviews.llvm.org/D119081
2022-02-07 14:26:59 +01:00
Arthur Eubanks
1aa02b37e7
Revert "[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions."
...
This reverts commit 1eda5453f2dcc9a9a4b4578fe74163c529974503.
Causes https://crbug.com/1223647 :
Incompatible argument and return types for 'returned' attribute
tail call void @llvm.memset.p0i8.i64(i8* noalias noundef returned writeonly align 1 dereferenceable(255) %arraydecay, i8 0, i64 255, i1 false), !dbg !985
2021-06-24 19:24:34 -07:00
Jonas Paulsson
1eda5453f2
[BuildLibCalls/SimplifyLibCalls] Fix attributes on created CallInst instructions.
...
- When emitting libcalls, do not only pass the calling convention from the
function prototype but also the attributes.
- Do not pass attributes from e.g. libc memcpy to llvm.memcpy.
Review: Reid Kleckner, Eli Friedman, Arthur Eubanks
Differential Revision: https://reviews.llvm.org/D103992
2021-06-24 14:47:24 -05:00
Dávid Bolvanský
cd54c57919
Reland "[Libcalls, Attrs] Annotate libcalls with noundef"
...
Fixed Clang tests.
2021-02-20 06:18:48 +01:00
Dávid Bolvanský
94d034fb86
Revert "[Libcalls, Attrs] Annotate libcalls with noundef"
...
This reverts commit 33b0c63775ce58014c55e285671e3315104a6076. Bots are failing. Some Clang tests need to be updated too.
2021-02-20 04:18:42 +01:00
Dávid Bolvanský
33b0c63775
[Libcalls, Attrs] Annotate libcalls with noundef
...
I think we can use here same logic as for nonnull.
strlen(X) - X must be noundef => valid pointer.
for libcalls with size arg, we add noundef only if size is known and greater than 0 - so pointers must be noundef (valid ones)
Reviewed By: jdoerfert, aqjune
Differential Revision: https://reviews.llvm.org/D95122
2021-02-20 04:10:07 +01:00
David Bolvansky
e80fcf0340
[SimplifyLibCalls] Mark known arguments with nonnull
...
Reviewers: efriedma, jdoerfert
Reviewed By: jdoerfert
Subscribers: ychen, rsmith, joerg, aaron.ballman, lebedev.ri, uenoku, jdoerfert, hfinkel, javed.absar, spatel, dmgreen, llvm-commits
Differential Revision: https://reviews.llvm.org/D53342
llvm-svn: 372091
2019-09-17 09:32:52 +00:00
David Bolvansky
39130314fe
[SimplifyLibCalls] Add dereferenceable bytes from known callsites
...
Summary:
int mm(char *a, char *b) {
return memcmp(a,b,16);
}
Currently:
define dso_local i32 @mm(i8* nocapture readonly %a, i8* nocapture readonly %b) local_unnamed_addr #1 {
entry:
%call = tail call i32 @memcmp(i8* %a, i8* %b, i64 16)
ret i32 %call
}
After patch:
define dso_local i32 @mm(i8* nocapture readonly %a, i8* nocapture readonly %b) local_unnamed_addr #1 {
entry:
%call = tail call i32 @memcmp(i8* dereferenceable(16) %a, i8* dereferenceable(16) %b, i64 16)
ret i32 %call
}
Reviewers: jdoerfert, efriedma
Reviewed By: jdoerfert
Subscribers: javed.absar, spatel, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66079
llvm-svn: 368657
2019-08-13 09:11:49 +00:00
Eric Christopher
cee313d288
Revert "Temporarily Revert "Add basic loop fusion pass.""
...
The reversion apparently deleted the test/Transforms directory.
Will be re-reverting again.
llvm-svn: 358552
2019-04-17 04:52:47 +00:00
Eric Christopher
a863435128
Temporarily Revert "Add basic loop fusion pass."
...
As it's causing some bot failures (and per request from kbarton).
This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda.
llvm-svn: 358546
2019-04-17 02:12:23 +00:00
Sam Parker
214f7bf5cc
Enable simplify libcalls for ARM PCS
...
Teach SimplifyLibcalls that in can treat functions annotated with
apcs, aapcs or aapcs_vfp like normal C functions if they only take
and return integer or pointer values, and the target is not iOS.
Differential Revision: https://reviews.llvm.org/D24453
llvm-svn: 281322
2016-09-13 12:10:14 +00:00