[LLVMbugs] [Bug 4772] New: ARM unittest JIT. GlobalInFunction fail during ARM Machine Code Emitter

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Tue Aug 25 01:13:36 PDT 2009


http://llvm.org/bugs/show_bug.cgi?id=4772

           Summary: ARM unittest JIT.GlobalInFunction fail during ARM
                    Machine Code Emitter
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Backend: ARM
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: xerxes at zafena.se
                CC: llvmbugs at cs.uiuc.edu


(gdb) run
Starting program:
/usr/src/build/buildbot/llvm-arm-linux/build/unittests/ExecutionEngine/JIT/Debug/JITTests 
[Thread debugging using libthread_db enabled]
[==========] Running 10 tests from 3 test cases.
[----------] Global test environment set-up.
[----------] 3 tests from JITEventListenerTest
[ RUN      ] JITEventListenerTest.Simple
[       OK ] JITEventListenerTest.Simple
[ RUN      ] JITEventListenerTest.MultipleListenersDontInterfere
[       OK ] JITEventListenerTest.MultipleListenersDontInterfere
[ RUN      ] JITEventListenerTest.MatchesMachineCodeInfo
[       OK ] JITEventListenerTest.MatchesMachineCodeInfo
[----------] 6 tests from JITMemoryManagerTest
[ RUN      ] JITMemoryManagerTest.NoAllocations
[       OK ] JITMemoryManagerTest.NoAllocations
[ RUN      ] JITMemoryManagerTest.TestCodeAllocation
[       OK ] JITMemoryManagerTest.TestCodeAllocation
[ RUN      ] JITMemoryManagerTest.TestSmallGlobalInts
[       OK ] JITMemoryManagerTest.TestSmallGlobalInts
[ RUN      ] JITMemoryManagerTest.TestLargeGlobalArray
[       OK ] JITMemoryManagerTest.TestLargeGlobalArray
[ RUN      ] JITMemoryManagerTest.TestManyGlobals
[       OK ] JITMemoryManagerTest.TestManyGlobals
[ RUN      ] JITMemoryManagerTest.TestManyStubs
[       OK ] JITMemoryManagerTest.TestManyStubs
[----------] 1 test from JIT
[ RUN      ] JIT.GlobalInFunction
[New Thread 0x4001f590 (LWP 17670)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x4001f590 (LWP 17670)]
0x00401850 in std::vector<llvm::MachineMove, std::allocator<llvm::MachineMove>
>::clear (this=0x5a5a5a72) at /usr/include/c++/4.3/bits/stl_vector.h:892
892           { _M_erase_at_end(this->_M_impl._M_start); }
(gdb) bt
#0  0x00401850 in std::vector<llvm::MachineMove,
std::allocator<llvm::MachineMove> >::clear (this=0x5a5a5a72) at
/usr/include/c++/4.3/bits/stl_vector.h:892
#1  0x003ffc70 in llvm::MachineModuleInfo::EndFunction (this=0x5a5a5a5a) at
MachineModuleInfo.cpp:76
#2  0x00376780 in finishFunction (this=0x9528c0, F=@0x938210) at
JITEmitter.cpp:1151
#3  0x00066e70 in runOnMachineFunction (this=0x950100, MF=@0x938210) at
ARMCodeEmitter.cpp:206
#4  0x003e8ed0 in llvm::MachineFunctionPass::runOnFunction (this=0x950100,
F=@0x9508d0) at MachineFunctionPass.cpp:31
#5  0x006f227c in llvm::FPPassManager::runOnFunction (this=0x9527e8,
F=@0x9508d0) at PassManager.cpp:1372
#6  0x006f30a0 in llvm::FunctionPassManagerImpl::run (this=0x945748,
F=@0x9508d0) at PassManager.cpp:1324
#7  0x006f3340 in llvm::FunctionPassManager::run (this=0x9512e0, F=@0x9508d0)
at PassManager.cpp:1254
#8  0x00368718 in llvm::JIT::runJITOnFunctionUnlocked (this=0x951250,
F=0x9508d0, locked=@0xbec79304) at JIT.cpp:598
#9  0x00368cb4 in llvm::JIT::getPointerToFunction (this=0x951250, F=0x9508d0)
at JIT.cpp:670
#10 0x0002bb08 in TestBody (this=0x9342b8) at JITTest.cpp:88
#11 0x007a5fa0 in testing::Test::Run (this=0x9342b8) at gtest.cc:2035
#12 0x007ac130 in testing::internal::TestInfoImpl::Run (this=0x931ae0) at
gtest.cc:2257
#13 0x007b4dd0 in testing::internal::TestInfoImpl::RunTest (test_info=0x931ad0)
    at
/usr/src/build/buildbot/llvm-arm-linux/build/utils/unittest/googletest/include/gtest/internal/gtest-internal-inl.h:611
#14 0x007ad878 in testing::internal::List<testing::TestInfo*>::ForEach<void
(*)(testing::TestInfo*)> (this=0x931bd0, 
    functor=0x7b4da8
<testing::internal::TestInfoImpl::RunTest(testing::TestInfo*)>)
    at
/usr/src/build/buildbot/llvm-arm-linux/build/utils/unittest/googletest/include/gtest/internal/gtest-internal-inl.h:365
#15 0x007abf9c in testing::TestCase::Run (this=0x931ba0) at gtest.cc:2353
#16 0x007b4da0 in testing::TestCase::RunTestCase (test_case=0x931ba0)
    at
/usr/src/build/buildbot/llvm-arm-linux/build/utils/unittest/googletest/include/gtest/internal/gtest-internal-inl.h:730
#17 0x007ad480 in testing::internal::List<testing::TestCase*>::ForEach<void
(*)(testing::TestCase*)> (this=0x931118, 
    functor=0x7b4d84 <testing::TestCase::RunTestCase(testing::TestCase*)>)
    at
/usr/src/build/buildbot/llvm-arm-linux/build/utils/unittest/googletest/include/gtest/internal/gtest-internal-inl.h:365
#18 0x007abd20 in testing::internal::UnitTestImpl::RunAllTests (this=0x9310d0)
at gtest.cc:3550
#19 0x007abea4 in testing::UnitTest::Run (this=0x9300cc) at gtest.cc:3299
#20 0x007bbe34 in main (argc=1, argv=0xbec797c4) at TestMain.cpp:14
(gdb) 


For some reason the FrameMoves object pointer got the funny inaccessible memory
address 0x5a5a5a72  at frame 1 and makes the ExecutionEngine crash during
clear.

/// EndFunction - Discard function meta information.
///
void MachineModuleInfo::EndFunction() {
  // Clean up frame info.
  FrameMoves.clear();


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list