2012년 8월 21일 화요일

Regular expression

The regular expression is very useful, however, it makes me have a headache.

Below sites are useful to verify or study the reg exp.

http://gskinner.com/RegExr/

http://www.gethifi.com/tools/regex

2012년 2월 17일 금요일

llvm Kaleidoscope ch3

I have been studying llvm in following http://llvm.org/docs/tutorial/LangImpl3.html.

In compiling example on ch3, i met below errors.


ch3.cpp:401:18: error: no matching member function for call to 'CreateCall'
  return Builder.CreateCall(CalleeF, ArgsV, "calltmp");

ch3.cpp:406:22: error: no matching constructor for initialization of
      'std::vector<Type *>'
  std::vector<Type*> Doubles(Args.size(),Type::getDoubleTy(getGlobalContext()));
                     ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

solution
--------------------------------------------------------

 return Builder.CreateCall(CalleeF, ArgsV.begin(), ArgsV.end(), "calltmp"); 

 std::vector<const Type *> Doubles(Args.size(), Type::getDoubleTy(getGlobalContext()));


2012년 2월 14일 화요일

llvm-gcc: invalid bitcode signature

ubuntu 11.10
llvm and llvm-gcc have been installed by ubuntu package ( apt-get install llvm llvm-gcc ). 
llvm-2.8 or llvm-2.9 and llvm-gcc-4.5 were tested.

llvm-gcc hello.c -> ok.
llvm -gcc -O3 -emit-llvm hello.c -c -o hello.b-> ok
but
lli hello.bc -> error : invalid bitcode signature 
In googling, I found below, but it was not useful.

There are two solution.

1. build all of things on your PC not packages, llvm and llvm-gcc. 

2. using llvm-clang , I chosen this option. 
apt-get insatll llvm-clang
llvm-clang ........ -> it's still ok !.