Skip to content
  1. May 29, 2013
  2. May 25, 2013
  3. Apr 17, 2013
  4. Feb 01, 2013
  5. 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
  6. Jan 07, 2013
  7. 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
  8. Dec 20, 2012
  9. 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
  10. Dec 11, 2012
  11. 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
  12. Oct 12, 2012
  13. Oct 08, 2012
  14. Sep 06, 2012
  15. Aug 21, 2012
  16. 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
  17. Aug 09, 2012
  18. Aug 07, 2012
  19. Aug 06, 2012
  20. Jun 22, 2012
  21. May 11, 2012
  22. Apr 03, 2012
  23. Apr 02, 2012
  24. Mar 31, 2012
  25. 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
    • Bill Wendling's avatar
      Cache the end() iterator. · 763acfcb
      Bill Wendling authored
      llvm-svn: 153632
      763acfcb
    • Bill Wendling's avatar
      Cleanup some whitespaces. · 7e58b386
      Bill Wendling authored
      llvm-svn: 153612
      7e58b386
  26. Mar 28, 2012
  27. Feb 05, 2012
    • Chris Lattner's avatar
      reapply the patches reverted in r149470 that reenable ConstantDataArray, · cf9e8f69
      Chris Lattner authored
      but with a critical fix to the SelectionDAG code that optimizes copies
      from strings into immediate stores: the previous code was stopping reading
      string data at the first nul.  Address this by adding a new argument to
      llvm::getConstantStringInfo, preserving the behavior before the patch.
      
      llvm-svn: 149800
      cf9e8f69
  28. Feb 01, 2012
  29. Jan 31, 2012
  30. Jan 27, 2012
  31. Jan 07, 2012
  32. Dec 02, 2011
    • Nick Lewycky's avatar
      Move global variables in TargetMachine into new TargetOptions class. As an API · 50f02cb2
      Nick Lewycky authored
      change, now you need a TargetOptions object to create a TargetMachine. Clang
      patch to follow.
      
      One small functionality change in PTX. PTX had commented out the machine
      verifier parts in their copy of printAndVerify. That now calls the version in
      LLVMTargetMachine. Users of PTX who need verification disabled should rely on
      not passing the command-line flag to enable it.
      
      llvm-svn: 145714
      50f02cb2
  33. Nov 04, 2011
Loading