Matthijs Kooijman
							
						 
						
							 
							
							
							
							
								
							
							
								b85cc9db19 
								
							 
						 
						
							
							
								
								Don't use ++idx_begin when I actually mean idx_begin + 1, especially since we  
							
							 
							
							... 
							
							
							
							also use *idx_begin in the same expression, giving unpredictable results.
This fixes this bug: http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-July/015877.html 
llvm-svn: 53670 
							
						 
						
							2008-07-16 10:47:35 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								970914c8c8 
								
							 
						 
						
							
							
								
								Correct this inversion!  
							
							 
							
							... 
							
							
							
							I swear that didn't show up in svn diff...
llvm-svn: 53587 
							
						 
						
							2008-07-15 03:47:44 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								3752e51311 
								
							 
						 
						
							
							
								
								Fix up comments.  
							
							 
							
							... 
							
							
							
							llvm-svn: 53586 
							
						 
						
							2008-07-15 03:40:27 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								b5688ccf57 
								
							 
						 
						
							
							
								
								Stop creating extraneous smax/umax in SCEV. This removes a regression where we  
							
							 
							
							... 
							
							
							
							started complicating many loops ('for' loops, in fact).
llvm-svn: 53508 
							
						 
						
							2008-07-12 07:41:32 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								0e52a0c89e 
								
							 
						 
						
							
							
								
								Fix spelling of "hierarchy" in comments.  
							
							 
							
							... 
							
							
							
							llvm-svn: 53489 
							
						 
						
							2008-07-11 22:51:32 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								3707f1daba 
								
							 
						 
						
							
							
								
								Use find instead of lower_bound.  
							
							 
							
							... 
							
							
							
							llvm-svn: 53474 
							
						 
						
							2008-07-11 20:58:19 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								b36bd47419 
								
							 
						 
						
							
							
								
								Remove getValueRange from SCEV. It wasn't doing anything there anyways, and a  
							
							 
							
							... 
							
							
							
							more complete version is now available from the LoopVR pass.
llvm-svn: 53269 
							
						 
						
							2008-07-09 03:21:51 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								3c947045ef 
								
							 
						 
						
							
							
								
								Expand SCEVUDiv of power of 2 to a lshr instruction.  
							
							 
							
							... 
							
							
							
							llvm-svn: 53217 
							
						 
						
							2008-07-08 05:05:37 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								f5c547d499 
								
							 
						 
						
							
							
								
								Handle 'lshr' instruction with SCEVUDiv object.  
							
							 
							
							... 
							
							
							
							Comment the xor %x, -1 case.
llvm-svn: 53167 
							
						 
						
							2008-07-07 06:15:49 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								874a3a0b0d 
								
							 
						 
						
							
							
								
								Keep track of inherited analysis (e.g. dominator tree).  
							
							 
							
							... 
							
							
							
							llvm-svn: 53088 
							
						 
						
							2008-07-03 07:02:30 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b22a640fe4 
								
							 
						 
						
							
							
								
								A better fix for PR2503 that doesn't pessimize GVN in the presence of unreachable blocks.  
							
							 
							
							... 
							
							
							
							llvm-svn: 53032 
							
						 
						
							2008-07-02 17:20:16 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								67c79a4992 
								
							 
						 
						
							
							
								
								Fix typos in comments.  
							
							 
							
							... 
							
							
							
							Thanks for the feedback!
llvm-svn: 52978 
							
						 
						
							2008-07-01 19:50:56 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								9dbe4d15ec 
								
							 
						 
						
							
							
								
								Add dom info verifier.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52967 
							
						 
						
							2008-07-01 17:44:24 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								2a3a1127e2 
								
							 
						 
						
							
							
								
								Properly handle cases where a predecessor of the block being queried on is unreachable.  
							
							 
							
							... 
							
							
							
							This fixes PR2503, though we should also fix other passes not to emit this kind of code.
llvm-svn: 52946 
							
						 
						
							2008-07-01 00:40:58 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								da3db11db3 
								
							 
						 
						
							
							
								
								- Re-apply 52748 and friends with fix. GetConstantStringInfo() returns an empty string for ConstantAggregateZero case which surprises selectiondag.  
							
							 
							
							... 
							
							
							
							- Correctly handle memcpy from constant string which is zero-initialized.
