Skip to content
  1. Jan 28, 2017
    • Evgeniy Stepanov's avatar
      Fix memory leak in globalisel. · d0852873
      Evgeniy Stepanov authored
          #0 0x89cdeb in operator new[](unsigned long) /code/llvm/projects/compiler-rt/lib/asan/asan_new_delete.cc:84:37
          #1 0x4ec87c4 in llvm::RegisterBankInfo::ValueMapping const* llvm::RegisterBankInfo::getOperandsMapping<llvm::RegisterBankInfo::ValueMapping const* const*>(llvm::RegisterBankInfo::ValueMapping const* const*, llvm::RegisterBankInfo::ValueMapping const* const*) const /code/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp:297:9
          #2 0x9327ee in llvm::AArch64RegisterBankInfo::getInstrMapping(llvm::MachineInstr const&) const /code/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp:540:30
          #3 0x4eb8d07 in llvm::RegBankSelect::assignInstr(llvm::MachineInstr&) /code/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp:546:24
          #4 0x4eb9dd2 in llvm::RegBankSelect::runOnMachineFunction(llvm::MachineFunction&) /code/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp:624:12
          #5 0x3141875 in llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /code/llvm/lib/CodeGen/MachineFunctionPass.cpp:62:13
          #6 0x396128d in llvm::FPPassManager::runOnFunction(llvm::Function&) /code/llvm/lib/IR/LegacyPassManager.cpp:1513:27
          #7 0x3961832 in llvm::FPPassManager::runOnModule(llvm::Module&) /code/llvm/lib/IR/LegacyPassManager.cpp:1534:16
          #8 0x3962540 in runOnModule /code/llvm/lib/IR/LegacyPassManager.cpp:1590:27
          #9 0x3962540 in llvm::legacy::PassManagerImpl::run(llvm::Module&) /code/llvm/lib/IR/LegacyPassManager.cpp:1693
          #10 0x8ae368 in compileModule(char**, llvm::LLVMContext&) /code/llvm/tools/llc/llc.cpp:562:8
          #11 0x8a7a1b in main /code/llvm/tools/llc/llc.cpp:316:22
      
      llvm-svn: 293351
      d0852873
    • Richard Smith's avatar
      When converting a template argument representing &array to an expression for a · fc6fca1c
      Richard Smith authored
      pointer typed template parameter, form &array rather than an array-to-pointer
      decay on array.
      
      llvm-svn: 293350
      fc6fca1c
    • Vadim Chugunov's avatar
      Test commit. · 8079692c
      Vadim Chugunov authored
      llvm-svn: 293349
      8079692c
    • Eugene Zelenko's avatar
    • Tim Northover's avatar
      GlobalISel: don't leak super-entry BB when merging with IR-level one. · 12bd22fb
      Tim Northover authored
      We have to delete the block manually or it leaks. That triggers failures in
      -fsanitize=leak bots (unsurprisingly), which should be fixed by this patch.
      
      llvm-svn: 293347
      12bd22fb
    • Evgeniy Stepanov's avatar
      Revert "Stop intercepting some malloc-related functions on FreeBSD and macOS" · 8bf06332
      Evgeniy Stepanov authored
      This reverts r293337, which breaks tests on Windows:
      
      malloc-no-intercept-499eb7.o : error LNK2019: unresolved external symbol _mallinfo referenced in function _main
      
      llvm-svn: 293346
      8bf06332
    • Sanjay Patel's avatar
      [InstCombine] move icmp transforms that might be recognized as min/max and inf-loop (PR31751) · febcb9ce
      Sanjay Patel authored
      This is a minimal patch to avoid the infinite loop in:
      https://llvm.org/bugs/show_bug.cgi?id=31751
      
      But the general problem is bigger: we're not canonicalizing all of the min/max forms reported
      by value tracking's matchSelectPattern(), and we don't define min/max consistently. Some code
      uses matchSelectPattern(), other code uses matchers like m_Umax, and others have their own
      inline definitions which may be subtly different from any of the above.
      
      The reason that the test cases in this patch need a cast op to trigger is because we don't
      (yet) canonicalize all min/max forms based on matchSelectPattern() in 
      canonicalizeMinMaxWithConstant(), but we do make min/max+cast transforms based on 
      matchSelectPattern() in visitSelectInst().
      
      The location of the icmp transforms that trigger the inf-loop seems arbitrary at best, so
      I'm moving those behind the min/max fence in visitICmpInst() as the quick fix.
      
      llvm-svn: 293345
      febcb9ce
    • David Blaikie's avatar
      Fix linkage of static locals in available_externally functions to be DiscardableODR/linkonce_odr · eb210011
      David Blaikie authored
      As Mehdi put it, entities should either be
      available_externally+weak_odr, or linkonce_odr+linkonce_odr. While some
      functions are emitted a_e/weak, their local variables were emitted
      a_e/linkonce_odr.
      
      While it might be nice to emit them a_e/weak, the Itanium ABI (& best
      guess at MSVC's behavior as well) requires the local to be
      linkonce/linkonce.
      
      Reviewers: rsmith, mehdi_amini
      
      Differential Revision: https://reviews.llvm.org/D29233
      
      llvm-svn: 293344
      eb210011
    • Vedant Kumar's avatar
      [ubsan] Sanity-check shift amounts before truncation (fixes PR27271) · 3db9974b
      Vedant Kumar authored
      Ubsan does not report UB shifts in some cases where the shift exponent
      needs to be truncated to match the type of the shift base. We perform a
      range check on the truncated shift amount, leading to false negatives.
      
      Fix the issue (PR27271) by performing the range check on the original
      shift amount.
      
      Differential Revision: https://reviews.llvm.org/D29234
      
      llvm-svn: 293343
      3db9974b
  2. Jan 27, 2017
Loading