Skip to content
  1. Mar 12, 2013
    • Kevin Enderby's avatar
      Remove the assert()'s from the LLVMCreateDisasmCPU() library API and just · f536c6af
      Kevin Enderby authored
      return 0 to indicate failure to create the disassembler.  A library routine
      should not assert and just let the caller handler the error.  For example
      darwin's otool(1) will simply print an error if it ends up using a library
      that is not configured for a target it wants:
      
      % otool -tv ViewController.o
      ViewController.o:
      (__TEXT,__text) section
      can't create arm llvm disassembler
      
      This is much better than an abort which appears as a crash to the user or
      even the assert when using a Debug+Asserts built library:
      
      Assertion failed: (MAI && "Unable to create target asm info!"), function LLVMCreateDisasmCPU, file /Volumes/SandBox/llvm/lib/MC/MCDisassembler/Disassembler.cpp, line 47.
      
      radr://12539918
      
      llvm-svn: 176880
      f536c6af
  2. Mar 09, 2013
  3. Mar 07, 2013
    • Manman Ren's avatar
      Debug Info: store the files and directories for each compile unit. · 1e427208
      Manman Ren authored
      We now emit a line table for each compile unit. To reduce the prologue size
      of each line table, the files and directories used by each compile unit are
      stored in std::map<unsigned, std::vector< > > instead of std::vector< >.
      
      The prologue for a lto'ed image can be as big as 93K. Duplicating 93K for each
      compile unit causes a huge increase of debug info. With this patch, each
      prologue will only emit the files required by the compile unit.
      
      rdar://problem/13342023
      
      llvm-svn: 176605
      1e427208
  4. Feb 26, 2013
    • Jim Grosbach's avatar
      AsmParser: More generic support for integer type suffices. · 94a2260a
      Jim Grosbach authored
      For integer constants, allow 'L', 'UL' as well as 'ULL' and 'LL'. This provides
      better support for shared headers between .s and .c files that define bunches
      of constant values.
      
      rdar://9321056
      
      llvm-svn: 176118
      94a2260a
    • Bill Schmidt's avatar
      Fix PR15359. · 441907dc
      Bill Schmidt authored
      The PowerPC TLS relocation types were not previously added to the
      necessary list in MCELFStreamer::fixSymbolsInTLSFixups().  Now they are!
      
      llvm-svn: 176094
      441907dc
  5. Feb 25, 2013
  6. Feb 20, 2013
  7. Feb 19, 2013
    • Jack Carter's avatar
      ELF symbol table field st_other support, · 2f8d9d91
      Jack Carter authored
      excluding visibility bits.
      
      Generic STO handling at the Target level.
      
      The st_other field of the ELF symbol table is one
      byte in size. The first 2 bytes are used for generic
      visibility and are currently handled by llvm.
      
      The other six bits are processor specific and need 
      to be set at the target level.
      
      A couple of notes:
      
      The new static methods for accessing and setting the "other"
      flags in include/llvm/MC/MCELF.h match the style guide
      and not the other methods in the file. I don't like the
      inconsistency, but feel I should follow the prescribed 
      lowerUpper() convention.
      
      STO_ value definitions are not specified in gnu land as 
      consistently as the STT_ and STB_ fields. Probably because
      the latter were defined in a standards doc and the former
      defined partially in code. I have stuck with the full byte
      definition of the flags.
      
      Contributer: Zoran Jovanovic
      llvm-svn: 175561
      2f8d9d91
  8. Feb 16, 2013
  9. Feb 15, 2013
  10. Feb 14, 2013
  11. Feb 13, 2013
  12. Feb 12, 2013
  13. Feb 11, 2013
  14. Feb 07, 2013
  15. Feb 05, 2013
    • Manman Ren's avatar
      Dwarf: support for LTO where a single object file can have multiple line tables · 4e042a6b
      Manman Ren authored
      We generate one line table for each compilation unit in the object file.
      Reviewed by Eric and Kevin.
      
      rdar://problem/13067005
      
      llvm-svn: 174445
      4e042a6b
    • Derek Schuff's avatar
      [MC] Bundle alignment: Invalidate relaxed fragments · 90aa1d8a
      Derek Schuff authored
      Currently, when a fragment is relaxed, its size is modified, but its
      offset is not (it gets laid out as a side effect of checking whether
      it needs relaxation), then all subsequent fragments are invalidated
      because their offsets need to change. When bundling is enabled,
      relaxed fragments need to get laid out again, because the increase in
      size may push it over a bundle boundary. So instead of only
      invalidating subsequent fragments, also invalidate the fragment that
      gets relaxed, which causes it to get laid out again.
      
      This patch also fixes some trailing whitespace and fixes the
      bundling-related debug output of MCFragments.
      
      llvm-svn: 174401
      90aa1d8a
    • Logan Chien's avatar
      Link .ARM.exidx with corresponding text section. · 4b724429
      Logan Chien authored
      The sh_link in the ELF section header of .ARM.exidx should
      be filled with the section index of the corresponding text
      section.
      
      llvm-svn: 174372
      4b724429
  16. Feb 01, 2013
    • Chandler Carruth's avatar
      Fix another typo in the classof definitions that doesn't (currently) · 339468ec
      Chandler Carruth authored
      have any effect. Spotted by Eli in review, thanks!!!
      
      llvm-svn: 174121
      339468ec
    • Chandler Carruth's avatar
      Give the MCStreamer class hierarchy LLVM RTTI facilities for use with · de093ef8
      Chandler Carruth authored
      isa<> and dyn_cast<>. In several places, code is already hacking around
      the absence of this, and there seem to be several interfaces that might
      be lifted and/or devirtualized using this.
      
      This change was based on a discussion with Jim Grosbach about how best
      to handle testing for specific MCStreamer subclasses. He said that this
      was the correct end state, and everything else was too hacky so
      I decided to just make it so.
      
      No functionality should be changed here, this is just threading the kind
      through all the constructors and setting up the classof overloads.
      
      llvm-svn: 174113
      de093ef8
  17. Jan 31, 2013
    • Derek Schuff's avatar
    • Tim Northover's avatar
      Add AArch64 as an experimental target. · e0e3aefd
      Tim Northover authored
      This patch adds support for AArch64 (ARM's 64-bit architecture) to
      LLVM in the "experimental" category. Currently, it won't be built
      unless requested explicitly.
      
      This initial commit should have support for:
          + Assembly of all scalar (i.e. non-NEON, non-Crypto) instructions
            (except the late addition CRC instructions).
          + CodeGen features required for C++03 and C99.
          + Compilation for the "small" memory model: code+static data <
            4GB.
          + Absolute and position-independent code.
          + GNU-style (i.e. "__thread") TLS.
          + Debugging information.
      
      The principal omission, currently, is performance tuning.
      
      This patch excludes the NEON support also reviewed due to an outbreak of
      batshit insanity in our legal department. That will be committed soon bringing
      the changes to precisely what has been approved.
      
      Further reviews would be gratefully received.
      
      llvm-svn: 174054
      e0e3aefd
  18. Jan 30, 2013
    • Jack Carter's avatar
      This patch reworks how llvm targets set · 1bd90ff6
      Jack Carter authored
      and update ELF header e_flags.
      
      Currently gathering information such as symbol, 
      section and data is done by collecting it in an 
      MCAssembler object. From MCAssembler and MCAsmLayout 
      objects ELFObjectWriter::WriteObject() forms and 
      streams out the ELF object file.
      
      This patch just adds a few members to the MCAssember 
      class to store and access the e_flag settings. It 
      allows for runtime additions to the e_flag by 
      assembler directives. The standalone assembler can 
      get to MCAssembler from getParser().getStreamer().getAssembler().
      
      This patch is the generic infrastructure and will be
      followed by patches for ARM and Mips for their target 
      specific use.
      
      Contributer: Jack Carter
       
      llvm-svn: 173882
      1bd90ff6
Loading