|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| | flow changes have already hidden the bug. rdar://10893812
llvm-svn: 150949 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 |