llvm-svn: 52891 
							
						 
						
							2008-06-30 07:31:25 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								48b1fd74dc 
								
							 
						 
						
							
							
								
								Add a value range analysis that lazily computes ranges using ScalarEvolutions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52885 
							
						 
						
							2008-06-30 00:04:21 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								a7c583d584 
								
							 
						 
						
							
							
								
								Revert (52748 and friends):  
							
							 
							
							... 
							
							
							
							Move GetConstantStringInfo to lib/Analysis. Remove
string output routine from Constant. Update all
callers. Change debug intrinsic api slightly to
accomodate move of routine, these now return values
instead of strings.
This unbreaks llvm-gcc bootstrap.
llvm-svn: 52884 
							
						 
						
							2008-06-29 17:57:03 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1701328675 
								
							 
						 
						
							
							
								
								Add back the capability to include nul characters in strings with  
							
							 
							
							... 
							
							
							
							GetConstantStringInfo.  This will hopefully restore llvm-gcc to 
happy bootstrap land.
llvm-svn: 52851 
							
						 
						
							2008-06-28 05:33:32 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ebf1f67193 
								
							 
						 
						
							
							
								
								Tighten up checking.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52850 
							
						 
						
							2008-06-28 04:37:04 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								dc3f946137 
								
							 
						 
						
							
							
								
								fix the regressions from Eric's patch by making GetConstantStringInfo  
							
							 
							
							... 
							
							
							
							tolerate a non-nul-terminated string, and handling a direct global 
reference.
llvm-svn: 52813 
							
						 
						
							2008-06-27 03:36:51 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								db0a48b1a7 
								
							 
						 
						
							
							
								
								Reserve the size we'll need in advance.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52763 
							
						 
						
							2008-06-26 04:47:41 +00:00  
						
					 
				
					
						
							
							
								 
								Eric Christopher
							
						 
						
							 
							
							
							
							
								
							
							
								d0ab9c47e6 
								
							 
						 
						
							
							
								
								Move GetConstantStringInfo to lib/Analysis. Remove  
							
							 
							
							... 
							
							
							
							string output routine from Constant. Update all
callers. Change debug intrinsic api slightly to
accomodate move of routine, these now return values
instead of strings.
llvm-svn: 52748 
							
						 
						
							2008-06-26 00:31:12 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								05e8973559 
								
							 
						 
						
							
							
								
								Generalize createSCEV to be able to form SCEV expressions from  
							
							 
							
							... 
							
							
							
							ConstantExprs.
llvm-svn: 52615 
							
						 
						
							2008-06-22 19:56:46 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								6829fffaee 
								
							 
						 
						
							
							
								
								Use SCEVAddRecExpr::isAffine.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52614 
							
						 
						
							2008-06-22 19:23:09 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								0e4cf89f1a 
								
							 
						 
						
							
							
								
								Move a few more SCEVExpander methods out-of-line.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52612 
							
						 
						
							2008-06-22 19:09:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e635acab67 
								
							 
						 
						
							
							
								
								fix warning when assertions disabled.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52589 
							
						 
						
							2008-06-21 19:48:22 +00:00  
						
					 
				
					
						
							
							
								 
								Duncan Sands
							
						 
						
							 
							
							
							
							
								
							
							
								db356eea26 
								
							 
						 
						
							
							
								
								Fix some warnings reported by gcc-4.3.  Hopefully  
							
							 
							
							... 
							
							
							
							this still compiles on windows - I can't test!
llvm-svn: 52488 
							
						 
						
							2008-06-19 08:47:31 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								095ca74a7f 
								
							 
						 
						
							
							
								
								Move SCEVExpander::visitAddExpr out-of-line.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52464 
							
						 
						
							2008-06-18 16:37:11 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								be928e3b21 
								
							 
						 
						
							
							
								
								Move LSR's private isZero function to a public SCEV member  
							
							 
							
							... 
							
							
							
							function, and make use of it in several places.
