Skip to content
  1. Feb 27, 2014
  2. Feb 26, 2014
  3. Feb 25, 2014
    • Rafael Espindola's avatar
      Fix resetting the DataLayout in a Module. · 248ac139
      Rafael Espindola authored
      No tool does this currently, but as everything else in a module we should be
      able to change its DataLayout.
      
      Most of the fix is in DataLayout to make sure it can be reset properly.
      
      The test uses Module::setDataLayout since the fact that we mutate a DataLayout
      is an implementation detail. The module could hold a OwningPtr<DataLayout> and
      the DataLayout itself could be immutable.
      
      Thanks to Philip Reames for pushing me in the right direction.
      
      llvm-svn: 202198
      248ac139
    • Rafael Espindola's avatar
      Store a DataLayout in Module. · f863ee29
      Rafael Espindola authored
      Now that DataLayout is not a pass, store one in Module.
      
      Since the C API expects to be able to get a char* to the datalayout description,
      we have to keep a std::string somewhere. This patch keeps it in Module and also
      uses it to represent modules without a DataLayout.
      
      Once DataLayout is mandatory, we should probably move the string to DataLayout
      itself since it won't be necessary anymore to represent the special case of a
      module without a DataLayout.
      
      llvm-svn: 202190
      f863ee29
    • Rafael Espindola's avatar
      Make DataLayout a plain object, not a pass. · 93512512
      Rafael Espindola authored
      Instead, have a DataLayoutPass that holds one. This will allow parts of LLVM
      don't don't handle passes to also use DataLayout.
      
      llvm-svn: 202168
      93512512
  4. Feb 24, 2014
    • Rafael Espindola's avatar
      Replace the F_Binary flag with a F_Text one. · 90c7f1cc
      Rafael Espindola authored
      After this I will set the default back to F_None. The advantage is that
      before this patch forgetting to set F_Binary would corrupt a file on windows.
      Forgetting to set F_Text produces one that cannot be read in notepad, which
      is a better failure mode :-)
      
      llvm-svn: 202052
      90c7f1cc
    • Rafael Espindola's avatar
      Don't make F_None the default. · 7dbcdd08
      Rafael Espindola authored
      This will make it easier to switch the default to being binary files.
      
      llvm-svn: 202042
      7dbcdd08
  5. Feb 22, 2014
  6. Feb 19, 2014
    • Rafael Espindola's avatar
      Add back r201608, r201622, r201624 and r201625 · daeafb4c
      Rafael Espindola authored
      r201608 made llvm corretly handle private globals with MachO. r201622 fixed
      a bug in it and r201624 and r201625 were changes for using private linkage,
      assuming that llvm would do the right thing.
      
      They all got reverted because r201608 introduced a crash in LTO. This patch
      includes a fix for that. The issue was that TargetLoweringObjectFile now has
      to be initialized before we can mangle names of private globals. This is
      trivially true during the normal codegen pipeline (the asm printer does it),
      but LTO has to do it manually.
      
      llvm-svn: 201700
      daeafb4c
    • Daniel Jasper's avatar
      Revert r201622 and r201608. · 7e198ad8
      Daniel Jasper authored
      This causes the LLVMgold plugin to segfault. More information on the
      replies to r201608.
      
      llvm-svn: 201669
      7e198ad8
  7. Feb 18, 2014
    • Rafael Espindola's avatar
      Fix PR18743. · 09dcc6a5
      Rafael Espindola authored
      The IR
      @foo = private constant i32 42
      
      is valid, but before this patch we would produce an invalid MachO from it. It
      was invalid because it would use an L label in a section where the liker needs
      the labels in order to atomize it.
      
      One way of fixing it would be to just reject this IR in the backend, but that
      would not be very front end friendly.
      
      What this patch does is use an 'l' prefix in sections that we know the linker
      requires symbols for atomizing them. This allows frontends to just use
      private and not worry about which sections they go to or how the linker handles
      them.
      
      One small issue with this strategy is that now a symbol name depends on the
      section, which is not available before codegen. This is not a problem in
      practice. The reason is that it only happens with private linkage, which will
      be ignored by the non codegen users (llvm-nm and llvm-ar).
      
      llvm-svn: 201608
      09dcc6a5
  8. Feb 16, 2014
  9. Feb 14, 2014
    • Rafael Espindola's avatar
      Add extern template instantiations of llvm::Calculate. · 30616362
      Rafael Espindola authored
      This should be a small build time improvement in general and fixes
      the build on OS X with -DBUILD_SHARED_LIBS=ON.
      
      The issue is that not all users are including GenericDomTreeConstruction.h,
      causing undefined references when ld64 managed to hide the
      linkonce_odr symbols.
      
      llvm-svn: 201440
      30616362
  10. Feb 13, 2014
  11. Feb 10, 2014
  12. Feb 06, 2014
  13. Feb 05, 2014
  14. Feb 04, 2014
    • Justin Bogner's avatar
      llvm-cov: Fix include order in GCOV.cpp · df82c62f
      Justin Bogner authored
      llvm-svn: 200796
      df82c62f
    • Justin Bogner's avatar
      llvm-cov: Implement the preserve-paths flag · c6af3506
      Justin Bogner authored
      Until now, when a path in a gcno file included a directory, we would
      emit our .gcov file in that directory, whereas gcov always emits the
      file in the current directory. In doing so, this implements gcov's
      strange name-mangling -p flag, which is needed to avoid clobbering
      files when two with the same name exist in different directories.
      
      The path mangling is a bit ugly and only handles unix-like paths, but
      it's simple, and it doesn't make any guesses as to how it should
      behave outside of what gcov documents. If we decide this should be
      cross platform later, we can consider the compatibility implications
      then.
      
      llvm-svn: 200754
      c6af3506
    • David Blaikie's avatar
      DIBuilder: simplify array generation to produce true zero-length arrays · 2c7a2684
      David Blaikie authored
      For some anachronistic reason we were producing {i32 0} for zero-length
      debug info arrays.
      
      (this change is paired with a Clang change and may cause temporary
      buildbot noise)
      
      Let's not.
      
      llvm-svn: 200721
      2c7a2684
  15. Feb 01, 2014
  16. Jan 31, 2014
    • Reid Kleckner's avatar
      [ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret' · 1c843228
      Reid Kleckner authored
      MSVC always places the 'this' parameter for a method first.  The
      implicit 'sret' pointer for methods always comes second.  We already
      implement this for __thiscall by putting sret parameters on the stack,
      but __cdecl methods require putting both parameters on the stack in
      opposite order.
      
      Using a special calling convention allows frontends to keep the sret
      parameter first, which avoids breaking lots of assumptions in LLVM and
      Clang.
      
      Fixes PR15768 with the corresponding change in Clang.
      
      Reviewers: ributzka, majnemer
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2663
      
      llvm-svn: 200561
      1c843228
  17. Jan 30, 2014
  18. Jan 29, 2014
  19. Jan 28, 2014
  20. Jan 25, 2014
Loading