Skip to content
  1. Aug 01, 2013
  2. Jul 16, 2013
  3. Jul 11, 2013
    • Hal Finkel's avatar
      Initialize AsmPrinter::MF in the constructor · 6161b940
      Hal Finkel authored
      MF is normally initialized in AsmPrinter::SetupMachineFunction, but if the file
      contains only globals (no functions), then we need this to be initialized
      because, when encountering an error, lowerConstant() references it.
      
      This should fix the non-deterministic failures of
      test/CodeGen/X86/nonconst-static-iv.ll, etc.
      
      llvm-svn: 186068
      6161b940
  4. Jul 09, 2013
    • Adrian Prantl's avatar
      Reapply an improved version of r180816/180817. · 418d1d1e
      Adrian Prantl authored
      Change the informal convention of DBG_VALUE machine instructions so that
      we can express a register-indirect address with an offset of 0.
      The old convention was that a DBG_VALUE is a register-indirect value if
      the offset (operand 1) is nonzero. The new convention is that a DBG_VALUE
      is register-indirect if the first operand is a register and the second
      operand is an immediate. For plain register values the combination reg,
      reg is used. MachineInstrBuilder::BuildMI knows how to build the new
      DBG_VALUES.
      
      rdar://problem/13658587
      
      llvm-svn: 185966
      418d1d1e
  5. Jul 04, 2013
    • Nico Rieck's avatar
      Initialize object file info before output streamer · 316c3740
      Nico Rieck authored
      r179494 switched to using the object file info to retrieve the default text
      section for some MC streamers. It is possible that initializing an MC
      streamer can request sections before the object file info is initialized
      when the AutoInitSections flag is set on the streamer.
      
      llvm-svn: 185670
      316c3740
  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 25, 2013
  8. Jun 19, 2013
    • David Blaikie's avatar
      DebugInfo: PR14763/r183329 correct the location of indirect parameters · 81a4dc75
      David Blaikie authored
      We had been papering over a problem with location info for non-trivial
      types passed by value by emitting their type as references (this caused
      the debugger to interpret the location information correctly, but broke
      the type of the function). r183329 corrected the type information but
      lead to the debugger interpreting the pointer parameter as the value -
      the debug info describing the location needed an extra dereference.
      
      Use a new flag in DIVariable to add the extra indirection (either by
      promoting an existing DW_OP_reg (parameter passed in a register) to
      DW_OP_breg + 0 or by adding DW_OP_deref to an existing DW_OP_breg + n
      (parameter passed on the stack).
      
      llvm-svn: 184368
      81a4dc75
  9. Jun 16, 2013
    • David Blaikie's avatar
      DebugInfo: remove target-specific Frame Index handling for DBG_VALUE MachineInstrs · b735b4d6
      David Blaikie authored
      Frame index handling is now target-agnostic, so delete the target hooks
      for creation & asm printing of target-specific addressing in DBG_VALUEs
      and any related functions.
      
      llvm-svn: 184067
      b735b4d6
    • David Blaikie's avatar
      Debug Info: Simplify Frame Index handling in DBG_VALUE Machine Instructions · 0252265b
      David Blaikie authored
      Rather than using the full power of target-specific addressing modes in
      DBG_VALUEs with Frame Indicies, simply use Frame Index + Offset. This
      reduces the complexity of debug info handling down to two
      representations of values (reg+offset and frame index+offset) rather
      than three or four.
      
      Ideally we could ensure that frame indicies had been eliminated by the
      time we reached an assembly or dwarf generation, but I haven't spent the
      time to figure out where the FIs are leaking through into that & whether
      there's a good place to convert them. Some FI+offset=>reg+offset
      conversion is done (see PrologEpilogInserter, for example) which is
      necessary for some SelectionDAG assumptions about registers, I believe,
      but it might be possible to make this a more thorough conversion &
      ensure there are no remaining FIs no matter how instruction selection
      is performed.
      
      llvm-svn: 184066
      0252265b
  10. Jun 15, 2013
  11. Jun 07, 2013
  12. May 29, 2013
  13. May 13, 2013
    • Rafael Espindola's avatar
      Remove the MachineMove class. · 227144c2
      Rafael Espindola authored
      It was just a less powerful and more confusing version of
      MCCFIInstruction. A side effect is that, since MCCFIInstruction uses
      dwarf register numbers, calls to getDwarfRegNum are pushed out, which
      should allow further simplifications.
      
      I left the MachineModuleInfo::addFrameMove interface unchanged since
      this patch was already fairly big.
      
      llvm-svn: 181680
      227144c2
  14. May 11, 2013
  15. May 02, 2013
  16. May 01, 2013
  17. Apr 30, 2013
  18. Apr 27, 2013
    • Eric Christopher's avatar
      Use the target triple from the target machine rather than the module · 203e12bf
      Eric Christopher authored
      to determine whether or not we're on a darwin platform for debug code
      emitting.
      
      Solves the problem of a module with no triple on the command line
      and no triple in the module using non-gdb ok features on darwin. Fix
      up the member-pointers test to check the correct things for cross
      platform (DW_FORM_flag is a good prefix).
      
      Unfortunately no testcase because I have no ideas how to test something
      without a triple and without a triple in the module yet check
      precisely on two platforms. Ideas welcome.
      
      llvm-svn: 180660
      203e12bf
  19. Apr 26, 2013
    • Adrian Prantl's avatar
      Cleanup and document MachineLocation. · d4c0dd47
      Adrian Prantl authored
      Clarify documentation and API to make the difference between register and
      register-indirect addressed locations more explicit. Put in a comment
      to point out that with the current implementation we cannot specify
      a register-indirect location with offset 0 (a breg 0 in DWARF).
      No functionality change intended.
      
      rdar://problem/13658587
      
      llvm-svn: 180641
      d4c0dd47
  20. Apr 22, 2013
  21. Apr 17, 2013
  22. Jan 11, 2013
  23. Jan 09, 2013
  24. Jan 08, 2013
  25. 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
  26. Dec 30, 2012
  27. Dec 12, 2012
    • Pedro Artigas's avatar
      · 7212ee45
      Pedro Artigas authored
      Make the MCStreamer have a reset method and call that after finalization of the asm printer, 
      also changed MCContext to a single reset only method for simplicity as requested on the list
      
      llvm-svn: 170041
      7212ee45
  28. Dec 10, 2012
  29. Dec 03, 2012
    • Chandler Carruth's avatar
      Use the new script to sort the includes of every file under lib. · ed0881b2
      Chandler Carruth authored
      Sooooo many of these had incorrect or strange main module includes.
      I have manually inspected all of these, and fixed the main module
      include to be the nearest plausible thing I could find. If you own or
      care about any of these source files, I encourage you to take some time
      and check that these edits were sensible. I can't have broken anything
      (I strictly added headers, and reordered them, never removed), but they
      may not be the headers you'd really like to identify as containing the
      API being implemented.
      
      Many forward declarations and missing includes were added to a header
      files to allow them to parse cleanly when included first. The main
      module rule does in fact have its merits. =]
      
      llvm-svn: 169131
      ed0881b2
  30. Nov 27, 2012
    • Ulrich Weigand's avatar
      Never use .lcomm on platforms where it does not accept an alignment · e5f94058
      Ulrich Weigand authored
      argument.  Instead, use a pair of .local and .comm directives.
      
      This avoids spurious differences between binaries built by the
      integrated assembler vs. those built by the external assembler,
      since the external assembler may impose alignment requirements
      on .lcomm symbols where the integrated assembler does not.
      
      llvm-svn: 168704
      e5f94058
  31. Nov 20, 2012
  32. Nov 01, 2012
    • Chandler Carruth's avatar
      Revert the majority of the next patch in the address space series: · 5da3f051
      Chandler Carruth authored
      r165941: Resubmit the changes to llvm core to update the functions to
               support different pointer sizes on a per address space basis.
      
      Despite this commit log, this change primarily changed stuff outside of
      VMCore, and those changes do not carry any tests for correctness (or
      even plausibility), and we have consistently found questionable or flat
      out incorrect cases in these changes. Most of them are probably correct,
      but we need to devise a system that makes it more clear when we have
      handled the address space concerns correctly, and ideally each pass that
      gets updated would receive an accompanying test case that exercises that
      pass specificaly w.r.t. alternate address spaces.
      
      However, from this commit, I have retained the new C API entry points.
      Those were an orthogonal change that probably should have been split
      apart, but they seem entirely good.
      
      In several places the changes were very obvious cleanups with no actual
      multiple address space code added; these I have not reverted when
      I spotted them.
      
      In a few other places there were merge conflicts due to a cleaner
      solution being implemented later, often not using address spaces at all.
      In those cases, I've preserved the new code which isn't address space
      dependent.
      
      This is part of my ongoing effort to clean out the partial address space
      code which carries high risk and low test coverage, and not likely to be
      finished before the 3.2 release looms closer. Duncan and I would both
      like to see the above issues addressed before we return to these
      changes.
      
      llvm-svn: 167222
      5da3f051
    • Chandler Carruth's avatar
      Revert the series of commits starting with r166578 which introduced the · 7ec5085e
      Chandler Carruth authored
      getIntPtrType support for multiple address spaces via a pointer type,
      and also introduced a crasher bug in the constant folder reported in
      PR14233.
      
      These commits also contained several problems that should really be
      addressed before they are re-committed. I have avoided reverting various
      cleanups to the DataLayout APIs that are reasonable to have moving
      forward in order to reduce the amount of churn, and minimize the number
      of commits that were reverted. I've also manually updated merge
      conflicts and manually arranged for the getIntPtrType function to stay
      in DataLayout and to be defined in a plausible way after this revert.
      
      Thanks to Duncan for working through this exact strategy with me, and
      Nick Lewycky for tracking down the really annoying crasher this
      triggered. (Test case to follow in its own commit.)
      
      After discussing with Duncan extensively, and based on a note from
      Micah, I'm going to continue to back out some more of the more
      problematic patches in this series in order to ensure we go into the
      LLVM 3.2 branch with a reasonable story here. I'll send a note to
      llvmdev explaining what's going on and why.
      
      Summary of reverted revisions:
      
      r166634: Fix a compiler warning with an unused variable.
      r166607: Add some cleanup to the DataLayout changes requested by
               Chandler.
      r166596: Revert "Back out r166591, not sure why this made it through
               since I cancelled the command. Bleh, sorry about this!
      r166591: Delete a directory that wasn't supposed to be checked in yet.
      r166578: Add in support for getIntPtrType to get the pointer type based
               on the address space.
      llvm-svn: 167221
      7ec5085e
  33. Oct 24, 2012
  34. Oct 15, 2012
Loading