Chris Lattner 
							
						 
					 
					
						
						
							
						
						c13dd1cf4c 
					 
					
						
						
							
							implement initial support for the silly X constraint.  Testcase here: CodeGen/X86/2007-03-24-InlineAsmXConstraint.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35327  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-25 04:35:41 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						065421f99f 
					 
					
						
						
							
							Implement CodeGen/X86/2007-03-24-InlineAsmMultiRegConstraint.ll  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35324  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-25 02:18:14 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						4234f57fa0 
					 
					
						
						
							
							switch TargetLowering::getConstraintType to take the entire constraint,  
						
						... 
						
						
						
						not just the first letter.  No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35322  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-25 02:14:49 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						82dcb4fe23 
					 
					
						
						
							
							don't rely on ADL  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35299  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-24 17:37:03 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						dae54ce7fc 
					 
					
						
						
							
							Adjust offset to compensate for big endian machines.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35293  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-24 00:02:43 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						e177e307fc 
					 
					
						
						
							
							Make sure SEXTLOAD of the specific type is supported on the target.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35289  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-23 22:13:36 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						b37b80ce46 
					 
					
						
						
							
							Also replace uses of SRL if that's also folded during ReduceLoadWidth().  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35286  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-23 20:55:21 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						0b063def98 
					 
					
						
						
							
							A couple of bug fixes for reducing load width xform:  
						
						... 
						
						
						
						1. Address offset is in bytes.
2. Make sure truncate node uses are replaced with new load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35274  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-23 02:16:52 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						ecb7a77885 
					 
					
						
						
							
							Change uses of Function::front to Function::getEntryBlock for readability.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35265  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-22 16:38:57 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c88138fb5e 
					 
					
						
						
							
							More opportunities to reduce load size.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35254  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-22 01:54:19 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						2c3535d2a6 
					 
					
						
						
							
							Fix for PR1257. Bug in live range shortening as a result of copy coalescing  
						
						... 
						
						
						
						where the destination is dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35252  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-22 01:26:05 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						fa4bce2b76 
					 
					
						
						
							
							repair x86 performance, dejagnu problems from previous change  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35245  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-21 21:51:52 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						007b69eeaa 
					 
					
						
						
							
							fold (truncate (srl (load x), c)) -> (smaller load (x+c/vt bits))  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35239  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-21 20:14:05 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c3c70881cf 
					 
					
						
						
							
							Potential spiller improvement.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35228  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-20 22:22:38 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						8e59e163db 
					 
					
						
						
							
							do not share old induction variables when this would result in invalid  
						
						... 
						
						
						
						instructions (that would have to be split later)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35227  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-20 21:54:54 +00:00 
						 
				 
			
				
					
						
							
							
								Dale Johannesen 
							
						 
					 
					
						
						
							
						
						69cb9b78f1 
					 
					
						
						
							
							maintain LiveIn when splitting blocks (register scavenging needs it)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35226  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-20 21:35:06 +00:00 
						 
				 
			
				
					
						
							
							
								Jeff Cohen 
							
						 
					 
					
						
						
							
						
						c01a53007a 
					 
					
						
						
							
							Fix some VC++ warnings.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35224  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-20 20:43:18 +00:00 
						 
				 
			
				
					
						
							
							
								Lauro Ramos Venancio 
							
						 
					 
					
						
						
							
						
						a0a26b7454 
					 
					
						
						
							
							Code clean up.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35220  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-20 20:09:03 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						29a68fb5b7 
					 
					
						
						
							
							Minor bug.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35219  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-20 19:32:11 +00:00 
						 
				 
			
				
					
						
							
							
								Lauro Ramos Venancio 
							
						 
					 
					
						
						
							
						
						8334b9fa3b 
					 
					
						
						
							
							CopyToReg source operand can be a physical register.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35213  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-20 16:46:44 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						2638e1a6b9 
					 
					
						
						
							
							First cut trivial re-materialization support.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35208  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-20 08:13:50 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						757072d954 
					 
					
						
						
							
							Remove -reduce-joining-phys-regs options. Make it on by default.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35165  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-19 18:08:26 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						79b098445b 
					 
					
						
						
							
							Minor bug fix.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35153  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-19 04:22:35 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						cf596c54d4 
					 
					
						
						
							
							- Merge UsedBlocks info after two virtual registers are coalesced.  
						
						... 
						
						
						
						- Use distance to closest use to determine whether to abort coalescing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35141  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-18 09:05:55 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						e951cd1647 
					 
					
						
						
							
							Keep UsedBlocks info accurate.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35140  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-18 09:02:31 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c6a2410d58 
					 
					
						
						
							
							Track the BB's where each virtual register is used.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35135  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-17 09:29:54 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						ba1a3df608 
					 
					
						
						
							
							Joining a live interval of a physical register with a virtual one can turn out  
						
						... 
						
						
						
						to be really bad. Once they are joined they are not broken apart. Also, physical
