[LLVMdev] llc -march=cpp fails when using some STL stuff?

Andrea Bigagli andrea.bigagli at me.com
Mon Apr 9 04:55:11 PDT 2012


Hi,
I'm really a novice in experimenting with LLVM, so I might be doing something plain wrong here, but I can't understand why this snippet

// File ticket.cpp
struct ticket
{ 
	int field1;
	char field2[10];
} _ticket;

goes fine through the sequence

1) clang++ -O0 -S -emit-llvm ticket.cpp (which generates ticket.s)
2) llc -march=cpp ticket.s

So that I end up with a ticket.s.cpp that I can inspect to learn more about how to define structures in LLVM IR, while the following:


//File ticket_stl.cpp
#include <vector>

struct ticket_stl
{
	int field1;
	std::vector<int> field2;
} _ticket_stl;


Fails during step 2) (llc -march=cpp ticket_stl.s) with a laconic:

LLVM ERROR: Invalid instruction

Everything works if I instead perform step 1) with -O1. 
For what it's worth, the online compiler at http://llvm.org/demo/index.cgi, targeting "LLVM C++ API code", exhibits the same behavior (i.e. it fails at optimization level "None").

Is this known/expected behavior?

Andrea.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120409/cd698924/attachment.html>


More information about the llvm-dev mailing list