It's fixed. Just a mismatched llvm and clang on the builder for a single cycle.

Thanks for the quick response.

-eric

On Feb 1, 2012, at 12:40 AM, Stepan Dyatkovskiy wrote:

> Hi Eric. What the names of borken tests?
> 
> -Stepan
> 
> 01.02.2012, 12:35, "Eric Christopher" <[email protected]>:
>> Nevermind, multiple repositories :)
>> 
>> -eric
>> 
>> On Feb 1, 2012, at 12:34 AM, Eric Christopher wrote:
>> 
>>>  This broke the clang testers also btw :)
>>> 
>>>  -eric
>>> 
>>>  On Jan 31, 2012, at 11:50 PM, Stepan Dyatkovskiy wrote:
>>>>  Author: dyatkovskiy
>>>>  Date: Wed Feb  1 01:50:21 2012
>>>>  New Revision: 149482
>>>> 
>>>>  URL: http://llvm.org/viewvc/llvm-project?rev=149482&view=rev
>>>>  Log:
>>>>  Compatability fix for SwitchInst refactoring.
>>>> 
>>>>  The purpose of refactoring is to hide operand roles from SwitchInst user 
>>>> (programmer). If you want to play with operands directly, probably you 
>>>> will need lower level methods than SwitchInst ones (TerminatorInst or may 
>>>> be User). After this patch we can reorganize SwitchInst operands and 
>>>> successors as we want.
>>>> 
>>>>  What was done:
>>>> 
>>>>  1. Changed semantics of index inside the getCaseValue method:
>>>>  getCaseValue(0) means "get first case", not a condition. Use 
>>>> getCondition() if you want to resolve the condition. I propose don't mix 
>>>> SwitchInst case indexing with low level indexing (TI successors indexing, 
>>>> User's operands indexing), since it may be dangerous.
>>>>  2. By the same reason findCaseValue(ConstantInt*) returns actual number 
>>>> of case value. 0 means first case, not default. If there is no case with 
>>>> given value, ErrorIndex will returned.
>>>>  3. Added getCaseSuccessor method. I propose to avoid usage of 
>>>> TerminatorInst::getSuccessor if you want to resolve case successor BB. Use 
>>>> getCaseSuccessor instead, since internal SwitchInst organization of 
>>>> operands/successors is hidden and may be changed in any moment.
>>>>  4. Added resolveSuccessorIndex and resolveCaseIndex. The main purpose of 
>>>> these methods is to see how case successors are really mapped in 
>>>> TerminatorInst.
>>>>  4.1 "resolveSuccessorIndex" was created if you need to level down from 
>>>> SwitchInst to TerminatorInst. It returns TerminatorInst's successor index 
>>>> for given case successor.
>>>>  4.2 "resolveCaseIndex" converts low level successors index to case index 
>>>> that curresponds to the given successor.
>>>> 
>>>>  Note: There are also related compatability fix patches for dragonegg, 
>>>> klee, llvm-gcc-4.0, llvm-gcc-4.2, safecode, clang.
>>>> 
>>>>  Modified:
>>>>    cfe/trunk/lib/CodeGen/CGCleanup.cpp
>>>>    cfe/trunk/lib/CodeGen/CGStmt.cpp
>>>> 
>>>>  Modified: cfe/trunk/lib/CodeGen/CGCleanup.cpp
>>>>  URL: 
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCleanup.cpp?rev=149482&r1=149481&r2=149482&view=diff
>>>>  
>>>> ==============================================================================
>>>>  --- cfe/trunk/lib/CodeGen/CGCleanup.cpp (original)
>>>>  +++ cfe/trunk/lib/CodeGen/CGCleanup.cpp Wed Feb  1 01:50:21 2012
>>>>  @@ -502,9 +502,9 @@
>>>> 
>>>>     // The only uses should be fixup switches.
>>>>     llvm::SwitchInst *si = cast<llvm::SwitchInst>(use.getUser());
>>>>  -    if (si->getNumCases() == 2 && si->getDefaultDest() == unreachableBB) 
>>>> {
>>>>  +    if (si->getNumCases() == 1 && si->getDefaultDest() == unreachableBB) 
>>>> {
>>>>       // Replace the switch with a branch.
>>>>  -      llvm::BranchInst::Create(si->getSuccessor(1), si);
>>>>  +      llvm::BranchInst::Create(si->getCaseSuccessor(0), si);
>>>> 
>>>>       // The switch operand is a load from the cleanup-dest alloca.
>>>>       llvm::LoadInst *condition = cast<llvm::LoadInst>(si->getCondition());
>>>> 
>>>>  Modified: cfe/trunk/lib/CodeGen/CGStmt.cpp
>>>>  URL: 
>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGStmt.cpp?rev=149482&r1=149481&r2=149482&view=diff
>>>>  
>>>> ==============================================================================
>>>>  --- cfe/trunk/lib/CodeGen/CGStmt.cpp (original)
>>>>  +++ cfe/trunk/lib/CodeGen/CGStmt.cpp Wed Feb  1 01:50:21 2012
>>>>  @@ -1221,7 +1221,7 @@
>>>> 
>>>>   // Update the default block in case explicit case range tests have
>>>>   // been chained on top.
>>>>  -  SwitchInsn->setSuccessor(0, CaseRangeBlock);
>>>>  +  SwitchInsn->setDefaultDest(CaseRangeBlock);
>>>> 
>>>>   // If a default was never emitted:
>>>>   if (!DefaultBlock->getParent()) {
>>>> 
>>>>  _______________________________________________
>>>>  cfe-commits mailing list
>>>>  [email protected]
>>>>  http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>  _______________________________________________
>>>  cfe-commits mailing list
>>>  [email protected]
>>>  http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to