Not sure, the module verifier is not that clear about what is wrong. Perhaps try a debug build of fastcomp which adds more assertions. Also make sure to try the very latest fastcomp and emscripten incoming as some issues relating to longjmp (mentioned in the error) were fixed recently.
- Alon On Fri, Feb 7, 2014 at 3:12 PM, Xiang Li <[email protected]> wrote: > We were trying to see if we have done something wrong here...I am now > getting another error when attempting to compile the "next" component in my > project: > > > Instruction does not dominate all uses! > %gep38 = add i32 %tess, 144 > call void @emscripten_longjmp(i32 %gep38, i32 1) #6 > Instruction does not dominate all uses! > %gep38 = add i32 %tess, 144 > call void @emscripten_longjmp(i32 %gep38, i32 1) #6 > Instruction does not dominate all uses! > %.1 = select i1 %35, i32 3, i32 %.vertexSize > call void @OutputContours(i32 %tess, i32 %56, i32 %.1) > Instruction does not dominate all uses! > %.1 = select i1 %35, i32 3, i32 %.vertexSize > call void @OutputPolymesh(i32 %tess, i32 %56, i32 %elementType, i32 > %polySize, i32 %.1) > Broken module found, compilation aborted! > 0 opt 0x000000010e4e8825 > llvm::sys::PrintStackTrace(__sFILE*) + 37 > 1 opt 0x000000010e4e8d69 SignalHandler(int) + 553 > 2 libsystem_c.dylib 0x00007fff817a490a _sigtramp + 26 > 3 opt 0x000000010e3f6d6f > llvm::AttributeSet::get(llvm::LLVMContext&, unsigned int, > llvm::AttrBuilder&) + 527 > 4 opt 0x000000010e4e8b26 abort + 22 > 5 opt 0x000000010e4a4592 (anonymous > namespace)::Verifier::abortIfBroken() + 258 > 6 opt 0x000000010e4a4475 (anonymous > namespace)::Verifier::runOnFunction(llvm::Function&) + 1781 > 7 opt 0x000000010e48fb1b > llvm::FPPassManager::runOnFunction(llvm::Function&) + 315 > 8 opt 0x000000010e48fd0b > llvm::FPPassManager::runOnModule(llvm::Module&) + 59 > 9 opt 0x000000010e48ff68 > llvm::MPPassManager::runOnModule(llvm::Module&) + 344 > 10 opt 0x000000010e49066d > llvm::PassManagerImpl::run(llvm::Module&) + 493 > 11 opt 0x000000010e49082d > llvm::PassManager::run(llvm::Module&) + 13 > 12 opt 0x000000010dcd3f6d main + 7357 > 13 libdyld.dylib 0x00007fff8bcbd7e1 start + 0 > Stack dump: > 0. Program arguments: > /Users/xiangl/Build_cmake_assignment/fastcomp/emscripten-fastcomp/build/Release/bin/opt > /tmp/tmpmnTilx/CDFKit.bc -strip-debug -internalize > -internalize-public-api-list=CDFRelease,CDFDescription,CDFSessionCreate,CDFSessionGetEvaluator,CDFSessionRun,CDFEvaluatorEvaluate,CDFDocumentCreate,CDFExprCreateWithParsedString,CDFExprCreateSymbol,CDFExprCreateWithHead,CDFExprAddPart,CDFViewControllerCreate,CDFViewControllerSetExpr,CDFViewControllerSetFormatWidth,CDFViewControllerGetFormattedHeight,CDFViewControllerGetFormattedBaseline,CDFViewControllerDraw,malloc,free > -globaldce -pnacl-abi-simplify-preopt -pnacl-abi-simplify-postopt -o > /tmp/tmpmnTilx/CDFKit.bc.opt.bc > 1. Running pass 'Function Pass Manager' on module > '/tmp/tmpmnTilx/CDFKit.bc'. > 2. Running pass 'Module Verifier' on function '@tessTesselate' > Traceback (most recent call last): > File "/opt/emscripten-incoming/emcc", line 1828, in <module> > shared.Building.llvm_opt(final, link_opts) > File "/opt/emscripten-incoming/tools/shared.py", line 1173, in llvm_opt > assert os.path.exists(target), 'Failed to run llvm optimizations: ' + > output > AssertionError: Failed to run llvm optimizations: > > > What I am doing wrong? > > Thanks > --Xiang > > > > On Fri, Feb 7, 2014 at 11:17 AM, Alon Zakai <[email protected]> wrote: > >> What error do you have now? >> >> If you can send the bitcode that would be best for debugging. >> >> - Alon >> >> >> >> On Thu, Feb 6, 2014 at 12:22 AM, Xiang Li <[email protected]> wrote: >> >>> fastcomp can now compile our project successfully. Thanks! >>> >>> Unfortunately when I run the generated script I am seeing same problems >>> as I had experienced with static linking! This makes me suspect the root >>> cause for the wrong behavior at runtime may be the similar for fastcomp >>> and static linking. I mean perhaps if you fix fastcomp you will also be >>> able to fix static linking (though I understand static linking is not your >>> top priority at this moment) >>> >>> I think I do need to send you part of our bitcode so you can link them >>> together using both fastcomp and the current emcc compiler...that way you >>> can run one of our tests and compare the difference. I'll think about what >>> you might need and send it to you ASAP. If there is better way I can help >>> you debug this let me know. >>> >>> Best regards! >>> >>> Thanks >>> --Xiang >>> >>> >>> >>> On Wed, Feb 5, 2014 at 6:21 PM, Alon Zakai <[email protected]> wrote: >>> >>>> Thanks, I was able to make a testcase for that in llvm IR - no idea how >>>> to do it in C ;) >>>> >>>> This should be fixed on latest fastcomp, please let me know. >>>> >>>> - Alon >>>> >>>> >>>> >>>> On Wed, Feb 5, 2014 at 12:06 PM, Xiang Li <[email protected]>wrote: >>>> >>>>> Hi >>>>> With the latest fastcomp code base, I added fprintf in >>>>> >>>>> lib/Target/JSBackend/JSBackend.cpp : around line 829 >>>>> >>>>> >>>>> Here is what I got: >>>>> >>>>> raw c_str double 0x7FEFFFFFFFFFFFFF >>>>> >>>>> raw length 16 >>>>> >>>>> raw 7FEFFFFFFFFFFFFF >>>>> >>>>> raw c_str double 0x370000000000000 >>>>> >>>>> raw length 15 >>>>> >>>>> raw 370000000000000 >>>>> >>>>> Linking then fails because the length is an odd number >>>>> assert((len&1) >>>>> >>>>> >>>>> I am not sure how to make sense of this and relate to my code. What >>>>> else should I do to get the actual c++ code that triggers the error? >>>>> >>>>> I thought sending you our bitcode but it's a lot of files scattered in >>>>> a bunch of folders in CMAKE build folder.... >>>>> >>>>> Thanks >>>>> --Xiang >>>>> >>>>> >>>>> On Thu, Jan 30, 2014 at 9:13 AM, Xiang Li <[email protected]>wrote: >>>>> >>>>>> I got the permission so I will send the bitcode to you later. I am on >>>>>> Mac. Do I need to generate the bitcode on Linux for you to investigate? I >>>>>> am not sure if the bitcode from different platforms will be exactly >>>>>> same... >>>>>> >>>>>> Now for the static linking, I wonder if you can determine what went >>>>>> wrong by just looking at the bitcode? If so that would be great and I >>>>>> then >>>>>> can also send the bitcode generated using LLVM_3.2... >>>>>> >>>>>> Best regards >>>>>> >>>>>> --Xiang >>>>>> >>>>>> >>>>>> On Tue, Jan 28, 2014 at 5:59 PM, Alon Zakai <[email protected]>wrote: >>>>>> >>>>>>> If you can attach the bitcode file that would be easiest to >>>>>>> reproduce the problem with. Otherwise you can see where it happens by >>>>>>> adding some debug printouts in the code and rebuilding fastcomp. In this >>>>>>> case, puts(raw) right before that assert should help. >>>>>>> >>>>>>> - Alon >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Tue, Jan 28, 2014 at 9:37 AM, Xiang Li <[email protected]>wrote: >>>>>>> >>>>>>>> I tried using fastcomp to compile my project, I got the following >>>>>>>> error. >>>>>>>> >>>>>>>> I used emcc 'incoming' branch and the last llvm backend. How do I >>>>>>>> know which part of my code triggers the error? >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Warning: Variable __init_array_start not referenced >>>>>>>> Warning: Variable __init_array_end not referenced >>>>>>>> Warning: Variable __fini_array_start not referenced >>>>>>>> Warning: Variable __fini_array_end not referenced >>>>>>>> (len&1) == 0 >>>>>>>> /Users/xiangl/Build_cmake_assignment/fastcomp/emscripten-fastcomp/lib/Target/JSBackend/JSBackend.cpp >>>>>>>> : 769 >>>>>>>> LLVM ERROR: fail >>>>>>>> Traceback (most recent call last): >>>>>>>> File "/opt/emscripten-incoming/emscripten.py", line 1352, in >>>>>>>> <module> >>>>>>>> _main(environ=os.environ) >>>>>>>> File "/opt/emscripten-incoming/emscripten.py", line 1340, in _main >>>>>>>> temp_files.run_and_clean(lambda: main( >>>>>>>> File "/opt/emscripten-incoming/tools/tempfiles.py", line 39, in >>>>>>>> run_and_clean >>>>>>>> return func() >>>>>>>> File "/opt/emscripten-incoming/emscripten.py", line 1348, in >>>>>>>> <lambda> >>>>>>>> DEBUG_CACHE=DEBUG_CACHE, >>>>>>>> File "/opt/emscripten-incoming/emscripten.py", line 1235, in main >>>>>>>> jcache=jcache, temp_files=temp_files, DEBUG=DEBUG, >>>>>>>> DEBUG_CACHE=DEBUG_CACHE) >>>>>>>> File "/opt/emscripten-incoming/emscripten.py", line 749, in >>>>>>>> emscript_fast >>>>>>>> backend_output = open(temp_js).read() >>>>>>>> IOError: [Errno 2] No such file or directory: '/tmp/tmpcZyQuB.4.js' >>>>>>>> Traceback (most recent call last): >>>>>>>> File "/opt/emscripten-incoming/emcc", line 1863, in <module> >>>>>>>> final = shared.Building.emscripten(final, append_ext=False, >>>>>>>> extra_args=extra_args) >>>>>>>> File "/opt/emscripten-incoming/tools/shared.py", line 1276, in >>>>>>>> emscripten >>>>>>>> assert os.path.exists(filename + '.o.js') and len(open(filename >>>>>>>> + '.o.js', 'r').read()) > 0, 'Emscripten failed to generate .js: ' + >>>>>>>> str(compiler_output) >>>>>>>> AssertionError: Emscripten failed to generate .js: >>>>>>>> make[2]: *** [MCore/test/MCoreTest.html] Error 1 >>>>>>>> make[1]: *** [MCore/test/CMakeFiles/MCoreTest.dir/all] Error 2 >>>>>>>> make: *** [all] Error 2 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -Xiang Li >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "emscripten-discuss" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>> send an email to [email protected]. >>>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "emscripten-discuss" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>> >>>>>> >>>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "emscripten-discuss" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "emscripten-discuss" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "emscripten-discuss" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "emscripten-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
