instead of migrating it to the MC instruction encoder, just

rip out the implementation of X86InstrInfo::GetInstSizeInBytes.
The code being ripped out just implemented a copy and hacked up
version of the (old) instruction encoder, and is buggy and 
terrible in other ways.  Since "GetInstSizeInBytes" is really 
only there to support the JIT's "NeedsExactSize" hook (which
noone is using), just rip out the code.  I will rip out the
NeedsExactSize hook next.

This resolves rdar://7617809 - switch X86InstrInfo::GetInstSizeInBytes to use X86MCCodeEmitter



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109149 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2010-07-22 21:05:13 +00:00
parent 169c932759
commit 456fdaf0ce
4 changed files with 100 additions and 578 deletions

View File

@ -630,31 +630,6 @@ TEST_F(JITTest, AvailableExternallyFunctionIsntCompiled) {
<< " not 7 from the IR version.";
}
TEST_F(JITTest, NeedsExactSizeWithManyGlobals) {
// PR5291: When the JMM needed the exact size of function bodies before
// starting to emit them, the JITEmitter would modify a set while iterating
// over it.
TheJIT->DisableLazyCompilation(true);
RJMM->setSizeRequired(true);
LoadAssembly("@A = global i32 42 "
"@B = global i32* @A "
"@C = global i32** @B "
"@D = global i32*** @C "
"@E = global i32**** @D "
"@F = global i32***** @E "
"@G = global i32****** @F "
"@H = global i32******* @G "
"@I = global i32******** @H "
"define i32********* @test() { "
" ret i32********* @I "
"}");
Function *testIR = M->getFunction("test");
int32_t********* (*test)() = reinterpret_cast<int32_t*********(*)()>(
(intptr_t)TheJIT->getPointerToFunction(testIR));
EXPECT_EQ(42, *********test());
}
TEST_F(JITTest, EscapedLazyStubStillCallable) {
TheJIT->DisableLazyCompilation(false);
LoadAssembly("define internal i32 @stubbed() { "