El 26/06/2007, a las 20:05, Chris Lattner escribió:
> On Tue, 26 Jun 2007, [ISO-8859-1] Alberto González wrote:
>> I'm using LLVM to instrument C code to test the efectiveness of
some
>> methods of error detection with dynamic invariants (see http://
>> citeseer.ist.psu.edu/hangal02tracking.html). I'm using also a range
>> invariant (max an min values seen). The problem is that for those
>> invariants, I need to know if the value is signed or not (0xFF can be
>> -1 or 255, depending on signed/unsigned).
>
> Why not track the value range as both signed and unsigned? You
> have to be able to do this in any case, in order to handle "int ->
> uint" casts (for example). At any particular point in the code,
> you can use the signed or unsigned range invariant based on
> whatever you need.
I'm tracking reads and writes to variables in fixed source code
points, and variables cannot change their types. For example:
int a;
uint b;
a = -2;
b = (uint) a;
For a=-2 i´ll have a signed-write-invariant to a. Then for b = a,
i'll have a signed-read-invariant from a, and an unsigned-write-
invariant to b. When I see a write to a variable, i want to be able
to know if that variable has sign or not. For this stage of the
research it's not very important because the test set we are using
only uses signed integers, but later on we will have to use both
signed and unsigned and then it will be problematic.
Leaving signed and unsigned problems aside, how can i read debugging
symbols from inside an opt modulepass?
Alberto
>
> -Chris
>
>> El 26/06/2007, a las 18:22, Chris Lattner escribió:
>>
>>> On Tue, 26 Jun 2007, [ISO-8859-1] Alberto González wrote:
>>>> The problem is that what i'm instrumenting is loads and
stores,
>>>> plus
>>>> function call arguments and return values, which have no
signedness
>>>> information.
>>>
>>> Why do you need this?
>>>
>>> -Chris
>>>
>>>> El 26/06/2007, a las 17:03, Anton Korobeynikov escribió:
>>>>
>>>>> Hello, Alberto.
>>>>>
>>>>>> I'm using llvm for instrumenting code, and I need
to know if
>>>>>> there's a way to
>>>>>> difference between signed and unsigned Values of
integer type
>>>>>> during an
>>>>>> optimization pass.
>>>>> Types are signless in LLVM 2, operations are not. So, you
should
>>>>> probably inspect insts itself, not their operands.
>>>>>
>>>>> --
>>>>> With best regards, Anton Korobeynikov.
>>>>>
>>>>> Faculty of Mathematics & Mechanics, Saint Petersburg
State
>>>>> University.
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> LLVM Developers mailing list
>>>>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>
>>>>
>>>> _______________________________________________
>>>> LLVM Developers mailing list
>>>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>>
>>>
>>> -Chris
>>>
>>> --
>>> http://nondot.org/sabre/
>>> http://llvm.org/_______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>
> -Chris
>
> --
> http://nondot.org/sabre/
> http://llvm.org/_______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev