Skip to content
  1. May 11, 2009
    • Jay Foad's avatar
      Change TargetData::getIntPtrType() to return an IntegerType instead of · ada3549a
      Jay Foad authored
      just a Type.
      
      llvm-svn: 71426
      ada3549a
    • Sanjiv Gupta's avatar
      Fix more naming issues. · ea5a8d88
      Sanjiv Gupta authored
      compiler libcalls start with .lib. now.
      fixed section names.
      
      llvm-svn: 71424
      ea5a8d88
    • Sanjiv Gupta's avatar
      Detect calls to compiler intrinsics and emit an extern declarations · 9d175c15
      Sanjiv Gupta authored
      only for those. These extern declarations to intrinsics are currently 
      being emitted at the bottom of generated .s file, which works fine with
      gpasm(not sure about MPSAM though).
      PIC16 linker generates errors for few cases (function-args/struct_args_5) if you do not include any
      extern declarations (even if no intrinsics are being used), but that
      needs to be fixed in the linker itself.
      
      llvm-svn: 71423
      9d175c15
    • Bill Wendling's avatar
      Needed #includes. Thanks Fritz van Bommel! · aeec9d53
      Bill Wendling authored
      llvm-svn: 71413
      aeec9d53
    • Bill Wendling's avatar
      This is a large rewrite of how Dwarf info for inlined functions is handled. · 59b1ca2a
      Bill Wendling authored
      The DwarfWriter expects DbgScopes and DIEs to behave themselves according to
      DwarfWriter's rules. However, inlined functions violate these rules. There are
      two different types of DIEs associated with an inlined function: an abstract
      instance, which has information about the original source code for the function
      being inlined; and concrete instances, which are created for each place the
      function was inlined and point back to the abstract instance.
      
      This patch tries to stay true to this schema. It bypasses how regular DbgScopes
      and DIEs are created and used when necessary. It provides special handling for
      DIEs of abstract and concrete instances.
      
      This doesn't take care of all of the problems with debug info for inlined
      functions, but it's a step in the right direction. For one thing, llvm-gcc
      generates wrong IR (it's missing some llvm.dbg intrinsics at the point where the
      function's inlined) for this example:
      
      #include <stdio.h>
      static __inline__ __attribute__((always_inline))  int bar(int x) { return 4; }
      void foo() {
        long long b = 1;
        int Y = bar(4);
        printf("%d\n", Y);
      }
      
      while clang generates correct IR.
      
      llvm-svn: 71410
      59b1ca2a
  2. May 10, 2009
  3. May 09, 2009
  4. May 08, 2009
Loading