mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-23 17:28:54 +00:00
Fix an oversight in isPotentiallyReachable where we wouldn't do any CFG-walking
to find loops if the From and To instructions were in the same block. Refactor the code a little now that we need to fill to start the CFG-walking algorithm with more than one starting basic block sometimes. Special thanks to Andrew Trick for catching an error in my understanding of natural loops in code review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188236 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -147,6 +147,23 @@ TEST_F(IsPotentiallyReachableTest, SameBlockPath) {
|
||||
ExpectPath(true);
|
||||
}
|
||||
|
||||
TEST_F(IsPotentiallyReachableTest, SameBlockNoLoop) {
|
||||
ParseAssembly(
|
||||
"define void @test() {\n"
|
||||
"entry:\n"
|
||||
" br label %middle\n"
|
||||
"middle:\n"
|
||||
" %B = bitcast i8 undef to i8\n"
|
||||
" bitcast i8 undef to i8\n"
|
||||
" bitcast i8 undef to i8\n"
|
||||
" %A = bitcast i8 undef to i8\n"
|
||||
" br label %nextblock\n"
|
||||
"nextblock:\n"
|
||||
" ret void\n"
|
||||
"}\n");
|
||||
ExpectPath(false);
|
||||
}
|
||||
|
||||
TEST_F(IsPotentiallyReachableTest, StraightNoPath) {
|
||||
ParseAssembly(
|
||||
"define void @test() {\n"
|
||||
|
Reference in New Issue
Block a user