Commits

Show all
Author Commit Message Labels Comments Date
Dan Gohman
TargetAsmInfo::SectionForGlobal showed up in a profile. Simplify it a little.
Tags
checker/checker-62
Dan Gohman
SelectionDAG::AssignNodeIds is unused.
Tags
checker-61
Dan Gohman
Don't sort SDNodes by their addresses in SelectionDAG::dump. Instead, just use the AllNodes order, which is at least relatively stable across runs.
Owen Anderson
Revert this, as it seems to still be broken.
Owen Anderson
Enable local PRE by default.
Tags
checker/checker-61
Owen Anderson
Have GVN do a pre-pass over the CFG that folds away unconditional branches where possible. This allows local PRE to be more aggressive.
matthijs
XFAIL the multdeadretval test for now, I will be fixing instcombine to make it work again tomorrow.
Duncan Sands
LegalizeTypes support for fabs on ppc long double.
matthijs
Remove a few tests which no longer hold for deadargelim (since it is now allowed to canonicalize return values). Add a test that checks if return value and function attributes are not removed.
matthijs
Add a testcase for the canonicalizations now performed by deadargelim.
matthijs
Allow deadargelim to change return types even though now values were dead. This again canonicalizes {i32} into i32 and {} into void.
matthijs
Revert r53606. It turns out that explicitely tracking the liveness of the 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.
matthijs
Make deadargelim a bit less smart, so it doesn't choke on nested structs as 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.
matthijs
Don't use isa when we can reuse a previous dyn_cast.
matthijs
Make DeadArgElim keep liveness of the return value as a whole in addition to 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.
matthijs
Fix typo.
Duncan Sands
LegalizeTypes support for promotion of bswap. 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.
Duncan Sands
LegalizeTypes support for promotion of SIGN_EXTEND_INREG.
Duncan Sands
Reorder the integer promotion methods alphabetically. No change in functionality.
matthijs
Let DAE keep a list of live functions, instead of simply marking all arguments and return values live for those functions. This doesn't change anything yet, but prepares for the coming commits.
matthijs
Split DAE::MarkLive into MarkLive and PropagateLiveness.
matthijs
Pass around const RetOrArg references instead of copying values. Also, mark RetOrArg::getDescription() as const.
matthijs
Simplify debug code by using RetOrArg::getDescription().
matthijs
Fix indentation (intentionally left out of the previous commit).
matthijs
Move the deadargelim code for intrinsically alive functions into its own method, to slightly simplify control flow.
Mon P Wang
Fixed potential bug if the source and target of a bit convert have different alignment
Nick Lewycky
Correct this inversion! I swear that didn't show up in svn diff...
Nick Lewycky
Fix up comments.
bcardosolopes
Fixed call stack alignment. Improved AsmPrinter alignment issues.
Devang Patel
LinkOnce definitions have default scope, like weak definitions. Otherwise, the linker may not be able to match LinkOnce definition from one module with an exteranl reference from other module.
  1. Prev
  2. Next