|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | basic blocks.
- Calling getUser in a loop is much more expensive than iterating over a few instructions.
- Use it instead of the open-coded loop in AddrModeMatcher.
- 5% speedup on ARMDisassembler.cpp Release builds.
llvm-svn: 145810 | 
| | 
| 
| 
| | llvm-svn: 135375 | 
| | 
| 
| 
| 
| 
| 
| | new gcc warning that complains on self-assignments and
self-initializations.
llvm-svn: 122458 | 
| | 
| 
| 
| 
| 
| | basic logic, added initial platform support.
llvm-svn: 117667 | 
| | 
| 
| 
| | llvm-svn: 113766 | 
| | 
| 
| 
| | llvm-svn: 107269 | 
| | 
| 
| 
| | llvm-svn: 107003 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | for an "i" constraint should get lowered; PR 6309.  While
this argument was passed around a lot, this is the only
place it was used, so it goes away from a lot of other
places.
llvm-svn: 106893 | 
| | 
| 
| 
| | llvm-svn: 106824 | 
| | 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| | llvm-svn: 100862 | 
| | 
| 
| 
| 
| 
| | this way
llvm-svn: 99394 | 
| | 
| 
| 
| 
| 
| 
| | and T->isPointerTy().  Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344 | 
| | 
| 
| 
| | llvm-svn: 92605 | 
| | 
| 
| 
| 
| 
| | update all code that this affects.
llvm-svn: 79830 | 
| | 
| 
| 
| | llvm-svn: 78809 | 
| | 
| 
| 
| | llvm-svn: 77033 | 
| | 
| 
| 
| | llvm-svn: 76702 | 
| | 
| 
| 
| | llvm-svn: 75393 | 
| | 
| 
| 
| | llvm-svn: 75255 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | instructions. It attempts to create high-level multi-operand GEPs,
though in cases where this isn't possible it falls back to casting
the pointer to i8* and emitting a GEP with that. Using GEP instructions
instead of ptrtoint+arithmetic+inttoptr helps pointer analyses that
don't use ScalarEvolution, such as BasicAliasAnalysis.
Also, make the AddrModeMatcher more aggressive in handling GEPs.
Previously it assumed that operand 0 of a GEP would require a register
in almost all cases. It now does extra checking and can do more
matching if operand 0 of the GEP is foldable. This fixes a problem
that was exposed by SCEVExpander using GEPs.
llvm-svn: 72093 | 
| | 
| 
| 
| 
| 
| 
| | will make it more obvious what it represents, and stop
it being confused with the StoreSize.
llvm-svn: 71349 | 
| | 
| 
| 
| | llvm-svn: 65620 | 
|  | other passes, e.g. loop strength reduction.
llvm-svn: 65134 |