Skip to content
  1. Aug 05, 2009
    • Dan Gohman's avatar
      Major calling convention code refactoring. · f9bbcd1a
      Dan Gohman authored
      Instead of awkwardly encoding calling-convention information with ISD::CALL,
      ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering
      provides three virtual functions for targets to override:
      LowerFormalArguments, LowerCall, and LowerRet, which replace the custom
      lowering done on the special nodes. They provide the same information, but
      in a more immediately usable format.
      
      This also reworks much of the target-independent tail call logic. The
      decision of whether or not to perform a tail call is now cleanly split
      between target-independent portions, and the target dependent portion
      in IsEligibleForTailCallOptimization.
      
      This also synchronizes all in-tree targets, to help enable future
      refactoring and feature work.
      
      llvm-svn: 78142
      f9bbcd1a
    • Dan Gohman's avatar
      Remove an unnecessary flush in the CppBackend's output. · cbf1e16a
      Dan Gohman authored
      llvm-svn: 78138
      cbf1e16a
    • Dan Gohman's avatar
      Don't flush the raw_ostream between each MachineFunction. These flush · c6b5e8a5
      Dan Gohman authored
      calls were originally put in place because errs() at one time was
      not unbuffered, and these print routines are commonly used with errs()
      for debugging. However, errs() is now properly unbuffered, so the
      flush calls are no longer needed. This significantly reduces the
      number of write(2) calls for regular asm printing when there are many
      small functions.
      
      llvm-svn: 78137
      c6b5e8a5
    • Bob Wilson's avatar
      Change DAG nodes for Neon VLD2/3/4 operations to return multiple results. · 20f79e32
      Bob Wilson authored
      Get rid of yesterday's code to fix the register usage during isel.
      Select the new DAG nodes to machine instructions.  The new pre-alloc pass
      to choose adjacent registers for these results is not done, so the
      results of this will generally not assemble yet.
      
      llvm-svn: 78136
      20f79e32
    • Bruno Cardoso Lopes's avatar
      1) Proper emit displacements for x86, using absolute relocations where necessary · 1b02ceeb
      Bruno Cardoso Lopes authored
      for ELF to work.  
      2) RIP addressing: Use SIB bytes for absolute relocations where RegBase=0, 
      IndexReg=0.
      3) The JIT can get the real address of cstpools and jmptables during
      code emission, fix that for object code emission
      
      llvm-svn: 78129
      1b02ceeb
    • Evan Cheng's avatar
      7cc6aca1
  2. Aug 04, 2009
  3. Aug 03, 2009
Loading