| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 85449
|
|
|
|
|
|
|
| |
common tail, except when the OptimizeForSize function attribute is present.
Radar 7338114.
llvm-svn: 85441
|
|
|
|
|
|
|
|
|
|
| |
to spill after all, we weren't handling 2-instruction
spill sequences correctly (PPC Altivec). We need to
remove the store in this case. Removing the other
instruction(s) would be goodness but is not needed for
correctness, and isn't done here. 7331562.
llvm-svn: 85437
|
|
|
|
| |
llvm-svn: 85436
|
|
|
|
|
|
| |
I'm going to redo this using the OptimizeForSize function attribute.
llvm-svn: 85426
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
argument is:
ArraySize * ElementSize
ElementSize * ArraySize
ArraySize << log2(ElementSize)
ElementSize << log2(ArraySize)
Refactor isArrayMallocHelper and delete isSafeToGetMallocArraySize, so that there is only 1 copy of the malloc array determining logic.
Update users of getMallocArraySize() to not bother calling isArrayMalloc() as well.
llvm-svn: 85421
|
|
|
|
| |
llvm-svn: 85412
|
|
|
|
|
|
|
| |
opcode and operand with a tab. Check for these instructions in the usual
places.
llvm-svn: 85411
|
|
|
|
| |
llvm-svn: 85410
|
|
|
|
|
|
| |
Thumb2.
llvm-svn: 85406
|
|
|
|
| |
llvm-svn: 85402
|
|
|
|
|
|
|
| |
stuff) to programmatically control the current debug flavor. While
I'm at it, doxygenate Debug.h and clean it up.
llvm-svn: 85395
|
|
|
|
|
|
| |
chains have no users, they can't be predecessors of the condition.
llvm-svn: 85394
|
|
|
|
|
|
| |
the new instructions and leave the old one in place.
llvm-svn: 85393
|
|
|
|
| |
llvm-svn: 85390
|
|
|
|
| |
llvm-svn: 85389
|
|
|
|
|
|
| |
purposes for GVN/DSE.
llvm-svn: 85383
|
|
|
|
|
|
|
|
| |
Checks on Demand algorithm which looks at arbitrary branches instead of loop
iterations. This is GSoC work by Andre Tavares with only editorial changes
applied!
llvm-svn: 85382
|
|
|
|
| |
llvm-svn: 85381
|
|
|
|
|
|
|
|
| |
need
to depend on Ref and ModRef calls within the invariant region.
llvm-svn: 85380
|
|
|
|
|
|
| |
into bytes.
llvm-svn: 85379
|
|
|
|
|
|
| |
purely local for now.
llvm-svn: 85378
|
|
|
|
|
|
|
|
|
|
| |
round trip blockaddress through .ll and .bc files, so add a testcase.
There are still a bunch of places in the optimizer and other places
that need to be updated to work with these constructs, but at least
the basics are in now.
llvm-svn: 85377
|
|
|
|
| |
llvm-svn: 85376
|
|
|
|
|
|
|
|
|
| |
In the new world order, BlockAddress can have a BasicBlock operand.
This doesn't permute much, because if you have a ConstantExpr (or
anything more specific than Constant) we still know the operand has
to be a Constant.
llvm-svn: 85375
|
|
|
|
|
|
|
| |
readonly section if a reference to the containing function
is valid in the readonly section.
llvm-svn: 85370
|
|
|
|
|
|
|
| |
recursive to avoid consuming extraordinary amounts of stack space
when processing tall graphs.
llvm-svn: 85369
|
|
|
|
|
|
|
|
|
| |
$ llvm-as foo.ll -d -disable-output
which reads and prints the .ll file. BC encoding is the
next project. Testcase will go in once that works.
llvm-svn: 85368
|
|
|
|
| |
llvm-svn: 85367
|
|
|
|
|
|
| |
zap BlockAddress values.
llvm-svn: 85366
|
|
|
|
|
|
|
| |
otherwise unhoistable instructions in order to allow the loads
to be hoisted.
llvm-svn: 85364
|
|
|
|
| |
llvm-svn: 85362
|
|
|
|
| |
llvm-svn: 85361
|
|
|
|
|
|
| |
MachineLICM and other things which run before LiveVariables is run.
llvm-svn: 85360
|
|
|
|
|
|
| |
if they have compatible encodings.
llvm-svn: 85359
|
|
|
|
| |
llvm-svn: 85358
|
|
|
|
|
|
|
|
|
|
|
| |
eliminating a use of MVT::Flag, this is needed for an upcoming CodeGen
change.
This unfortunately requires SystemZ to switch to the list-burr
scheduler, in order to handle the physreg defs properly, however
that's what LLVM has available at this time.
llvm-svn: 85357
|
|
|
|
| |
llvm-svn: 85355
|
|
|
|
| |
llvm-svn: 85351
|
|
|
|
|
|
|
| |
untested and there is no way to use it, next up: doing battle
with asmparser.
llvm-svn: 85349
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
use it to control tail merging when there is a tradeoff between performance
and code size. When there is only 1 instruction in the common tail, we have
been merging. That can be good for code size but is a definite loss for
performance. Now we will avoid tail merging in that case when the
optimization level is "Aggressive", i.e., "-O3". Radar 7338114.
Since the IfConversion pass invokes BranchFolding, it too needs to know
the optimization level. Note that I removed the RegisterPass instantiation
for IfConversion because it required a default constructor. If someone
wants to keep that for some reason, we can add a default constructor with
a hard-wired optimization level.
llvm-svn: 85346
|
|
|
|
|
|
| |
colliding with llvm/ADT/ValueMap.h:ValueMap<>.
llvm-svn: 85344
|
|
|
|
| |
llvm-svn: 85341
|
|
|
|
|
|
| |
despite a real interference. This fixes rdar://problem/7157961.
llvm-svn: 85338
|
|
|
|
| |
llvm-svn: 85335
|
|
|
|
| |
llvm-svn: 85334
|
|
|
|
|
|
|
| |
default behind a command line option. This will enable better performance for
vectors on NEON enabled processors.
llvm-svn: 85333
|
|
|
|
| |
llvm-svn: 85332
|
|
|
|
| |
llvm-svn: 85331
|
|
|
|
| |
llvm-svn: 85329
|