Skip to content
  1. Jun 08, 2017
  2. Jun 07, 2017
  3. Jun 06, 2017
    • Sanjay Patel's avatar
      [CGP] fix formatting/typos in MemCmpExpansion; NFC · b4b7df95
      Sanjay Patel authored
      llvm-svn: 304830
      b4b7df95
    • Matthias Braun's avatar
      llc: Add ability to parse mir from stdin · 7e23fc05
      Matthias Braun authored
      - Add -x <language> option to switch between IR and MIR inputs.
      - Change MIR parser to read from stdin when filename is '-'.
      - Add a simple mir roundtrip test.
      
      llvm-svn: 304825
      7e23fc05
    • Sanjay Patel's avatar
      2726ea2a
    • Matthias Braun's avatar
      MIRPrinter: Avoid assert() when printing empty INLINEASM strings. · 8b5f9e44
      Matthias Braun authored
      CodeGen uses MO_ExternalSymbol to represent the inline assembly strings.
      Empty strings for symbol names appear to be invalid. For now just
      special case the output code to avoid hitting an `assert()` in
      `printLLVMNameWithoutPrefix()`.
      
      This fixes https://llvm.org/PR33317
      
      llvm-svn: 304815
      8b5f9e44
    • Simon Pilgrim's avatar
      Fix spelling mistake in getRThroughput static function names. NFCI. · 3446ff4d
      Simon Pilgrim authored
      llvm-svn: 304799
      3446ff4d
    • Chandler Carruth's avatar
      Sort the remaining #include lines in include/... and lib/.... · 6bda14b3
      Chandler Carruth authored
      I did this a long time ago with a janky python script, but now
      clang-format has built-in support for this. I fed clang-format every
      line with a #include and let it re-sort things according to the precise
      LLVM rules for include ordering baked into clang-format these days.
      
      I've reverted a number of files where the results of sorting includes
      isn't healthy. Either places where we have legacy code relying on
      particular include ordering (where possible, I'll fix these separately)
      or where we have particular formatting around #include lines that
      I didn't want to disturb in this patch.
      
      This patch is *entirely* mechanical. If you get merge conflicts or
      anything, just ignore the changes in this patch and run clang-format
      over your #include lines in the files.
      
      Sorry for any noise here, but it is important to keep these things
      stable. I was seeing an increasing number of patches with irrelevant
      re-ordering of #include lines because clang-format was used. This patch
      at least isolates that churn, makes it easy to skip when resolving
      conflicts, and gets us to a clean baseline (again).
      
      llvm-svn: 304787
      6bda14b3
    • Vivek Pandya's avatar
      · 56d87ef5
      Vivek Pandya authored
      [Improve CodeGen Testing] This patch renables MIRPrinter print fields which have value equal to its default.
      If -simplify-mir option is passed then MIRPrinter will not print such fields.
      This change also required some lit test cases in CodeGen directory to be changed.
      
      Reviewed By: MatzeB
      
      Differential Revision: https://reviews.llvm.org/D32304
      
      llvm-svn: 304779
      56d87ef5
    • Mandeep Singh Grang's avatar
      [llvm] Remove double semicolons · 5e1697ef
      Mandeep Singh Grang authored
      Reviewers: craig.topper, arsenm, mehdi_amini
      
      Reviewed By: mehdi_amini
      
      Subscribers: mehdi_amini, wdng, nhaehnle, javed.absar, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D33924
      
      llvm-svn: 304767
      5e1697ef
    • Matthias Braun's avatar
      CodeGen: Refactor MIR parsing · 7bda1958
      Matthias Braun authored
      When parsing .mir files immediately construct the MachineFunctions and
      put them into MachineModuleInfo.
      
      This allows us to get rid of the delayed construction (and delayed error
      reporting) through the MachineFunctionInitialzier interface.
      
      Differential Revision: https://reviews.llvm.org/D33809
      
      llvm-svn: 304758
      7bda1958
    • Matthias Braun's avatar
      CodeGen/LLVMTargetMachine: Refactor ISel pass construction; NFCI · c7c06f15
      Matthias Braun authored
      - Move ISel (and pre-isel) pass construction into TargetPassConfig
      - Extract AsmPrinter construction into a helper function
      
      Putting the ISel code into TargetPassConfig seems a lot more natural and
      both changes together make make it easier to build custom pipelines
      involving .mir in an upcoming commit. This moves MachineModuleInfo to an
      earlier place in the pass pipeline which shouldn't have any effect.
      
      llvm-svn: 304754
      c7c06f15
    • Quentin Colombet's avatar
      [InlineSpiller] Don't spill fully undef values · c668935d
      Quentin Colombet authored
      Althought it is not wrong to spill undef values, it is useless and harms
      both code size and runtime. Before spilling a value, check that its
      content actually matters.
      
      http://www.llvm.org/PR33311
      
      llvm-svn: 304752
      c668935d
    • Matt Arsenault's avatar
      Remove double semicolon · 540d1331
      Matt Arsenault authored
      llvm-svn: 304749
      540d1331
    • Matthias Braun's avatar
      Remove some #include from StackProtector.h; NFC · e89461a4
      Matthias Braun authored
      llvm-svn: 304748
      e89461a4
    • Matt Arsenault's avatar
      RenameIndependentSubregs: Fix handling of undef tied operands · 9e5b5053
      Matt Arsenault authored
      If a tied source operand was undef, it would be replaced but not
      update the other tied operand, which would end up using different
      virtual registers.
      
      llvm-svn: 304747
      9e5b5053
    • Volkan Keles's avatar
      [GlobalISel] IRTranslator: Add MachineMemOperand to target memory intrinsics · ebe6bb90
      Volkan Keles authored
      Reviewers: qcolombet, ab, t.p.northover, aditya_nandakumar, dsanders
      
      Reviewed By: qcolombet
      
      Subscribers: rovka, kristof.beyls, javed.absar, igorb, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D33724
      
      llvm-svn: 304743
      ebe6bb90
    • Davide Italiano's avatar
      [SelectionDAG] Update the dominator after splitting critical edges. · fb4d5c09
      Davide Italiano authored
      Running `llc -verify-dom-info` on the attached testcase results in a
      crash in the verifier, due to a stale dominator tree.
      
      i.e.
      
        DominatorTree is not up to date!
        Computed:
        =============================--------------------------------
        Inorder Dominator Tree:
          [1] %safe_mod_func_uint8_t_u_u.exit.i.i.i {0,7}
            [2] %lor.lhs.false.i61.i.i.i {1,2}
            [2] %safe_mod_func_int8_t_s_s.exit.i.i.i {3,6}
              [3] %safe_div_func_int64_t_s_s.exit66.i.i.i {4,5}
      
        Actual:
        =============================--------------------------------
        Inorder Dominator Tree:
          [1] %safe_mod_func_uint8_t_u_u.exit.i.i.i {0,9}
            [2] %lor.lhs.false.i61.i.i.i {1,2}
            [2] %safe_mod_func_int8_t_s_s.exit.i.i.i {3,8}
              [3] %safe_div_func_int64_t_s_s.exit66.i.i.i {4,5}
              [3] %safe_mod_func_int8_t_s_s.exit.i.i.i.lor.lhs.false.i61.i.i.i_crit_edge {6,7}
      
      This is because in `SelectionDAGIsel` we split critical edges without
      updating the corresponding dominator for the function (and we claim
      in `MachineFunctionPass::getAnalysisUsage()` that the domtree is preserved).
      
      We could either stop preserving the domtree in `getAnalysisUsage`
      or tell `splitCriticalEdge()` to update it.
      As the second option is easy to implement, that's the one I chose.
      
      Differential Revision:  https://reviews.llvm.org/D33800
      
      llvm-svn: 304742
      fb4d5c09
  4. Jun 05, 2017
    • Saleem Abdulrasool's avatar
      CodeGen: add support for emitting ObjC image info · 4c47434b
      Saleem Abdulrasool authored
      This ensures that we can emit the ObjC Image Info structure on COFF and
      ELF as well.  The frontend already would attempt to emit this
      information but would get dropped when generating assembly or an object
      file.
      
      llvm-svn: 304736
      4c47434b
    • Sanjay Patel's avatar
      [DAGCombine] Fix unchecked calls to DAGCombiner::*ExtPromoteOperand · 6350de76
      Sanjay Patel authored
      Other calls to DAGCombiner::*PromoteOperand check the result, but here it could cause an assertion in getNode. 
      Falling back to any extend in this case instead of failing outright seems correct to me.
      
      No test case because:
      The failure was triggered by an out of tree backend. In order to trigger it, a backend would need to overload 
      TargetLowering::IsDesirableToPromoteOp to return true for a type for which ISD::SIGN_EXTEND_INREG is marked 
      illegal. In tree, only X86 overloads and sometimes returns true for MVT::i16 yet it marks 
      setOperationAction(ISD::SIGN_EXTEND_INREG, MVT::i16  , Legal);.
      
      Patch by Jacob Young!
      
      Differential Revision: https://reviews.llvm.org/D33633
      
      llvm-svn: 304723
      6350de76
    • Javed Absar's avatar
      Add support for #pragma clang section · b16d1468
      Javed Absar authored
      This patch provides a means to specify section-names for global variables,
      functions and static variables, using #pragma directives.
      This feature is only defined to work sensibly for ELF targets.
      One can specify section names as:
      #pragma clang section bss="myBSS" data="myData" rodata="myRodata" text="myText"
      One can "unspecify" a section name with empty string e.g.
      #pragma clang section bss="" data="" text="" rodata=""
      
      Reviewers: Roger Ferrer, Jonathan Roelofs, Reid Kleckner
      Differential Revision: https://reviews.llvm.org/D33413
      
      llvm-svn: 304704
      b16d1468
  5. Jun 03, 2017
Loading