| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 53613
|
| |
|
|
|
|
|
|
| |
allowed to canonicalize return values).
Add a test that checks if return value and function attributes are not removed.
llvm-svn: 53612
|
| |
|
|
| |
llvm-svn: 53611
|
| |
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 53605
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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 linker may not be able to match LinkOnce definition from one module with an exteranl reference from other module.
llvm-svn: 53580
|
| |
|
|
| |
llvm-svn: 53574
|
| |
|
|
|
|
| |
Patch by Nicolas Capens!
llvm-svn: 53571
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 53561
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
(replacing a function with a global). This is needed when building
llvm itself with LTO on darwin, because of the EXPLICIT_SYMBOL hack
in lib/system/DynamicLibrary.cpp.
Implementation of linking the other way will need to wait for a
cleanup of LinkFunctionProtos.
llvm-svn: 53546
|
| |
|
|
| |
llvm-svn: 53545
|
| |
|
|
|
|
| |
PR2317.
llvm-svn: 53544
|
| |
|
|
|
|
|
|
|
| |
when presented with a constant expr.
If ConstantExpr::getV[IF]Cmp to work when ConstantFoldCompareInstruction
returns an undef or constant expr.
llvm-svn: 53541
|
| |
|
|
|
|
|
| |
a hack around the fact that we don't represent the CFG correctly for sj/lj.
It fixes PR2486.
llvm-svn: 53540
|
| |
|
|
| |
llvm-svn: 53538
|
| |
|
|
| |
llvm-svn: 53537
|
| |
|
|
| |
llvm-svn: 53536
|
| |
|
|
| |
llvm-svn: 53535
|