Skip to content
  1. Aug 09, 2012
  2. Aug 08, 2012
  3. Aug 07, 2012
  4. Aug 06, 2012
  5. Aug 04, 2012
  6. Aug 03, 2012
    • Bob Wilson's avatar
      Fix memcmp code-gen to honor -fno-builtin. · fa59485b
      Bob Wilson authored
      I noticed that SelectionDAGBuilder::visitCall was missing a check for memcmp
      in TargetLibraryInfo, so that it would use custom code for memcmp calls even
      with -fno-builtin.  I also had to add a new -disable-simplify-libcalls option
      to llc so that I could write a test for this.
      
      llvm-svn: 161262
      fa59485b
  7. Jul 23, 2012
  8. Jul 19, 2012
  9. Jul 03, 2012
  10. Jul 02, 2012
    • Bob Wilson's avatar
      Extend TargetPassConfig to allow running only a subset of the normal passes. · cac3b906
      Bob Wilson authored
      This is still a work in progress but I believe it is currently good enough
      to fix PR13122 "Need unit test driver for codegen IR passes".  For example,
      you can run llc with -stop-after=loop-reduce to have it dump out the IR after
      running LSR.  Serializing machine-level IR is not yet supported but we have
      some patches in progress for that.
      
      The plan is to serialize the IR to a YAML file, containing separate sections
      for the LLVM IR, machine-level IR, and whatever other info is needed.  Chad
      suggested that we stash the stop-after pass in the YAML file and use that
      instead of the start-after option to figure out where to restart the
      compilation.  I think that's a great idea, but since it's not implemented yet
      I put the -start-after option into this patch for testing purposes.
      
      llvm-svn: 159570
      cac3b906
    • Evan Cheng's avatar
      Need a space. · 58aeca08
      Evan Cheng authored
      llvm-svn: 159565
      58aeca08
    • Alexey Samsonov's avatar
      This patch extends the libLLVMDebugInfo which contains a minimalistic DWARF parser: · f4462fa3
      Alexey Samsonov authored
      1) DIContext is now able to return function name for a given instruction address (besides file/line info).
      2) llvm-dwarfdump accepts flag --functions that prints the function name (if address is specified by --address flag).
      3) test case that checks the basic functionality of llvm-dwarfdump added
      
      llvm-svn: 159512
      f4462fa3
  11. Jun 28, 2012
  12. Jun 27, 2012
  13. Jun 26, 2012
  14. Jun 23, 2012
  15. Jun 22, 2012
    • Evan Cheng's avatar
      Forgot this patch in r159023. · 95847993
      Evan Cheng authored
      llvm-svn: 159028
      95847993
    • Lang Hames's avatar
      Rename -allow-excess-fp-precision flag to -fuse-fp-ops, and switch from a · b8650f10
      Lang Hames authored
      boolean flag to an enum: { Fast, Standard, Strict } (default = Standard).
      
      This option controls the creation by optimizations of fused FP ops that store
      intermediate results in higher precision than IEEE allows (E.g. FMAs). The
      behavior of this option is intended to match the behaviour specified by a
      soon-to-be-introduced frontend flag: '-ffuse-fp-ops'.
      
      Fast mode - allows formation of fused FP ops whenever they're profitable.
      
      Standard mode - allow fusion only for 'blessed' FP ops. At present the only
      blessed op is the fmuladd intrinsic. In the future more blessed ops may be
      added.
      
      Strict mode - allow fusion only if/when it can be proven that the excess
      precision won't effect the result.
      
      Note: This option only controls formation of fused ops by the optimizers.  Fused
      operations that are explicitly requested (e.g. FMA via the llvm.fma.* intrinsic)
      will always be honored, regardless of the value of this option.
      
      Internally TargetOptions::AllowExcessFPPrecision has been replaced by
      TargetOptions::AllowFPOpFusion.
      
      llvm-svn: 158956
      b8650f10
  16. Jun 21, 2012
  17. Jun 20, 2012
    • Lang Hames's avatar
      Add DAG-combines for aggressive FMA formation. · 39fb1d08
      Lang Hames authored
      This patch adds DAG combines to form FMAs from pairs of FADD + FMUL or
      FSUB + FMUL. The combines are performed when:
      (a) Either
            AllowExcessFPPrecision option (-enable-excess-fp-precision for llc)
              OR
            UnsafeFPMath option (-enable-unsafe-fp-math)
          are set, and
      (b) TargetLoweringInfo::isFMAFasterThanMulAndAdd(VT) is true for the type of
          the FADD/FSUB, and
      (c) The FMUL only has one user (the FADD/FSUB).
      
      If your target has fast FMA instructions you can make use of these combines by
      overriding TargetLoweringInfo::isFMAFasterThanMulAndAdd(VT) to return true for
      types supported by your FMA instruction, and adding patterns to match ISD::FMA
      to your FMA instructions.
      
      llvm-svn: 158757
      39fb1d08
  18. Jun 19, 2012
    • Rafael Espindola's avatar
      Move the support for using .init_array from ARM to the generic · ca3e0ee8
      Rafael Espindola authored
      TargetLoweringObjectFileELF. Use this to support it on X86. Unlike ARM,
      on X86 it is not easy to find out if .init_array should be used or not, so
      the decision is made via TargetOptions and defaults to off.
      
      Add a command line option to llc that enables it.
      
      llvm-svn: 158692
      ca3e0ee8
  19. Jun 15, 2012
  20. Jun 13, 2012
  21. Jun 11, 2012
  22. Jun 07, 2012
  23. Jun 06, 2012
  24. May 30, 2012
    • David Blaikie's avatar
      Reinstate -O3 for LTO. · 787705ae
      David Blaikie authored
      This broke in r144788 when the CodeGenOpt option was moved from everywhere else
      (specifically, from addPassesToEmitFile) to createTargetMachine. Since
      LTOCodeGenerator wasn't passing the 4th argument, when the 4th parameter became
      the 3rd, it silently continued to compile (int->bool conversion) but meant
      something completely different.
      
      This change preserves the existing (accidental) and previous (default)
      semantics of the addPassesToEmitFile and restores the previous/intended
      CodeGenOpt argument by passing it appropriately to createTargetMachine.
      
      (discovered by pending changes to -Wconversion to catch constant->bool
      conversions)
      
      llvm-svn: 157705
      787705ae
    • Bob Wilson's avatar
      Add an insertPass API to TargetPassConfig. <rdar://problem/11498613> · 33e5188c
      Bob Wilson authored
      Besides adding the new insertPass function, this patch uses it to
      enhance the existing -print-machineinstrs so that the MachineInstrs
      after a specific pass can be printed.
      
      Patch by Bin Zeng!
      
      llvm-svn: 157655
      33e5188c
  25. May 29, 2012
  26. May 20, 2012
  27. May 19, 2012
  28. May 18, 2012
    • Jim Grosbach's avatar
      Refactor data-in-code annotations. · 4b63d2ae
      Jim Grosbach authored
      Use a dedicated MachO load command to annotate data-in-code regions.
      This is the same format the linker produces for final executable images,
      allowing consistency of representation and use of introspection tools
      for both object and executable files.
      
      Data-in-code regions are annotated via ".data_region"/".end_data_region"
      directive pairs, with an optional region type.
      
      data_region_directive := ".data_region" { region_type }
      region_type := "jt8" | "jt16" | "jt32" | "jta32"
      end_data_region_directive := ".end_data_region"
      
      The previous handling of ARM-style "$d.*" labels was broken and has
      been removed. Specifically, it didn't handle ARM vs. Thumb mode when
      marking the end of the section.
      
      rdar://11459456
      
      llvm-svn: 157062
      4b63d2ae
    • Kevin Enderby's avatar
      Fixed a bug in llvm-objdump when disassembling using -macho option for a binary · badd100c
      Kevin Enderby authored
      containing no symbols.  Fixed the crash and fixed it not disassembling anything.
      
      llvm-svn: 157031
      badd100c
  29. May 16, 2012
Loading