[cfe-dev] Remove unused types from ASTContext

Brian Cain via cfe-dev cfe-dev at lists.llvm.org
Fri Apr 28 15:02:49 PDT 2017


On Fri, Apr 28, 2017 at 6:11 AM, mateusz janek <stryku2393 at gmail.com> wrote:

> Did you use CMake? If no, ctai requres clang 4.0 and to be compiled with
> flags: `-std=c++1z -ftemplate-backtrace-limit=0 -ftemplate-depth=8096`
>
>
I got it to work with some tweaks to the CMake config.  It ran quickly for
me, but it did allocate a decent amount of memory on the way.  Also I used
a nightly build of clang and libc++ (and not libstdc++).

15.85user 0.48system 0:16.38elapsed 99%CPU (0avgtext+0avgdata
4053852maxresident)k
0inputs+24outputs (0major+381214minor)pagefaults 0swaps



diff:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0143461..109d975 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,9 +1,9 @@
 cmake_minimum_required(VERSION 3.5)
 project(ctai)

-add_definitions(-std=c++1z -ftemplate-backtrace-limit=0
-ftemplate-depth=1024)
-
-set(CMAKE_CXX_COMPILER clang++-3.9)
+set(CMAKE_CXX_COMPILER clang++-3.9 CACHE STRING "")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1z -stdlib=libc++
-ftemplate-backtrace-limit=0 -ftemplate-depth=8192" CACHE STRING "" FORCE)
+set(CMAKE_MODULE_LINKER_FLAGS ${CMAKE_MODULE_LINKER_FLAGS} "-std=c++1z
-stdlib=libc++" CACHE STRING "" FORCE)

 set(INCLUDE_FILES
         register.hpp
diff --git a/main.cpp b/main.cpp
index b95eb4d..35e6d6f 100644
--- a/main.cpp
+++ b/main.cpp
@@ -30,6 +30,66 @@ using code = decltype(
     "mov ebx , 1 "
     "add eax , ebx "
     "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
+    "mov DWORD PTR [ ebp + 4 ] , eax "
     "jmp .loop_label "
 ":end_label "
     "mov eax , DWORD PTR [ ebp + 16 ] "
@@ -39,4 +99,4 @@ int main()
 {
     std::cout << "15th element of fibonacci series is: " <<
cai::execute_code<code>;
     return 0;
-}
\ No newline at end of file
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170428/eb86e3df/attachment.html>


More information about the cfe-dev mailing list