Skip to content
  1. Jun 24, 2012
  2. Dec 20, 2011
  3. Nov 29, 2011
  4. Nov 12, 2011
  5. Nov 04, 2011
  6. Oct 06, 2011
  7. Sep 28, 2011
  8. Aug 23, 2011
    • Bruno Cardoso Lopes's avatar
      Introduce a pass to insert vzeroupper instructions to avoid AVX to · 2a3ffb5d
      Bruno Cardoso Lopes authored
      SSE transition penalty. The pass is enabled through the "x86-use-vzeroupper"
      llc command line option. This is only the first step (very naive and
      conservative one) to sketch out the idea, but proper DFA is coming next
      to allow smarter decisions. Comments and ideas now and in further commits
      will be very appreciated.
      
      llvm-svn: 138317
      2a3ffb5d
  9. Jul 29, 2011
    • Chandler Carruth's avatar
      Rewrite the CMake build to use explicit dependencies between libraries, · 9d7feab3
      Chandler Carruth authored
      specified in the same file that the library itself is created. This is
      more idiomatic for CMake builds, and also allows us to correctly specify
      dependencies that are missed due to bugs in the GenLibDeps perl script,
      or change from compiler to compiler. On Linux, this returns CMake to
      a place where it can relably rebuild several targets of LLVM.
      
      I have tried not to change the dependencies from the ones in the current
      auto-generated file. The only places I've really diverged are in places
      where I was seeing link failures, and added a dependency. The goal of
      this patch is not to start changing the dependencies, merely to move
      them into the correct location, and an explicit form that we can control
      and change when necessary.
      
      This also removes a serialization point in the build because we don't
      have to scan all the libraries before we begin building various tools.
      We no longer have a step of the build that regenerates a file inside the
      source tree. A few other associated cleanups fall out of this.
      
      This isn't really finished yet though. After talking to dgregor he urged
      switching to a single CMake macro to construct libraries with both
      sources and dependencies in the arguments. Migrating from the two macros
      to that style will be a follow-up patch.
      
      Also, llvm-config is still generated with GenLibDeps.pl, which means it
      still has slightly buggy dependencies. The internal CMake
      'llvm-config-like' macro uses the correct explicitly specified
      dependencies however. A future patch will switch llvm-config generation
      (when using CMake) to be based on these deps as well.
      
      This may well break Windows. I'm getting a machine set up now to dig
      into any failures there. If anyone can chime in with problems they see
      or ideas of how to solve them for Windows, much appreciated.
      
      llvm-svn: 136433
      9d7feab3
  10. Jul 26, 2011
    • Chandler Carruth's avatar
      Clean up a pile of hacks in our CMake build relating to TableGen. · 97c069c1
      Chandler Carruth authored
      The first problem to fix is to stop creating synthetic *Table_gen
      targets next to all of the LLVM libraries. These had no real effect as
      CMake specifies that add_custom_command(OUTPUT ...) directives (what the
      'tablegen(...)' stuff expands to) are implicitly added as dependencies
      to all the rules in that CMakeLists.txt.
      
      These synthetic rules started to cause problems as we started more and
      more heavily using tablegen files from *subdirectories* of the one where
      they were generated. Within those directories, the set of tablegen
      outputs was still available and so these synthetic rules added them as
      dependencies of those subdirectories. However, they were no longer
      properly associated with the custom command to generate them. Most of
      the time this "just worked" because something would get to the parent
      directory first, and run tablegen there. Once run, the files existed and
      the build proceeded happily. However, as more and more subdirectories
      have started using this, the probability of this failing to happen has
      increased. Recently with the MC refactorings, it became quite common for
      me when touching a large enough number of targets.
      
      To add insult to injury, several of the backends *tried* to fix this by
      adding explicit dependencies back to the parent directory's tablegen
      rules, but those dependencies didn't work as expected -- they weren't
      forming a linear chain, they were adding another thread in the race.
      
      This patch removes these synthetic rules completely, and adds a much
      simpler function to declare explicitly that a collection of tablegen'ed
      files are referenced by other libraries. From that, we can add explicit
      dependencies from the smaller libraries (such as every architectures
      Desc library) on this and correctly form a linear sequence. All of the
      backends are updated to use it, sometimes replacing the existing attempt
      at adding a dependency, sometimes adding a previously missing dependency
      edge.
      
      Please let me know if this causes any problems, but it fixes a rather
      persistent and problematic source of build flakiness on our end.
      
      llvm-svn: 136023
      97c069c1
  11. Jul 25, 2011
  12. Jul 15, 2011
    • Chandler Carruth's avatar
      Major update to CMake build to reflect changes in r135219 in the · 9a0001ae
      Chandler Carruth authored
      backend. Moved some MCAsmInfo files down into the MCTargetDesc
      sublibraries, removed some (i suspect long) dead files from other parts
      of the CMake build, etc. Also copied the include directory hack from the
      Makefile.
      
      Finally, updated the lib deps. I spot checked this, and think its
      correct, but review appreciated there.
      
      llvm-svn: 135234
      9a0001ae
  13. Jul 02, 2011
  14. Jun 28, 2011
  15. Jun 27, 2011
  16. Jun 25, 2011
  17. Jun 24, 2011
    • Evan Cheng's avatar
      Starting to refactor Target to separate out code that's needed to fully describe · 24753317
      Evan Cheng authored
      target machine from those that are only needed by codegen. The goal is to
      sink the essential target description into MC layer so we can start building
      MC based tools without needing to link in the entire codegen.
      
      First step is to refactor TargetRegisterInfo. This patch added a base class
      MCRegisterInfo which TargetRegisterInfo is derived from. Changed TableGen to
      separate register description from the rest of the stuff.
      
      llvm-svn: 133782
      24753317
  18. Feb 20, 2011
  19. Jan 10, 2011
  20. Jan 02, 2011
  21. Dec 31, 2010
  22. Dec 20, 2010
  23. Nov 16, 2010
  24. Nov 15, 2010
  25. Sep 14, 2010
  26. Sep 10, 2010
  27. Aug 09, 2010
    • Oscar Fuentes's avatar
      CMake: eliminated unnecessary target_link_libraries. · 212cfde6
      Oscar Fuentes authored
      Next time the build is broken due to wrong library dependencies, just
      try building again (if you are on some Unix and are building all LLVM
      targets) or ask someone to commit the regenerated LLVMLibDeps.cmake.
      
      llvm-svn: 110593
      212cfde6
  28. Jul 22, 2010
  29. Jul 20, 2010
  30. Jul 16, 2010
  31. May 13, 2010
  32. Apr 17, 2010
  33. Apr 14, 2010
  34. Mar 25, 2010
    • Jakob Stoklund Olesen's avatar
      Add a late SSEDomainFix pass that twiddles SSE instructions to avoid domain crossings. · 49e121d5
      Jakob Stoklund Olesen authored
      On Nehalem and newer CPUs there is a 2 cycle latency penalty on using a register
      in a different domain than where it was defined. Some instructions have
      equvivalents for different domains, like por/orps/orpd.
      
      The SSEDomainFix pass tries to minimize the number of domain crossings by
      changing between equvivalent opcodes where possible.
      
      This is a work in progress, in particular the pass doesn't do anything yet. SSE
      instructions are tagged with their execution domain in TableGen using the last
      two bits of TSFlags. Note that not all instructions are tagged correctly. Life
      just isn't that simple.
      
      The SSE execution domain issue is very similar to the ARM NEON/VFP pipeline
      issue handled by NEONMoveFixPass. This pass may become target independent to
      handle both.
      
      llvm-svn: 99524
      49e121d5
  35. Mar 24, 2010
  36. Mar 16, 2010
    • Daniel Dunbar's avatar
      MC: Allow modifiers in MCSymbolRefExpr, and eliminate X86MCTargetExpr. · 55992564
      Daniel Dunbar authored
       - Although it would be nice to allow this decoupling, the assembler needs to be able to reason about MCSymbolRefExprs in too many places to make this viable. We can use a target specific encoding of the variant if this becomes an issue.
       - This patch also extends llvm-mc to support parsing of the modifiers, as opposed to lumping them in with the symbol.
      
      llvm-svn: 98592
      55992564
  37. Feb 21, 2010
  38. Feb 08, 2010
  39. Feb 03, 2010
Loading