intervals cannot be spilled!
Added a heuristic as a workaround for this. Be careful coalescing with a
physical register if the virtual register uses are "far". Check if there are
uses in the same loop as the source (copy instruction). Check if it is in the
loop preheader, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35134  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-17 09:27:35 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						db264ae07f 
					 
					
						
						
							
							Use SmallSet instead of std::set.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35133  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-17 08:53:30 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						2edd563825 
					 
					
						
						
							
							If sdisel has decided to sink GEP index expression into any BB. Replace all uses  
						
						... 
						
						
						
						in that BB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35132  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-17 08:22:49 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						9e2d86add8 
					 
					
						
						
							
							Turn on GEP index sinking by default.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35127  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-16 18:32:30 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						9f5ead9601 
					 
					
						
						
							
							Stupid bug.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35126  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-16 17:50:20 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						3cd4e5095b 
					 
					
						
						
							
							Sink a binary expression into its use blocks if it is a loop invariant  
						
						... 
						
						
						
						computation used as GEP indexes and if the expression can be folded into
target addressing mode of GEP load / store use types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35123  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-16 08:46:27 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						14245a9d62 
					 
					
						
						
							
							Added isLegalAddressExpression hook to test if the given expression can be  
						
						... 
						
						
						
						folded into target addressing mode for the given type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35121  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-16 08:42:32 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						56fdd7af88 
					 
					
						
						
							
							Debugging output stuff.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35117  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-15 21:19:28 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c6deb3d447 
					 
					
						
						
							
							Estimate a cost using the possible number of scratch registers required and use  
						
						... 
						
						
						
						it as a late BURR scheduling tie-breaker.
Intuitively, it's good to push down instructions whose results are liveout so
their long live ranges won't conflict with other values which are needed inside
the BB. Further prioritize liveout instructions by the number of operands which
are calculated within the BB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35109  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-14 22:43:40 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						61230d18d2 
					 
					
						
						
							
							Try schedule def + use closer whne Sethi-Ullman numbers are the same.  
						
						... 
						
						
						
						e.g.
t1 = op t2, c1
t3 = op t4, c2
and the following instructions are both ready.
t2 = op c3
t4 = op c4
Then schedule t2 = op first.
i.e.
t4 = op c4
t2 = op c3
t1 = op t2, c1
t3 = op t4, c2
This creates more short live intervals which work better with the register
allocator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35089  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-13 23:25:11 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						c289faf015 
					 
					
						
						
							
							More flexible TargetLowering LSR hooks for testing whether an immediate is a legal target address immediate or scale.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35076  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-12 23:37:10 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						e2ee99620f 
					 
					
						
						
							
							If a virtual register is already marked alive in this block, that means it is  
						
						... 
						
						
						
						alive in one of the successor block. Do not add it to the kill list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35041  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-09 09:48:56 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						219705131d 
					 
					
						
						
							
							Print preds / succs BB numbers.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35040  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-09 08:29:08 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						f0e3bb1333 
					 
					
						
						
							
							Avoid variable shadowing.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35039  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-09 06:02:17 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						6dfc6806bf 
					 
					
						
						
							
							implement support for floating point constants used as inline asm memory operands.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35033  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-08 22:29:47 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						b4ddac9bf7 
					 
					
						
						
							
							make this fail even in non-assert builds.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35025  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-08 07:07:03 +00:00 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						d0b82b301d 
					 
					
						
						
							
							Refactoring of formal parameter flags. Enable properly use of  
						
						... 
						
						
						
						zext/sext/aext stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35008  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-07 16:25:09 +00:00 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						6a143590b3 
					 
					
						
						
							
							Cleanup: make SetCounter an instance variable  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35007  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-07 08:25:02 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						83060c544b 
					 
					
						
						
							
							Avoid combining indexed load further.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35005  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-07 08:07:03 +00:00 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						a6199c87c2 
					 
					
						
						
							
							Fix DWARF debugging information on x86/Linux and (hopefully)  
						
						... 
						
						
						
						Mingw32/Cygwin targets. This fixes PR978
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35000  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-07 02:47:57 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						caddd590f7 
					 
					
						
						
							
							Minor bug fix.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34985  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-06 21:58:15 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						0f54dcbf07 
					 
					
						
						
							
							Now LoopStrengthReduce is a LoopPass.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34984  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-06 21:14:09 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						edf2e8da25 
					 
					
						
						
							
							big endian 32-bit systems (e.g. ppc32) want to return the high reg first, not  
						
						... 
						
						
						
						the lo-reg first.  This is fallout from my ppc calling conv change yesterday,
it fixes test/ExecutionEngine/2003-05-06-LivenessClobber.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34983  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-06 20:01:06 +00:00 
						 
				 
			
				
					
						
							
							
								Anton Korobeynikov 
							
						 
					 
					
						
						
							
						
						fb269cf3e7 
					 
					
						
						
							
							Small eye-candy: use asciz directive everywhere, where possible.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34981  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2007-03-06 19:25:02 +00:00