| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 119908
|
|
|
|
|
|
| |
saying "it would be bad", give an example of what is going on.
llvm-svn: 119695
|
|
|
|
|
|
|
|
|
|
|
|
| |
refusing to optimize two memcpy's like this:
copy A <- B
copy C <- A
if it couldn't prove that noalias(B,C). We can eliminate
the copy by producing a memmove instead of memcpy.
llvm-svn: 119694
|
|
|
|
|
|
| |
source and dest are known to not overlap.
llvm-svn: 119692
|
|
|
|
|
|
|
|
|
| |
check:
there is no need to check to see if the source and dest of a memcpy are noalias,
behavior is undefined if not.
llvm-svn: 119691
|
|
|
|
|
|
| |
out of processMemCpy into its own function.
llvm-svn: 119687
|
|
|
|
|
|
| |
uint64_t, plus fixes for places I missed before.
llvm-svn: 116875
|
|
|
|
| |
llvm-svn: 116858
|
|
|
|
|
|
| |
use uint64_t.
llvm-svn: 116839
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
exposes an initializeMyPassFunction(), which
must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize
the pass's dependencies.
Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the
CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
before parsing commandline arguments.
I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems
with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass
registration/creation, please send the testcase to me directly.
llvm-svn: 116820
|
|
|
|
| |
llvm-svn: 116815
|
|
|
|
|
|
|
|
| |
when the call slot
forwarding is implemented with a load/store pair rather than a memcpy.
llvm-svn: 116637
|
|
|
|
|
|
|
|
|
| |
perform initialization without static constructors AND without explicit initialization
by the client. For the moment, passes are required to initialize both their
(potential) dependencies and any passes they preserve. I hope to be able to relax
the latter requirement in the future.
llvm-svn: 116334
|
|
|
|
| |
llvm-svn: 115996
|
|
|
|
|
|
|
|
| |
memcpy alignment is the minimum of the incoming alignments.
Fixes PR 8266.
llvm-svn: 115305
|
|
|
|
|
|
|
|
|
| |
of the source, not the original alignment since it may no longer
be valid.
Fixes rdar://8400094
llvm-svn: 114781
|
|
|
|
| |
llvm-svn: 110460
|
|
|
|
| |
llvm-svn: 110410
|
|
|
|
|
|
|
|
| |
address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
|
|
|
|
|
| |
from the tree
llvm-svn: 109687
|
|
|
|
| |
llvm-svn: 109510
|
|
|
|
| |
llvm-svn: 109509
|
|
|
|
| |
llvm-svn: 109502
|
|
|
|
| |
llvm-svn: 109092
|
|
|
|
| |
llvm-svn: 109045
|
|
|
|
| |
llvm-svn: 106542
|
|
|
|
| |
llvm-svn: 101899
|
|
|
|
|
|
|
| |
Probably the best way to know that all getOperand() calls have been handled
is to replace that API instead of updating.
llvm-svn: 101579
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with a fix for self-hosting
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101465
|
|
|
|
| |
llvm-svn: 101434
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with a fix
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101397
|
|
|
|
| |
llvm-svn: 101368
|
|
|
|
|
|
|
|
|
|
| |
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101364
|
|
|
|
|
|
|
| |
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
llvm-svn: 100304
|
|
|
|
| |
llvm-svn: 100199
|
|
|
|
|
|
|
| |
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
llvm-svn: 100191
|
|
|
|
| |
llvm-svn: 99948
|
|
|
|
|
|
|
|
|
| |
memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
A update of langref will occur in a subsequent checkin.
llvm-svn: 99928
|
|
|
|
|
|
| |
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96223
|
|
|
|
| |
llvm-svn: 92760
|
|
|
|
|
|
| |
non-zero trip count. Use SmallVector's pop_back_val().
llvm-svn: 92734
|
|
|
|
| |
llvm-svn: 92624
|
|
|
|
|
|
|
| |
where the element is of a basic builtin type. For example, to get
an i8* use getInt8PtrTy.
llvm-svn: 83379
|
|
|
|
|
|
|
|
| |
the new predicates I added) instead of going through a context and doing a
pointer comparison. Besides being cheaper, this allows a smart compiler
to turn the if sequence into a switch.
llvm-svn: 83297
|
|
|
|
|
|
| |
memset region to the alignment of the new start address.
llvm-svn: 81810
|
|
|
|
|
|
|
|
| |
context for the newly created operations.
Patch by Jakub Staszak!
llvm-svn: 81175
|
|
|
|
|
|
| |
memcpy calls.
llvm-svn: 80915
|
|
|
|
| |
llvm-svn: 80766
|
|
|
|
|
|
|
| |
don't alias. Remove an old and poorly reduced testcase that fails
with this transform for reasons unrelated to the original test.
llvm-svn: 80693
|
|
|
|
| |
llvm-svn: 80682
|