Hello Everyone ,
Please guide me for the following tasks I wish to accomplish by extending C language
-
Add a new keyword “Critical” for integer data type.
-
All the operands in the operations involving such integers will also be marked critical
-
For such operations mainly addition and multiplication , divide the integers into two halves based on their bits , carry out operations on halves separately and combine the result to obtain the original result.
Eg,
critical int a=5;
int b=10;
int c=a+b;
int d=b*b;
c should be calculated as follows:
a’ and a’’ are 16 highest and lowest bits of a respectively. Similarly b’ and b’’ and c’ and c’'.
so c’‘=a’‘+b’’ , c’=a’+b’+carry , c=2^16*c’+c’'.
and d should be calculated normally.
Please help me figure which files I need to change to accomplish each of the tasks.
Apologies if the tasks are too trivial , I am new to LLVM.
Thanks,
Vivek