llvm-svn: 52463 
							
						 
						
							2008-06-18 16:23:07 +00:00  
						
					 
				
					
						
							
							
								 
								Matthijs Kooijman
							
						 
						
							 
							
							
							
							
								
							
							
								8369c67cbd 
								
							 
						 
						
							
							
								
								Use a SmallVector instead of an array, since auto_ptr doesn't handle arrays  
							
							 
							
							... 
							
							
							
							properly.
llvm-svn: 52390 
							
						 
						
							2008-06-17 08:24:37 +00:00  
						
					 
				
					
						
							
							
								 
								Matthijs Kooijman
							
						 
						
							 
							
							
							
							
								
							
							
								fa4d0b883a 
								
							 
						 
						
							
							
								
								Make BuildSubAggregate use FindInsertedElement again to prevent it from  
							
							 
							
							... 
							
							
							
							inserting extractvalues. In particular, this prevents the insertion of
extractvalues that can't be folded away later. Also add an example of when this
stuff is needed.
llvm-svn: 52328 
							
						 
						
							2008-06-16 14:13:46 +00:00  
						
					 
				
					
						
							
							
								 
								Matthijs Kooijman
							
						 
						
							 
							
							
							
							
								
							
							
								69801d4fd1 
								
							 
						 
						
							
							
								
								Make the InsertBefore argument to FindInsertedValue optional, so you can find an inserted value without modifying the code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52319 
							
						 
						
							2008-06-16 13:28:31 +00:00  
						
					 
				
					
						
							
							
								 
								Matthijs Kooijman
							
						 
						
							 
							
							
							
							
								
							
							
								86cda9e050 
								
							 
						 
						
							
							
								
								Pass around Instruction* instead of Instruction& in FindInsertedValue and friends.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52318 
							
						 
						
							2008-06-16 13:13:08 +00:00  
						
					 
				
					
						
							
							
								 
								Matthijs Kooijman
							
						 
						
							 
							
							
							
							
								
							
							
								5cb387735d 
								
							 
						 
						
							
							
								
								80 column fixes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52316 
							
						 
						
							2008-06-16 12:57:37 +00:00  
						
					 
				
					
						
							
							
								 
								Matthijs Kooijman
							
						 
						
							 
							
							
							
							
								
							
							
								e92e18be5a 
								
							 
						 
						
							
							
								
								Move FindScalarValue from InstructionCombining.cpp to ValueTracking.cpp. While  
							
							 
							
							... 
							
							
							
							I'm at it, rename it to FindInsertedValue.
The only functional change is that newly created instructions are no longer
added to instcombine's worklist, but that is not really necessary anyway (and
I'll commit some improvements next that will completely remove the need).
llvm-svn: 52315 
							
						 
						
							2008-06-16 12:48:21 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fb46605e47 
								
							 
						 
						
							
							
								
								simplify some code by using a helper function.  This really really  
							
							 
							
							... 
							
							
							
							wants a 'nocapture' predicate.
llvm-svn: 52304 
							
						 
						
							2008-06-16 06:38:26 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2d33297d00 
								
							 
						 
						
							
							
								
								move a bunch of predicates up into their own section  
							
							 
							
							... 
							
							
							
							in this file, no other changes.
llvm-svn: 52303 
							
						 
						
							2008-06-16 06:30:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fa48258a61 
								
							 
						 
						
							
							
								
								Other parts of this code treat noalias arguments as objects for  
							
							 
							
							... 
							
							
							
							the purposes of escape analysis.
llvm-svn: 52302 
							
						 
						
							2008-06-16 06:28:01 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b35d9b5e07 
								
							 
						 
						
							
							
								
								If we are checking to see if the result of a call aliases a  
							
							 
							
							... 
							
							
							
							pointer derived from a local allocation, if the local allocation
never escapes, the pointers can't alias.  This implements PR2436
llvm-svn: 52301 
							
						 
						
							2008-06-16 06:19:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								98ad816f58 
								
							 
						 
						
							
							
								
								Refactor basicaa's main alias function somethin' fierce.  
							
							 
							
							... 
							
							
							
							This fixes several minor bugs (such as returning noalias
for comparisons between external weak functions an null) but
is mostly a cleanup.
llvm-svn: 52299 
							
						 
						
							2008-06-16 06:10:11 +00:00  
						
					 
				
					
						
							
							
								 
								Wojciech Matyjewicz
							
						 
						
							 
							
							
							
							
								
							
							
								ae9753b29d 
								
							 
						 
						
							
							
								
								Fix PR2434. When scanning for exising binary operator to reuse don't  
							
							 
							
							... 
							
							
							
							take into account the instrucion pointed by InsertPt. Thanks to it, 
