| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
and AssertSext. Needed when passing huge integer
parameters with the zeroext or signext attributes.
llvm-svn: 53684
|
| |
|
|
| |
llvm-svn: 53681
|
| |
|
|
| |
llvm-svn: 53680
|
| |
|
|
|
|
|
| |
FindInsertedValue, it now performs a number of simple transformations that
should result in the same effect when applied iteratively.
llvm-svn: 53673
|
| |
|
|
|
|
|
|
| |
While this is not a wonderful organizing principle, it
does make it easy to find routines, and clear where to
insert new ones.
llvm-svn: 53672
|
| |
|
|
| |
llvm-svn: 53671
|
| |
|
|
|
|
|
|
| |
also use *idx_begin in the same expression, giving unpredictable results.
This fixes this bug: http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-July/015877.html
llvm-svn: 53670
|
| |
|
|
| |
llvm-svn: 53666
|
| |
|
|
| |
llvm-svn: 53661
|
| |
|
|
|
|
| |
- table base.
llvm-svn: 53660
|
| |
|
|
| |
llvm-svn: 53639
|
| |
|
|
| |
llvm-svn: 53636
|
| |
|
|
|
|
|
| |
just use the AllNodes order, which is at least relatively stable
across runs.
llvm-svn: 53632
|
| |
|
|
| |
llvm-svn: 53627
|
| |
|
|
| |
llvm-svn: 53616
|
| |
|
|
|
|
| |
where possible. This allows local PRE to be more aggressive.
llvm-svn: 53615
|
| |
|
|
| |
llvm-svn: 53613
|
| |
|
|
|
|
| |
again canonicalizes {i32} into i32 and {} into void.
llvm-svn: 53610
|
| |
|
|
|
|
|
|
|
|
|
| |
return value as a whole in deadargelim is really not needed now that we simply
rebuild the old return value and actually prevents some canonicalization from
taking place.
This revert stops deadargelim from changing {i32} into i32 for now, but I'll
fix that next.
llvm-svn: 53609
|
| |
|
|
|
|
|
|
|
|
|
|
| |
return values that are still (partially) live. Instead of updating all uses of
a call instruction after removing some elements, it now just rebuilds the
original struct (With undef gaps where the unused values were) and leaves it to
instcombine to clean this up.
The added testcase still fails currently, but this is due to instcombine which
isn't good enough yet. I will fix that part next.
llvm-svn: 53608
|
| |
|
|
| |
llvm-svn: 53607
|
| |
|
|
|
|
|
|
|
|
|
| |
only the liveness of partial return values (for functions returning a struct).
This is more explicit to prevent unwanted changes in the return value.
In particular, deadargelim now canonicalizes a function returning {i32} to
returning i32 and {} to void, if the struct returned is not used in its
entirety, but only the single element is used.
llvm-svn: 53606
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In LegalizeDAG the value is zero-extended to
the new type before byte swapping. It doesn't
matter how the extension is done since the new
bits are shifted off anyway after the swap, so
extend by any old rubbish bits. This results
in the final assembler for the testcase being
one line shorter.
llvm-svn: 53604
|
| |
|
|
| |
llvm-svn: 53603
|
| |
|
|
|
|
| |
No change in functionality.
llvm-svn: 53602
|
| |
|
|
|
|
|
| |
and return values live for those functions. This doesn't change anything yet,
but prepares for the coming commits.
llvm-svn: 53601
|
| |
|
|
| |
llvm-svn: 53600
|
| |
|
|
|
|
| |
RetOrArg::getDescription() as const.
llvm-svn: 53599
|
| |
|
|
| |
llvm-svn: 53598
|
| |
|
|
| |
llvm-svn: 53592
|
| |
|
|
|
|
| |
method, to slightly simplify control flow.
llvm-svn: 53591
|
| |
|
|
|
|
| |
alignment
llvm-svn: 53590
|
| |
|
|
|
|
| |
I swear that didn't show up in svn diff...
llvm-svn: 53587
|
| |
|
|
| |
llvm-svn: 53586
|
| |
|
|
| |
llvm-svn: 53585
|
| |
|
|
|
|
|
| |
the BB member to the current basic block after emitting
instructions.
llvm-svn: 53567
|
| |
|
|
| |
llvm-svn: 53564
|
| |
|
|
|
|
|
| |
don't have value names, so use print instead of getName() to get a
useful string.
llvm-svn: 53563
|
| |
|
|
| |
llvm-svn: 53562
|
| |
|
|
|
|
| |
Remove support for this.
llvm-svn: 53559
|
| |
|
|
|
|
| |
non-power-of-two vectors.
llvm-svn: 53558
|
| |
|
|
| |
llvm-svn: 53557
|
| |
|
|
|
|
|
|
| |
than the vector element type. Don't forget to
handle this when the insertion index is not a
constant.
llvm-svn: 53556
|
| |
|
|
|
|
|
|
|
|
| |
extending load of a vector. Handle this case when
splitting vector loads. I'm not completely sure
what is supposed to happen, but I think it means
hi should be set to undef. LegalizeDAG does not
consider this case.
llvm-svn: 53555
|
| |
|
|
|
|
|
|
| |
stores of one-element vectors. Also, neaten the
handling of INSERT_VECTOR_ELT when the inserted
type is larger than the vector element type.
llvm-svn: 53554
|
| |
|
|
|
|
|
|
|
|
| |
are used for passing huge immediates in inline ASM
from the front-end straight down to the ASM writer.
Of course this is a hack, but it is simple, limited
in scope, works in practice, and is what LegalizeDAG
does.
llvm-svn: 53553
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Added HasABICall and HasAbsoluteCall (equivalent to gcc -mabicall and
-mno-shared). HasAbsoluteCall is not implemented but HasABICall is the
default for o32 ABI. Now, both should help into a more accurate
relocation types implementation.
Added IsLinux is needed to choose between asm directives.
Instruction name strings cleanup.
AsmPrinter improved.
llvm-svn: 53551
|
| |
|
|
| |
llvm-svn: 53549
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the second half of link-global-to-func.ll and causes some minor changes in
messages.
There are two TODOs here. First, this causes a regression in
2008-07-06-AliasWeakDest.ll, which is now failing (so I xfailed it). Anton,
I would really appreciate it if you could take a look at this. It should be
a matter of adding proper alias support to GetLinkageResult, and was probably
already a latent bug that would manifest with globals.
The second todo is to reimplement LinkAlias in the same pattern as
function and global linking. This should be pretty straight-forward for
someone who knows aliases, but isn't a requirement for correctness.
llvm-svn: 53548
|
| |
|
|
|
|
| |
internal linkage.
llvm-svn: 53547
|