Skip to content
  1. Aug 01, 2013
  2. Jul 25, 2013
  3. Jul 23, 2013
    • Rafael Espindola's avatar
      Split getOpenFile into getOpenFile and getOpenFileSlice. · 3d2ac2e4
      Rafael Espindola authored
      The main observation is that we never need both the filesize and the map size.
      When mapping a slice of a file, it doesn't make sense to request a null
      terminator and that would be the only case where the filesize would be used.
      
      There are other cleanups that should be done in this area:
      
      * A client should not have to pass the size (even an explicit -1) to say if
        it wants a null terminator or not, so we should probably swap the argument
        order.
      * The default should be to not require a null terminator. Very few clients
        require this, but many end up asking for it just because it is the default.
      
      llvm-svn: 186984
      3d2ac2e4
  4. Jul 22, 2013
    • Bill Wendling's avatar
      Recommit r186217 with testcase fix: · c02a0aab
      Bill Wendling authored
       Use the function attributes to pass along the stack protector buffer size.
      
       Now that we have robust function attributes, don't use a command line option to
       specify the stack protecto buffer size.
      
      llvm-svn: 186863
      c02a0aab
  5. Jul 13, 2013
  6. Jul 02, 2013
    • Rafael Espindola's avatar
      Remove address spaces from MC. · 64e1af8e
      Rafael Espindola authored
      This is dead code since PIC16 was removed in 2010. The result was an odd mix,
      where some parts would carefully pass it along and others would assert it was
      zero (most of the object streamer for example).
      
      llvm-svn: 185436
      64e1af8e
  7. Jun 18, 2013
  8. Jun 12, 2013
  9. Jun 11, 2013
  10. Jun 10, 2013
  11. May 29, 2013
  12. May 25, 2013
  13. Apr 17, 2013
  14. Feb 01, 2013
  15. Jan 14, 2013
    • Eli Bendersky's avatar
      Expose an InitToTextSection through MCStreamer. · cbb2514d
      Eli Bendersky authored
      The aim of this patch is to fix the following piece of code in the
      platform-independent AsmParser:
      
      void AsmParser::CheckForValidSection() {
        if (!ParsingInlineAsm && !getStreamer().getCurrentSection()) {
          TokError("expected section directive before assembly directive");
          Out.SwitchSection(Ctx.getMachOSection(
                              "__TEXT", "__text",
                              MCSectionMachO::S_ATTR_PURE_INSTRUCTIONS,
                              0, SectionKind::getText()));
        }
      }
      
      This was added for the "-n" option of llvm-mc.
      
      The proposed fix adds another virtual method to MCStreamer, called
      InitToTextSection. Conceptually, it's similar to the existing
      InitSections which initializes all common sections and switches to
      text. The new method is implemented by each platform streamer in a way
      that it sees fit. So AsmParser can now do this:
      
      void AsmParser::CheckForValidSection() {
        if (!ParsingInlineAsm && !getStreamer().getCurrentSection()) {
          TokError("expected section directive before assembly directive");
          Out.InitToTextSection();
        }
      }
      
      Which is much more reasonable.
      
      llvm-svn: 172450
      cbb2514d
  16. Jan 07, 2013
  17. Jan 02, 2013
    • Chandler Carruth's avatar
      Move all of the header files which are involved in modelling the LLVM IR · 9fb823bb
      Chandler Carruth authored
      into their new header subdirectory: include/llvm/IR. This matches the
      directory structure of lib, and begins to correct a long standing point
      of file layout clutter in LLVM.
      
      There are still more header files to move here, but I wanted to handle
      them in separate commits to make tracking what files make sense at each
      layer easier.
      
      The only really questionable files here are the target intrinsic
      tablegen files. But that's a battle I'd rather not fight today.
      
      I've updated both CMake and Makefile build systems (I think, and my
      tests think, but I may have missed something).
      
      I've also re-sorted the includes throughout the project. I'll be
      committing updates to Clang, DragonEgg, and Polly momentarily.
      
      llvm-svn: 171366
      9fb823bb
  18. Dec 20, 2012
  19. Dec 16, 2012
    • Reed Kotler's avatar
      This patch is needed to make c++ exceptions work for mips16. · aee4d5d1
      Reed Kotler authored
      Mips16 is really a processor decoding mode (ala thumb 1) and in the same
      program, mips16 and mips32 functions can exist and can call each other.
      
      If a jal type instruction encounters an address with the lower bit set, then
      the processor switches to mips16 mode (if it is not already in it). If the
      lower bit is not set, then it switches to mips32 mode.
      
      The linker knows which functions are mips16 and which are mips32.
      When relocation is performed on code labels, this lower order bit is
      set if the code label is a mips16 code label.
      
      In general this works just fine, however when creating exception handling
      tables and dwarf, there are cases where you don't want this lower order
      bit added in.
      
      This has been traditionally distinguished in gas assembly source by using a
      different syntax for the label.
      
      lab1:      ; this will cause the lower order bit to be added
      lab2=.     ; this will not cause the lower order bit to be added
      
      In some cases, it does not matter because in dwarf and debug tables
      the difference of two labels is used and in that case the lower order
      bits subtract each other out.
      
      To fix this, I have added to mcstreamer the notion of a debuglabel.
      The default is for label and debug label to be the same. So calling
      EmitLabel and EmitDebugLabel produce the same result.
      
      For various reasons, there is only one set of labels that needs to be
      modified for the mips exceptions to work. These are the "$eh_func_beginXXX" 
      labels.
      
      Mips overrides the debug label suffix from ":" to "=." .
      
      This initial patch fixes exceptions. More changes most likely
      will be needed to DwarfCFException to make all of this work
      for actual debugging. These changes will be to emit debug labels in some
      places where a simple label is emitted now.
      
      Some historical discussion on this from gcc can be found at:
      http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00623.html
      http://gcc.gnu.org/ml/gcc-patches/2008-11/msg01273.html 
      
      llvm-svn: 170279
      aee4d5d1
  20. Dec 11, 2012
  21. Dec 04, 2012
    • Chandler Carruth's avatar
      Sort the #include lines for tools/... · 4d88a1c2
      Chandler Carruth authored
      Again, tools are trickier to pick the main module header for than
      library source files. I've started to follow the pattern of using
      LLVMContext.h when it is included as a stub for program source files.
      
      llvm-svn: 169252
      4d88a1c2
  22. Oct 12, 2012
  23. Oct 08, 2012
  24. Sep 06, 2012
  25. Aug 21, 2012
  26. Aug 17, 2012
    • Bill Wendling's avatar
      Change the `linker_private_weak_def_auto' linkage to `linkonce_odr_auto_hide' to · 34bc34ec
      Bill Wendling authored
      make it more consistent with its intended semantics.
      
      The `linker_private_weak_def_auto' linkage type was meant to automatically hide
      globals which never had their addresses taken. It has nothing to do with the
      `linker_private' linkage type, which outputs the symbols with a `l' (ell) prefix
      among other things.
      
      The intended semantic is more like the `linkonce_odr' linkage type.
      
      Change the name of the linkage type to `linkonce_odr_auto_hide'. And therefore
      changing the semantics so that it produces the correct output for the linker.
      
      Note: The old linkage name `linker_private_weak_def_auto' will still parse but
      is not a synonym for `linkonce_odr_auto_hide'. This should be removed in 4.0.
      <rdar://problem/11754934>
      
      llvm-svn: 162114
      34bc34ec
  27. Aug 09, 2012
  28. Aug 07, 2012
  29. Aug 06, 2012
  30. Jun 22, 2012
  31. May 11, 2012
  32. Apr 03, 2012
  33. Apr 02, 2012
  34. Mar 31, 2012
  35. Mar 29, 2012
    • Bill Wendling's avatar
      Make some headway towards compiling all of LLVM. · 9ee2d338
      Bill Wendling authored
      Module-level ASM may contain definitions of functions and globals. However, we
      were not telling the linker that these globals had definitions. As far as it was
      concerned, they were just declarations.
      
      Attempt to resolve this by inserting module-level ASM functions and globals into
      the '_symbol' set so that the linker will know that they have values.
      
      This gets us further towards our goal of compiling LLVM, but it still has
      problems when linking libLTO.dylib because of the `-dead_strip' flag that's
      passed to the linker.
      
      <rdar://problem/11124216>
      
      llvm-svn: 153638
      9ee2d338
Loading