returning the new value of InsertPt to the InsertBinop() caller can be 
avoided. The bug was, actually, in visitAddRecExpr() method which wasn't 
correctly handling changes of InsertPt. There shouldn't be any 
performance regression, as -gvn pass (run after -indvars) removes any 
redundant binops.
llvm-svn: 52291 
							
						 
						
							2008-06-15 19:07:39 +00:00  
						
					 
				
					
						
							
							
								 
								Wojciech Matyjewicz
							
						 
						
							 
							
							
							
							
								
							
							
								8bf66ee13b 
								
							 
						 
						
							
							
								
								Change 'while' loop to 'do' loop.  
							
							 
							
							... 
							
							
							
							Add a safety measure. It isn't safe to assume in ScalarEvolutionExpander that
all loops are in canonical form (but it should be safe for loops that have
AddRecs).
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
llvm-svn: 52275 
							
						 
						
							2008-06-14 16:48:22 +00:00  
						
					 
				
					
						
							
							
								 
								Nick Lewycky
							
						 
						
							 
							
							
							
							
								
							
							
								ed169d531d 
								
							 
						 
						
							
							
								
								Crash less. The i64 restriction in BinomialCoefficient caused some problems  
							
							 
							
							... 
							
							
							
							with code that was expecting different bit widths for different values.
Make getTruncateOrZeroExtend a method on ScalarEvolution, and use it.
llvm-svn: 52248 
							
						 
						
							2008-06-13 04:38:55 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								3816aa7ef7 
								
							 
						 
						
							
							
								
								Expose a public interface to this pass.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52029 
							
						 
						
							2008-06-05 23:45:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0282d0247e 
								
							 
						 
						
							
							
								
								Let libcall semantics decide whether it knows about functions  
							
							 
							
							... 
							
							
							
							with definitions or not.
llvm-svn: 52028 
							
						 
						
							2008-06-05 23:38:34 +00:00  
						
					 
				
					
						
							
							
								 
								Matthijs Kooijman
							
						 
						
							 
							
							
							
							
								
							
							
								5afc2740b7 
								
							 
						 
						
							
							
								
								Update comments and documentation to reflect that GCSE and ValueNumbering are  
							
							 
							
							... 
							
							
							
							deprecated by the GVN and GVNPRE passes.
llvm-svn: 51983 
							
						 
						
							2008-06-05 07:55:49 +00:00  
						
					 
				
					
						
							
							
								 
								Matthijs Kooijman
							
						 
						
							 
							
							
							
							
								
							
							
								2353f35989 
								
							 
						 
						
							
							
								
								Replace two manual loops with calls to CallSite::hasArguments (no functional changes).  
							
							 
							
							... 
							
							
							
							llvm-svn: 51947 
							
						 
						
							2008-06-04 16:57:50 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6449690da4 
								
							 
						 
						
							
							
								
								Add #includes required by GCC 4.3, thanks for Zhongxing Xu  
							
							 
							
							... 
							
							
							
							for reporting this.
llvm-svn: 51926 
							
						 
						
							2008-06-04 04:46:14 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								2e01a69e72 
								
							 
						 
						
							
							
								
								Remove unneeded code I added.  
							
							 
							
							... 
							
							
							
							llvm-svn: 51878 
							
						 
						
							2008-06-02 18:39:07 +00:00  
						
					 
				
					
						
							
							
								 
								Wojciech Matyjewicz
							
						 
						
							 
							
							
							
							
								
							
							
								416867a81b 
								
							 
						 
						
							
							
								
								Fixes PR2395. Looking for a constant in a GEP tail (when the first GEP  
							
							 
							
							... 
							
							
							
							is longer than the second one) should stop after finding one. Added break 
instruction guarantees it. It also changes difference between offsets to 
absolute value of this difference in the condition.
llvm-svn: 51875 
							
						 
						
							2008-06-02 17:26:12 +00:00