| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Moving toward a uniform style of pass definition to allow easier target configuration.
Globally declare Pass ID.
Globally declare pass initializer.
Use INITIALIZE_PASS consistently.
Add a call to the initializer from CodeGen.cpp.
Remove redundant "createPass" functions and "getPassName" methods.
While cleaning up declarations, cleaned up comments (sorry for large diff).
llvm-svn: 150100
|
|
|
|
| |
llvm-svn: 150091
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generator to it. For non-bundle instructions, these behave exactly the same
as the MC layer API.
For properties like mayLoad / mayStore, look into the bundle and if any of the
bundled instructions has the property it would return true.
For properties like isPredicable, only return true if *all* of the bundled
instructions have the property.
For properties like canFoldAsLoad, isCompare, conservatively return false for
bundles.
llvm-svn: 146026
|
|
|
|
|
|
|
|
|
| |
1. Added opcode BUNDLE
2. Taught MachineInstr class to deal with bundled MIs
3. Changed MachineBasicBlock iterator to skip over bundled MIs; added an iterator to walk all the MIs
4. Taught MachineBasicBlock methods about bundled MIs
llvm-svn: 145975
|
|
|
|
| |
llvm-svn: 137184
|
|
|
|
|
|
| |
HasIndirectbr variable to be just that. No functionality change.
llvm-svn: 134371
|
|
|
|
| |
llvm-svn: 134370
|
|
|
|
|
|
|
|
| |
sink them into MC layer.
- Added MCInstrInfo, which captures the tablegen generated static data. Chang
TargetInstrInfo so it's based off MCInstrInfo.
llvm-svn: 134021
|
|
|
|
| |
llvm-svn: 133798
|
|
|
|
|
|
| |
we cannot duplicate to every predecessor.
llvm-svn: 133797
|
|
|
|
| |
llvm-svn: 133793
|
|
|
|
|
|
|
|
|
|
| |
register allocation if it has a indirectbr or if we can duplicate it to
every predecessor.
This fixes the SingleSource/Benchmarks/Shootout-C++/matrix.cpp regression but
keeps the previous improvements to sunspider.
llvm-svn: 133682
|
|
|
|
|
|
| |
don't remove blocks that have their address taken.
llvm-svn: 133659
|
|
|
|
|
|
| |
Specifically, gcc.c-torture/compile/pr21356.c.
llvm-svn: 133646
|
|
|
|
|
|
|
|
|
| |
"simple" bb to
be one with only one unconditional branch and no phis. Duplicating the phis in this case
is possible, but requeres liveness analysis or breaking edges.
llvm-svn: 133607
|
|
|
|
| |
llvm-svn: 133446
|
|
|
|
|
|
|
|
| |
* Don't introduce a duplicated bb in the CFG
* When making a branch unconditional, clear the PredCond array so that it
is really unconditional.
llvm-svn: 133432
|
|
|
|
|
|
|
|
| |
dragonegg buildbots back to life. Original commit message:
Teach early dup how to duplicate basic blocks with one successor and only phi instructions
into more complex blocks.
llvm-svn: 133430
|
|
|
|
|
|
| |
create a overload conflict. Make sure we pick up the llvm one.
llvm-svn: 133416
|
|
|
|
|
|
|
|
| |
phi instructions
into more complex blocks.
llvm-svn: 133415
|
|
|
|
|
|
|
|
| |
* We should change the generated code because of a debug use.
* Avoid creating debug uses of undef, as they become a kill.
Test to follow.
llvm-svn: 133255
|
|
|
|
|
|
| |
be made, but this is already a win.
llvm-svn: 133240
|
|
|
|
| |
llvm-svn: 132857
|
|
|
|
|
|
| |
Thanks Bob Wilson for noticing it!
llvm-svn: 132851
|
|
|
|
| |
llvm-svn: 132822
|
|
|
|
| |
llvm-svn: 132821
|
|
|
|
|
|
|
|
| |
With this I am able to bootstrap clang with early tail duplication enabled
for any small bb and setting tail-dup-size to a relatively large value(8) to
stress this code.
llvm-svn: 132816
|
|
|
|
| |
llvm-svn: 132814
|
|
|
|
|
|
| |
eh edges. Swap the order of the checks to avoid it.
llvm-svn: 132806
|
|
|
|
| |
llvm-svn: 132805
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 132798
|
|
|
|
| |
llvm-svn: 132749
|
|
|
|
| |
llvm-svn: 132748
|
|
|
|
| |
llvm-svn: 124843
|
|
|
|
|
|
|
| |
This is similar to the -unroll-threshold option. There should be no change in
behavior when -tail-dup-size is not explicit on the llc command line.
llvm-svn: 124564
|
|
|
|
| |
llvm-svn: 124526
|
|
|
|
| |
llvm-svn: 124522
|
|
|
|
|
|
| |
unconditional predecessor to enable TCE on demand.
llvm-svn: 124518
|
|
|
|
| |
llvm-svn: 124478
|
|
|
|
|
|
|
|
| |
branches. PR8575, rdar://5134905, rdar://8911460.
- Allow codegen tail duplication to dup small return blocks after register
allocation is done.
llvm-svn: 124462
|
|
|
|
|
|
|
|
| |
These functions not longer assert when passed 0, but simply return false instead.
No functional change intended.
llvm-svn: 123155
|
|
|
|
| |
llvm-svn: 110460
|
|
|
|
| |
llvm-svn: 110410
|
|
|
|
|
|
|
|
| |
address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
|
|
|
|
|
| |
TII::isMoveInstr is going tobe completely removed.
llvm-svn: 108507
|
|
|
|
| |
llvm-svn: 108062
|
|
|
|
|
|
| |
doesn't have to guess.
llvm-svn: 103194
|
|
|
|
| |
llvm-svn: 98675
|
|
|
|
|
|
| |
them with a counter.
llvm-svn: 98462
|
|
|
|
|
|
|
|
| |
Calling RemoveOperand is very expensive on huge PHI instructions. This makes
early tail duplication run twice as fast on the Firefox JavaScript
interpreter.
llvm-svn: 95832
|