- Jan 11, 2013
-
-
Benjamin Kramer authored
This fixes some of the cycles between libCodeGen and libSelectionDAG. It's still a complete mess but as long as the edges consist of virtual call it doesn't cause breakage. BasicTTI did static calls and thus broke some build configurations. llvm-svn: 172246
-
- Dec 13, 2012
-
-
Patrik Hagglund authored
EVT. Accordingly, change RegDefIter to contain MVTs instead of EVTs. llvm-svn: 170140
-
- Dec 11, 2012
-
-
Patrik Hagglund authored
llvm-svn: 169854
-
Patrik Hagglund authored
EVT. Accordingly, change RegDefIter to contain MVTs instead of EVTs. llvm-svn: 169838
-
- Dec 03, 2012
-
-
Chandler Carruth authored
Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] llvm-svn: 169131
-
- Aug 22, 2012
-
-
Craig Topper authored
Add a getName function to MachineFunction. Use it in places that previously did getFunction()->getName(). Remove includes of Function.h that are no longer needed. llvm-svn: 162347
-
- Jun 02, 2012
-
-
Jakob Stoklund Olesen authored
No functional change intended. Sorry for the churn. The iterator classes are supposed to help avoid giant commits like this one in the future. The TableGen-produced register lists are getting quite large, and it may be necessary to change the table representation. This makes it possible to do so without changing all clients (again). llvm-svn: 157854
-
- May 08, 2012
-
-
Jakob Stoklund Olesen authored
The getPointerRegClass() hook can return register classes that depend on the calling convention of the current function (ptr_rc_tailcall). So far, we have been able to infer the calling convention from the subtarget alone, but as we add support for multiple calling conventions per target, that no longer works. Patch by Yiannis Tsiouris! llvm-svn: 156328
-
- Apr 11, 2012
-
-
Jakob Stoklund Olesen authored
Allow cheap instructions to be hoisted if they are register pressure neutral or better. This happens if the instruction is the last loop use of another virtual register. Only expensive instructions are allowed to increase loop register pressure. llvm-svn: 154455
-
Jakob Stoklund Olesen authored
Hoisting a value that is used by a PHI in the loop will introduce a copy because the live range is extended to cross the PHI. The same applies to PHIs in exit blocks. Also use this opportunity to make HasLoopPHIUse() non-recursive. llvm-svn: 154454
-
- Mar 27, 2012
-
-
Evan Cheng authored
register that's read by the preheader terminator. rdar://11095580 llvm-svn: 153492
-
- Mar 04, 2012
-
-
Craig Topper authored
llvm-svn: 152001
-
- Feb 28, 2012
-
-
Chad Rosier authored
llvm-svn: 151599
-
- Feb 17, 2012
-
-
Jakob Stoklund Olesen authored
This caused miscompilations on out-of-tree targets, and possibly i386 as well. I'll find some other way of hoisting %rip-relative loads from loops containing calls. llvm-svn: 150816
-
- Feb 11, 2012
-
-
Jakob Stoklund Olesen authored
When using register masks, registers like %rip are clobbered by the register mask. LICM should still be able to hoist instructions reading %rip from a loop containing calls. llvm-svn: 150288
-
Jakob Stoklund Olesen authored
llvm-svn: 150286
-
- Feb 08, 2012
-
-
Andrew Trick authored
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
-
Andrew Trick authored
llvm-svn: 150099
-
Andrew Trick authored
llvm-svn: 150098
-
- Feb 03, 2012
-
-
Jakob Stoklund Olesen authored
It doesn't seem worthwhile to give meaning to a NULL register mask pointer. It complicates all the code using register mask operands. llvm-svn: 149646
-
- Jan 23, 2012
-
-
Jakob Stoklund Olesen authored
This fixes a typo in r148589. llvm-svn: 148724
-
Jakob Stoklund Olesen authored
llvm-svn: 148723
-
- Jan 20, 2012
-
-
Jakob Stoklund Olesen authored
Only PostRA LICM is affected. llvm-svn: 148589
-
- Jan 16, 2012
-
-
Jakob Stoklund Olesen authored
It is safe to move uses of such registers. llvm-svn: 148259
-
- Jan 10, 2012
-
-
Evan Cheng authored
llvm-svn: 147884
-
- Dec 22, 2011
-
-
Pete Cooper authored
llvm-svn: 147127
-
Pete Cooper authored
Fixes <rdar://problem/10584116> llvm-svn: 147125
-
- Dec 07, 2011
-
-
Evan Cheng authored
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
-
- Dec 06, 2011
-
-
Evan Cheng authored
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
-
- Nov 16, 2011
-
-
Owen Anderson authored
llvm-svn: 144747
-
- Oct 26, 2011
-
-
Evan Cheng authored
Disable LICM speculation in high register pressure situation again now that Devang has fixed other issues. llvm-svn: 143003
-
- Oct 20, 2011
-
-
Devang Patel authored
llvm-svn: 142593
-
Devang Patel authored
llvm-svn: 142592
-
- Oct 17, 2011
-
-
-
Devang Patel authored
Radar 10281206. llvm-svn: 142202
-
- Oct 13, 2011
-
-
Nick Lewycky authored
llvm-svn: 141844
-
- Oct 12, 2011
-
-
Evan Cheng authored
Disable machine LICM speculation check (for profitability) until I have time to investigate the regressions. llvm-svn: 141813
-
Bill Wendling authored
containing loop's header to see if that's a landing pad. If it is, then we don't want to hoist instructions out of the loop and above the header. llvm-svn: 141767
-
Evan Cheng authored
1. The speculation check may not have been performed if the BB hasn't had a load LICM candidate. 2. If the candidate would be CSE'ed, then go ahead and speculatively LICM the instruction even if it's in high register pressure situation. llvm-svn: 141747
-
Evan Cheng authored
Also teach MachineLICM to avoid "speculation" when register pressure is high. llvm-svn: 141744
-