Skip to content
  1. Feb 04, 2008
    • Duncan Sands's avatar
      I don't see how NodeUpdated can be called with a · 354e3532
      Duncan Sands authored
      ReadyToProcess node - add an assertion to check
      this.  Add an assertion to NodeDeleted that checks
      that processed/ready nodes are indeed not deleted.
      It is because they are never deleted that none of
      the maps can have a deleted node as the source of
      a mapping.  It does however seem to be possible in
      theory to have a deleted value as the target of a
      mapping, however this has not yet been spotted in
      the wild.  Still mulling on what to do about this.
      [The theoretical situation is this: a node A is
      expanded/promoted/whatever to a newly created node
      B.  Thus A->B is added to a map.  When the subtree
      rooted at B is legalized it is conceivable that B
      is deleted due to RAUW on a node somewhere above
      it].
      
      llvm-svn: 46705
      354e3532
  2. Feb 03, 2008
  3. Feb 02, 2008
    • Evan Cheng's avatar
      Get rid of the annoying blank lines before labels. · 32e5347e
      Evan Cheng authored
      llvm-svn: 46667
      32e5347e
    • Evan Cheng's avatar
      SDIsel processes llvm.dbg.declare by recording the variable debug information... · efd142a9
      Evan Cheng authored
      SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc.
      Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes.
      For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time.
      
      llvm-svn: 46659
      efd142a9
  4. Feb 01, 2008
  5. Jan 31, 2008
  6. Jan 30, 2008
  7. Jan 29, 2008
  8. Jan 28, 2008
  9. Jan 27, 2008
    • Owen Anderson's avatar
      Reg alloc doesn't really need LiveVariables. · 9a8c890c
      Owen Anderson authored
      llvm-svn: 46420
      9a8c890c
    • Chris Lattner's avatar
      Implement some dag combines that allow doing fneg/fabs/fcopysign in integer · 888560d6
      Chris Lattner authored
      registers if used by a bitconvert or using a bitconvert.  This allows us to
      avoid constant pool loads and use cheaper integer instructions when the
      values come from or end up in integer regs anyway.  For example, we now 
      compile CodeGen/X86/fp-in-intregs.ll to:
      
      _test1:
      	movl	$2147483648, %eax
      	xorl	4(%esp), %eax
      	ret
      _test2:
      	movl	$1065353216, %eax
      	orl	4(%esp), %eax
      	andl	$3212836864, %eax
      	ret
      
      Instead of:
      _test1:
      	movss	4(%esp), %xmm0
      	xorps	LCPI2_0, %xmm0
      	movd	%xmm0, %eax
      	ret
      _test2:
      	movss	4(%esp), %xmm0
      	andps	LCPI3_0, %xmm0
      	movss	LCPI3_1, %xmm1
      	andps	LCPI3_2, %xmm1
      	orps	%xmm0, %xmm1
      	movd	%xmm1, %eax
      	ret
      
      bitconverts can happen due to various calling conventions that require
      fp values to passed in integer regs in some cases, e.g. when returning
      a complex.
      
      llvm-svn: 46414
      888560d6
Loading