- Nov 07, 2007
-
-
Evan Cheng authored
llvm-svn: 43819
-
- Nov 06, 2007
-
-
Evan Cheng authored
When the allocator rewrite a spill register with new virtual register, it replaces other operands of the same register. Watch out for situations where only some of the operands are sub-register uses. llvm-svn: 43776
-
Evan Cheng authored
llvm-svn: 43763
-
- Nov 05, 2007
-
-
Evan Cheng authored
llvm-svn: 43692
-
- Nov 03, 2007
-
-
Evan Cheng authored
can be eliminated by the allocator is the destination and source targets the same register. The most common case is when the source and destination registers are in different class. For example, on x86 mov32to32_ targets GR32_ which contains a subset of the registers in GR32. The allocator can do 2 things: 1. Set the preferred allocation for the destination of a copy to that of its source. 2. After allocation is done, change the allocation of a copy destination (if legal) so the copy can be eliminated. This eliminates 443 extra moves from 403.gcc. llvm-svn: 43662
-
- Oct 17, 2007
-
-
Evan Cheng authored
llvm-svn: 43069
-
Evan Cheng authored
llvm-svn: 43060
-
- Oct 12, 2007
-
-
Evan Cheng authored
llvm-svn: 42916
-
Evan Cheng authored
(almost) a register copy. However, it always coalesced to the register of the RHS (the super-register). All uses of the result of a EXTRACT_SUBREG are sub- register uses which adds subtle complications to load folding, spiller rewrite, etc. llvm-svn: 42899
-
- Oct 08, 2007
-
-
Evan Cheng authored
llvm-svn: 42742
-
- Oct 03, 2007
-
-
Dan Gohman authored
of comparing begin() and end(). llvm-svn: 42585
-
- Sep 14, 2007
-
-
Dan Gohman authored
isRegister, isImmediate, and isMachineBasicBlock, which are equivalent, and more popular. llvm-svn: 41958
-
- Sep 06, 2007
-
-
Evan Cheng authored
llvm-svn: 41739
-
- Sep 05, 2007
-
-
Evan Cheng authored
Use pool allocator for all the VNInfo's to improve memory access locality. This reduces coalescing time on siod Mac OS X PPC by 35%. Also remove the back ptr from VNInfo to LiveInterval and other tweaks. llvm-svn: 41729
-
- Aug 30, 2007
-
-
Evan Cheng authored
llvm-svn: 41598
-
- Aug 29, 2007
-
-
Evan Cheng authored
Changes related modules so VNInfo's are not copied. This decrease copy coalescing time by 45% and overall compilation time by 10% on siod. llvm-svn: 41579
-
- Aug 16, 2007
-
-
Evan Cheng authored
Fix some kill info update bugs; add hidden option -disable-rematerialization to turn off remat for debugging. llvm-svn: 41118
-
- Aug 14, 2007
-
-
Evan Cheng authored
Re-implement trivial rematerialization. This allows def MIs whose live intervals that are coalesced to be rematerialized. llvm-svn: 41060
-
- Aug 11, 2007
-
-
Evan Cheng authored
llvm-svn: 41016
-
- Aug 08, 2007
-
-
Evan Cheng authored
llvm-svn: 40925
-
Evan Cheng authored
- Fix some minor bugs related to special markers on val# def. ~0U means undefined, ~1U means dead val#. llvm-svn: 40916
-
Evan Cheng authored
kill instruction #, and source register number (iff the value# is defined by a copy). - Now def instruction # is set for every value#, not just for copy defined ones. - Update some outdated code related inactive live ranges. - Kill info not yet set. That's next patch. llvm-svn: 40913
-
- Jun 27, 2007
-
-
Evan Cheng authored
llvm-svn: 37764
-
Evan Cheng authored
llvm-svn: 37743
-
- Jun 19, 2007
-
-
Dan Gohman authored
with a general target hook to identify rematerializable instructions. Some instructions are only rematerializable with specific operands, such as loads from constant pools, while others are always rematerializable. This hook allows both to be identified as being rematerializable with the same mechanism. llvm-svn: 37644
-
- Jun 14, 2007
-
-
Dan Gohman authored
implementation for x86. llvm-svn: 37576
-
- Jun 08, 2007
-
-
David Greene authored
simultaneously. Move that pass to SimpleRegisterCoalescing. This makes it easier to implement alternative register allocation and coalescing strategies while maintaining reuse of the existing live interval analysis. llvm-svn: 37520
-
- May 14, 2007
-
-
Evan Cheng authored
llvm-svn: 37052
-
Evan Cheng authored
v1 = r2 = move v1 = op r2<kill> ... r2 = move v1 = op r2<kill> Clear the first r2 kill if v1 and r2 are joined. llvm-svn: 37050
-
- May 03, 2007
-
-
Devang Patel authored
llvm-svn: 36662
-
- May 02, 2007
-
-
Devang Patel authored
Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652
-
Lauro Ramos Venancio authored
llvm-svn: 36648
-
- May 01, 2007
-
-
Devang Patel authored
llvm-svn: 36632
-
- Apr 26, 2007
-
-
Evan Cheng authored
llvm-svn: 36483
-
- Apr 25, 2007
-
-
Evan Cheng authored
- A register def / use now implicitly affects sub-register liveness but does not affect liveness information of super-registers. - Def of a larger register (if followed by a use later) is treated as read/mod/write of a smaller register. llvm-svn: 36434
-
- Apr 18, 2007
-
-
Evan Cheng authored
llvm-svn: 36250
-
Evan Cheng authored
llvm-svn: 36240
-
- Apr 17, 2007
-
-
Evan Cheng authored
long live interval that has low usage density. 1. Change order of coalescing to join physical registers with virtual registers first before virtual register intervals become too long. 2. Check size and usage density to determine if it's worthwhile to join. 3. If joining is aborted, assign virtual register live interval allocation preference field to the physical register. 4. Register allocator should try to allocate to the preferred register first (if available) to create identify moves that can be eliminated. llvm-svn: 36218
-
- Apr 04, 2007
-
-
Evan Cheng authored
llvm-svn: 35660
-
Evan Cheng authored
Trivially re-materializable instructions have spill weights that are half of what it would be otherwise. llvm-svn: 35658
-