<div dir="ltr">> +++ b/lib/Target/ARM/ARMConstantPoolValue.cpp<div>> +++ b/test/CodeGen/ARM/litpool-licm.ll</div><div><br></div>I have been trying to experiment the effect of your patches. <br>From my experiment, It seems that your proposal (r268662) cannot resolve the issue that I reported.<br>So, I am checking the build (on ubuntu 14.04 x64 pc) and running environment (on ARM v7le emulator).<br><br>Could you tell me the file name of LLVM that your two patches are belong to ?<br>For example, Is ARMConstantPoolValue.cpp is included in the libLLVMARMCodeGen.a? <div><br>------------------------------ llvm-3.6 tree --------------------------------------------<br><br><div>invain@target:/usr/lib/llvm-3.6$ tree</div><div>.</div><div>├── bin</div><div>│   ├── bugpoint</div><div>│   ├── c-index-test</div><div>│   ├── clang</div><div>│   ├── clang++ -> clang</div><div>│   ├── clang-apply-replacements</div><div>│   ├── clang-check</div><div>│   ├── clang-query</div><div>│   ├── clang-rename</div><div>│   ├── clang-tblgen</div><div>│   ├── clang-tidy</div><div>│   ├── llc</div><div>│   ├── lldb</div><div>│   ├── lldb-gdbserver</div><div>│   ├── lldb-mi</div><div>│   ├── lldb-platform</div><div>│   ├── lli</div><div>│   ├── lli-child-target</div><div>│   ├── llvm-ar</div><div>│   ├── llvm-as</div><div>│   ├── llvm-bcanalyzer</div><div>│   ├── llvm-config</div><div>│   ├── llvm-cov</div><div>│   ├── llvm-diff</div><div>│   ├── llvm-dis</div><div>│   ├── llvm-dsymutil</div><div>│   ├── llvm-dwarfdump</div><div>│   ├── llvm-extract</div><div>│   ├── llvm-link</div><div>│   ├── llvm-mc</div><div>│   ├── llvm-mcmarkup</div><div>│   ├── llvm-nm</div><div>│   ├── llvm-objdump</div><div>│   ├── llvm-profdata</div><div>│   ├── llvm-ranlib -> llvm-ar</div><div>│   ├── llvm-readobj</div><div>│   ├── llvm-rtdyld</div><div>│   ├── llvm-size</div><div>│   ├── llvm-stress</div><div>│   ├── llvm-symbolizer</div><div>│   ├── llvm-tblgen</div><div>│   ├── llvm-vtabledump</div><div>│   ├── macho-dump</div><div>│   ├── obj2yaml</div><div>│   ├── opt</div><div>│   ├── pp-trace</div><div>│   ├── verify-uselistorder</div><div>│   └── yaml2obj</div><div>├── build</div><div>│   ├── Debug+Asserts -> ..</div><div>│   ├── Makefile.common</div><div>│   ├── Makefile.config</div><div>│   ├── Makefile.rules</div><div>│   ├── Release -> ..</div><div>│   ├── autoconf</div><div>│   │   ├── AutoRegen.sh</div><div>│   │   ├── ExportMap.map</div><div>│   │   ├── README.TXT</div><div>│   │   ├── config.guess</div><div>│   │   ├── config.sub</div><div>│   │   ├── <a href="http://configure.ac">configure.ac</a></div><div>│   │   ├── install-sh</div><div>│   │   ├── m4</div><div>│   │   │   ├── build_exeext.m4</div><div>│   │   │   ├── c_printf_a.m4</div><div>│   │   │   ├── check_gnu_make.m4</div><div>│   │   │   ├── config_makefile.m4</div><div>│   │   │   ├── config_project.m4</div><div>│   │   │   ├── cxx_flag_check.m4</div><div>│   │   │   ├── define_subst.m4</div><div>│   │   │   ├── find_std_program.m4</div><div>│   │   │   ├── func_isinf.m4</div><div>│   │   │   ├── func_isnan.m4</div><div>│   │   │   ├── func_mmap_file.m4</div><div>│   │   │   ├── header_mmap_anonymous.m4</div><div>│   │   │   ├── huge_val.m4</div><div>│   │   │   ├── link_options.m4</div><div>│   │   │   ├── linux_mixed_64_32.m4</div><div>│   │   │   ├── need_dev_zero_for_mmap.m4</div><div>│   │   │   ├── rand48.m4</div><div>│   │   │   ├── sanity_check.m4</div><div>│   │   │   ├── single_cxx_check.m4</div><div>│   │   │   └── visibility_inlines_hidden.m4</div><div>│   │   ├── missing</div><div>│   │   └── mkinstalldirs</div><div>│   ├── config.status</div><div>│   ├── configure</div><div>│   └── include -> ../include</div><div>├── include</div><div>│   ├── lldb</div><div>│   │   ├── API</div><div>│   │   │   ├── LLDB.h</div><div>│   │   │   ├── SBAddress.h</div><div>│   │   │   ├── SBBlock.h</div><div>│   │   │   ├── SBBreakpoint.h</div><div>│   │   │   ├── SBBreakpointLocation.h</div><div>│   │   │   ├── SBBroadcaster.h</div><div>│   │   │   ├── SBCommandInterpreter.h</div><div>│   │   │   ├── SBCommandReturnObject.h</div><div>│   │   │   ├── SBCommunication.h</div><div>│   │   │   ├── SBCompileUnit.h</div><div>│   │   │   ├── SBData.h</div><div>│   │   │   ├── SBDebugger.h</div><div>│   │   │   ├── SBDeclaration.h</div><div>│   │   │   ├── SBDefines.h</div><div>│   │   │   ├── SBError.h</div><div>│   │   │   ├── SBEvent.h</div><div>│   │   │   ├── SBExecutionContext.h</div><div>│   │   │   ├── SBExpressionOptions.h</div><div>│   │   │   ├── SBFileSpec.h</div><div>│   │   │   ├── SBFileSpecList.h</div><div>│   │   │   ├── SBFrame.h</div><div>│   │   │   ├── SBFunction.h</div><div>│   │   │   ├── SBHostOS.h</div><div>│   │   │   ├── SBInstruction.h</div><div>│   │   │   ├── SBInstructionList.h</div><div>│   │   │   ├── SBLineEntry.h</div><div>│   │   │   ├── SBListener.h</div><div>│   │   │   ├── SBModule.h</div><div>│   │   │   ├── SBModuleSpec.h</div><div>│   │   │   ├── SBPlatform.h</div><div>│   │   │   ├── SBProcess.h</div><div>│   │   │   ├── SBQueue.h</div><div>│   │   │   ├── SBQueueItem.h</div><div>│   │   │   ├── SBSection.h</div><div>│   │   │   ├── SBSourceManager.h</div><div>│   │   │   ├── SBStream.h</div><div>│   │   │   ├── SBStringList.h</div><div>│   │   │   ├── SBSymbol.h</div><div>│   │   │   ├── SBSymbolContext.h</div><div>│   │   │   ├── SBSymbolContextList.h</div><div>│   │   │   ├── SBTarget.h</div><div>│   │   │   ├── SBThread.h</div><div>│   │   │   ├── SBThreadCollection.h</div><div>│   │   │   ├── SBThreadPlan.h</div><div>│   │   │   ├── SBType.h</div><div>│   │   │   ├── SBTypeCategory.h</div><div>│   │   │   ├── SBTypeEnumMember.h</div><div>│   │   │   ├── SBTypeFilter.h</div><div>│   │   │   ├── SBTypeFormat.h</div><div>│   │   │   ├── SBTypeNameSpecifier.h</div><div>│   │   │   ├── SBTypeSummary.h</div><div>│   │   │   ├── SBTypeSynthetic.h</div><div>│   │   │   ├── SBUnixSignals.h</div><div>│   │   │   ├── SBValue.h</div><div>│   │   │   ├── SBValueList.h</div><div>│   │   │   └── SBWatchpoint.h</div><div>│   │   ├── Breakpoint</div><div>│   │   │   ├── Breakpoint.h</div><div>│   │   │   ├── BreakpointID.h</div><div>│   │   │   ├── BreakpointIDList.h</div><div>│   │   │   ├── BreakpointList.h</div><div>│   │   │   ├── BreakpointLocation.h</div><div>│   │   │   ├── BreakpointLocationCollection.h</div><div>│   │   │   ├── BreakpointLocationList.h</div><div>│   │   │   ├── BreakpointOptions.h</div><div>│   │   │   ├── BreakpointResolver.h</div><div>│   │   │   ├── BreakpointResolverAddress.h</div><div>│   │   │   ├── BreakpointResolverFileLine.h</div><div>│   │   │   ├── BreakpointResolverFileRegex.h</div><div>│   │   │   ├── BreakpointResolverName.h</div><div>│   │   │   ├── BreakpointSite.h</div><div>│   │   │   ├── BreakpointSiteList.h</div><div>│   │   │   ├── Stoppoint.h</div><div>│   │   │   ├── StoppointCallbackContext.h</div><div>│   │   │   ├── StoppointLocation.h</div><div>│   │   │   ├── Watchpoint.h</div><div>│   │   │   ├── WatchpointList.h</div><div>│   │   │   └── WatchpointOptions.h</div><div>│   │   ├── Core</div><div>│   │   │   ├── Address.h</div><div>│   │   │   ├── AddressRange.h</div><div>│   │   │   ├── AddressResolver.h</div><div>│   │   │   ├── AddressResolverFileLine.h</div><div>│   │   │   ├── AddressResolverName.h</div><div>│   │   │   ├── ArchSpec.h</div><div>│   │   │   ├── Baton.h</div><div>│   │   │   ├── Broadcaster.h</div><div>│   │   │   ├── ClangForward.h</div><div>│   │   │   ├── Communication.h</div><div>│   │   │   ├── Connection.h</div><div>│   │   │   ├── ConnectionMachPort.h</div><div>│   │   │   ├── ConnectionSharedMemory.h</div><div>│   │   │   ├── ConstString.h</div><div>│   │   │   ├── DataBuffer.h</div><div>│   │   │   ├── DataBufferHeap.h</div><div>│   │   │   ├── DataBufferMemoryMap.h</div><div>│   │   │   ├── DataEncoder.h</div><div>│   │   │   ├── DataExtractor.h</div><div>│   │   │   ├── Debugger.h</div><div>│   │   │   ├── Disassembler.h</div><div>│   │   │   ├── EmulateInstruction.h</div><div>│   │   │   ├── Error.h</div><div>│   │   │   ├── Event.h</div><div>│   │   │   ├── FileLineResolver.h</div><div>│   │   │   ├── FileSpecList.h</div><div>│   │   │   ├── Flags.h</div><div>│   │   │   ├── History.h</div><div>│   │   │   ├── IOHandler.h</div><div>│   │   │   ├── IOStreamMacros.h</div><div>│   │   │   ├── Language.h</div><div>│   │   │   ├── Listener.h</div><div>│   │   │   ├── Log.h</div><div>│   │   │   ├── Mangled.h</div><div>│   │   │   ├── MappedHash.h</div><div>│   │   │   ├── Module.h</div><div>│   │   │   ├── ModuleChild.h</div><div>│   │   │   ├── ModuleList.h</div><div>│   │   │   ├── ModuleSpec.h</div><div>│   │   │   ├── Opcode.h</div><div>│   │   │   ├── PluginInterface.h</div><div>│   │   │   ├── PluginManager.h</div><div>│   │   │   ├── RangeMap.h</div><div>│   │   │   ├── RegisterValue.h</div><div>│   │   │   ├── RegularExpression.h</div><div>│   │   │   ├── STLUtils.h</div><div>│   │   │   ├── Scalar.h</div><div>│   │   │   ├── SearchFilter.h</div><div>│   │   │   ├── Section.h</div><div>│   │   │   ├── SourceManager.h</div><div>│   │   │   ├── State.h</div><div>│   │   │   ├── Stream.h</div><div>│   │   │   ├── StreamAsynchronousIO.h</div><div>│   │   │   ├── StreamBuffer.h</div><div>│   │   │   ├── StreamCallback.h</div><div>│   │   │   ├── StreamFile.h</div><div>│   │   │   ├── StreamGDBRemote.h</div><div>│   │   │   ├── StreamString.h</div><div>│   │   │   ├── StreamTee.h</div><div>│   │   │   ├── StringList.h</div><div>│   │   │   ├── StructuredData.h</div><div>│   │   │   ├── ThreadSafeDenseMap.h</div><div>│   │   │   ├── ThreadSafeSTLMap.h</div><div>│   │   │   ├── ThreadSafeValue.h</div><div>│   │   │   ├── Timer.h</div><div>│   │   │   ├── UUID.h</div><div>│   │   │   ├── UniqueCStringMap.h</div><div>│   │   │   ├── UserID.h</div><div>│   │   │   ├── UserSettingsController.h</div><div>│   │   │   ├── VMRange.h</div><div>│   │   │   ├── Value.h</div><div>│   │   │   ├── ValueObject.h</div><div>│   │   │   ├── ValueObjectCast.h</div><div>│   │   │   ├── ValueObjectChild.h</div><div>│   │   │   ├── ValueObjectConstResult.h</div><div>│   │   │   ├── ValueObjectConstResultChild.h</div><div>│   │   │   ├── ValueObjectConstResultImpl.h</div><div>│   │   │   ├── ValueObjectDynamicValue.h</div><div>│   │   │   ├── ValueObjectList.h</div><div>│   │   │   ├── ValueObjectMemory.h</div><div>│   │   │   ├── ValueObjectRegister.h</div><div>│   │   │   ├── ValueObjectSyntheticFilter.h</div><div>│   │   │   ├── ValueObjectVariable.h</div><div>│   │   │   └── dwarf.h</div><div>│   │   ├── DataFormatters</div><div>│   │   │   ├── CXXFormatterFunctions.h</div><div>│   │   │   ├── DataVisualization.h</div><div>│   │   │   ├── FormatCache.h</div><div>│   │   │   ├── FormatClasses.h</div><div>│   │   │   ├── FormatManager.h</div><div>│   │   │   ├── FormattersContainer.h</div><div>│   │   │   ├── StringPrinter.h</div><div>│   │   │   ├── TypeCategory.h</div><div>│   │   │   ├── TypeCategoryMap.h</div><div>│   │   │   ├── TypeFormat.h</div><div>│   │   │   ├── TypeSummary.h</div><div>│   │   │   ├── TypeSynthetic.h</div><div>│   │   │   ├── TypeValidator.h</div><div>│   │   │   └── ValueObjectPrinter.h</div><div>│   │   ├── Expression</div><div>│   │   │   ├── ASTDumper.h</div><div>│   │   │   ├── ASTResultSynthesizer.h</div><div>│   │   │   ├── ASTStructExtractor.h</div><div>│   │   │   ├── ClangASTSource.h</div><div>│   │   │   ├── ClangExpression.h</div><div>│   │   │   ├── ClangExpressionDeclMap.h</div><div>│   │   │   ├── ClangExpressionParser.h</div><div>│   │   │   ├── ClangExpressionVariable.h</div><div>│   │   │   ├── ClangFunction.h</div><div>│   │   │   ├── ClangModulesDeclVendor.h</div><div>│   │   │   ├── ClangPersistentVariables.h</div><div>│   │   │   ├── ClangUserExpression.h</div><div>│   │   │   ├── ClangUtilityFunction.h</div><div>│   │   │   ├── DWARFExpression.h</div><div>│   │   │   ├── ExpressionSourceCode.h</div><div>│   │   │   ├── IRDynamicChecks.h</div><div>│   │   │   ├── IRExecutionUnit.h</div><div>│   │   │   ├── IRForTarget.h</div><div>│   │   │   ├── IRInterpreter.h</div><div>│   │   │   ├── IRMemoryMap.h</div><div>│   │   │   ├── IRToDWARF.h</div><div>│   │   │   └── Materializer.h</div><div>│   │   ├── Host</div><div>│   │   │   ├── Condition.h</div><div>│   │   │   ├── Config.h</div><div>│   │   │   ├── ConnectionFileDescriptor.h</div><div>│   │   │   ├── Debug.h</div><div>│   │   │   ├── Editline.h</div><div>│   │   │   ├── Endian.h</div><div>│   │   │   ├── File.h</div><div>│   │   │   ├── FileCache.h</div><div>│   │   │   ├── FileSpec.h</div><div>│   │   │   ├── FileSystem.h</div><div>│   │   │   ├── Host.h</div><div>│   │   │   ├── HostGetOpt.h</div><div>│   │   │   ├── HostInfo.h</div><div>│   │   │   ├── HostInfoBase.h</div><div>│   │   │   ├── HostNativeProcess.h</div><div>│   │   │   ├── HostNativeProcessBase.h</div><div>│   │   │   ├── HostNativeThread.h</div><div>│   │   │   ├── HostNativeThreadBase.h</div><div>│   │   │   ├── HostNativeThreadForward.h</div><div>│   │   │   ├── HostProcess.h</div><div>│   │   │   ├── HostThread.h</div><div>│   │   │   ├── IOObject.h</div><div>│   │   │   ├── MonitoringProcessLauncher.h</div><div>│   │   │   ├── Mutex.h</div><div>│   │   │   ├── OptionParser.h</div><div>│   │   │   ├── Pipe.h</div><div>│   │   │   ├── PipeBase.h</div><div>│   │   │   ├── Predicate.h</div><div>│   │   │   ├── ProcessLauncher.h</div><div>│   │   │   ├── ProcessRunLock.h</div><div>│   │   │   ├── Socket.h</div><div>│   │   │   ├── SocketAddress.h</div><div>│   │   │   ├── Symbols.h</div><div>│   │   │   ├── Terminal.h</div><div>│   │   │   ├── ThisThread.h</div><div>│   │   │   ├── ThreadLauncher.h</div><div>│   │   │   ├── TimeValue.h</div><div>│   │   │   ├── android</div><div>│   │   │   │   ├── Android.h</div><div>│   │   │   │   └── Config.h</div><div>│   │   │   ├── freebsd</div><div>│   │   │   │   ├── Config.h</div><div>│   │   │   │   ├── HostInfoFreeBSD.h</div><div>│   │   │   │   └── HostThreadFreeBSD.h</div><div>│   │   │   ├── linux</div><div>│   │   │   │   ├── Config.h</div><div>│   │   │   │   ├── HostInfoLinux.h</div><div>│   │   │   │   └── HostThreadLinux.h</div><div>│   │   │   ├── macosx</div><div>│   │   │   │   ├── Config.h</div><div>│   │   │   │   ├── HostInfoMacOSX.h</div><div>│   │   │   │   └── HostThreadMacOSX.h</div><div>│   │   │   ├── mingw</div><div>│   │   │   │   └── Config.h</div><div>│   │   │   ├── msvc</div><div>│   │   │   │   └── Config.h</div><div>│   │   │   ├── posix</div><div>│   │   │   │   ├── ConnectionFileDescriptorPosix.h</div><div>│   │   │   │   ├── HostInfoPosix.h</div><div>│   │   │   │   ├── HostProcessPosix.h</div><div>│   │   │   │   ├── HostThreadPosix.h</div><div>│   │   │   │   ├── PipePosix.h</div><div>│   │   │   │   └── ProcessLauncherPosix.h</div><div>│   │   │   └── windows</div><div>│   │   │       ├── AutoHandle.h</div><div>│   │   │       ├── ConnectionGenericFileWindows.h</div><div>│   │   │       ├── HostInfoWindows.h</div><div>│   │   │       ├── HostProcessWindows.h</div><div>│   │   │       ├── HostThreadWindows.h</div><div>│   │   │       ├── PipeWindows.h</div><div>│   │   │       ├── ProcessLauncherWindows.h</div><div>│   │   │       ├── editlinewin.h</div><div>│   │   │       ├── getopt</div><div>│   │   │       │   └── GetOptInc.h</div><div>│   │   │       ├── win32.h</div><div>│   │   │       └── windows.h</div><div>│   │   ├── Interpreter</div><div>│   │   │   ├── Args.h</div><div>│   │   │   ├── CommandCompletions.h</div><div>│   │   │   ├── CommandHistory.h</div><div>│   │   │   ├── CommandInterpreter.h</div><div>│   │   │   ├── CommandObject.h</div><div>│   │   │   ├── CommandObjectMultiword.h</div><div>│   │   │   ├── CommandObjectRegexCommand.h</div><div>│   │   │   ├── CommandOptionValidators.h</div><div>│   │   │   ├── CommandReturnObject.h</div><div>│   │   │   ├── OptionGroupArchitecture.h</div><div>│   │   │   ├── OptionGroupBoolean.h</div><div>│   │   │   ├── OptionGroupFile.h</div><div>│   │   │   ├── OptionGroupFormat.h</div><div>│   │   │   ├── OptionGroupOutputFile.h</div><div>│   │   │   ├── OptionGroupPlatform.h</div><div>│   │   │   ├── OptionGroupString.h</div><div>│   │   │   ├── OptionGroupUInt64.h</div><div>│   │   │   ├── OptionGroupUUID.h</div><div>│   │   │   ├── OptionGroupValueObjectDisplay.h</div><div>│   │   │   ├── OptionGroupVariable.h</div><div>│   │   │   ├── OptionGroupWatchpoint.h</div><div>│   │   │   ├── OptionValue.h</div><div>│   │   │   ├── OptionValueArch.h</div><div>│   │   │   ├── OptionValueArgs.h</div><div>│   │   │   ├── OptionValueArray.h</div><div>│   │   │   ├── OptionValueBoolean.h</div><div>│   │   │   ├── OptionValueChar.h</div><div>│   │   │   ├── OptionValueDictionary.h</div><div>│   │   │   ├── OptionValueEnumeration.h</div><div>│   │   │   ├── OptionValueFileSpec.h</div><div>│   │   │   ├── OptionValueFileSpecList.h</div><div>│   │   │   ├── OptionValueFormat.h</div><div>│   │   │   ├── OptionValuePathMappings.h</div><div>│   │   │   ├── OptionValueProperties.h</div><div>│   │   │   ├── OptionValueRegex.h</div><div>│   │   │   ├── OptionValueSInt64.h</div><div>│   │   │   ├── OptionValueString.h</div><div>│   │   │   ├── OptionValueUInt64.h</div><div>│   │   │   ├── OptionValueUUID.h</div><div>│   │   │   ├── OptionValues.h</div><div>│   │   │   ├── Options.h</div><div>│   │   │   ├── Property.h</div><div>│   │   │   ├── PythonDataObjects.h</div><div>│   │   │   ├── ScriptInterpreter.h</div><div>│   │   │   ├── ScriptInterpreterNone.h</div><div>│   │   │   └── ScriptInterpreterPython.h</div><div>│   │   ├── Symbol</div><div>│   │   │   ├── Block.h</div><div>│   │   │   ├── ClangASTContext.h</div><div>│   │   │   ├── ClangASTImporter.h</div><div>│   │   │   ├── ClangASTType.h</div><div>│   │   │   ├── ClangExternalASTSourceCallbacks.h</div><div>│   │   │   ├── ClangExternalASTSourceCommon.h</div><div>│   │   │   ├── ClangNamespaceDecl.h</div><div>│   │   │   ├── CompactUnwindInfo.h</div><div>│   │   │   ├── CompileUnit.h</div><div>│   │   │   ├── DWARFCallFrameInfo.h</div><div>│   │   │   ├── DeclVendor.h</div><div>│   │   │   ├── Declaration.h</div><div>│   │   │   ├── FuncUnwinders.h</div><div>│   │   │   ├── Function.h</div><div>│   │   │   ├── LineEntry.h</div><div>│   │   │   ├── LineTable.h</div><div>│   │   │   ├── ObjectContainer.h</div><div>│   │   │   ├── ObjectFile.h</div><div>│   │   │   ├── Symbol.h</div><div>│   │   │   ├── SymbolContext.h</div><div>│   │   │   ├── SymbolContextScope.h</div><div>│   │   │   ├── SymbolFile.h</div><div>│   │   │   ├── SymbolVendor.h</div><div>│   │   │   ├── Symtab.h</div><div>│   │   │   ├── TaggedASTType.h</div><div>│   │   │   ├── Type.h</div><div>│   │   │   ├── TypeList.h</div><div>│   │   │   ├── UnwindPlan.h</div><div>│   │   │   ├── UnwindTable.h</div><div>│   │   │   ├── Variable.h</div><div>│   │   │   ├── VariableList.h</div><div>│   │   │   └── VerifyDecl.h</div><div>│   │   ├── Target</div><div>│   │   │   ├── ABI.h</div><div>│   │   │   ├── CPPLanguageRuntime.h</div><div>│   │   │   ├── DynamicLoader.h</div><div>│   │   │   ├── ExecutionContext.h</div><div>│   │   │   ├── ExecutionContextScope.h</div><div>│   │   │   ├── FileAction.h</div><div>│   │   │   ├── InstrumentationRuntime.h</div><div>│   │   │   ├── InstrumentationRuntimeStopInfo.h</div><div>│   │   │   ├── JITLoader.h</div><div>│   │   │   ├── JITLoaderList.h</div><div>│   │   │   ├── LanguageRuntime.h</div><div>│   │   │   ├── Memory.h</div><div>│   │   │   ├── MemoryHistory.h</div><div>│   │   │   ├── MemoryRegionInfo.h</div><div>│   │   │   ├── NativeRegisterContext.h</div><div>│   │   │   ├── NativeRegisterContextRegisterInfo.h</div><div>│   │   │   ├── ObjCLanguageRuntime.h</div><div>│   │   │   ├── OperatingSystem.h</div><div>│   │   │   ├── PathMappingList.h</div><div>│   │   │   ├── Platform.h</div><div>│   │   │   ├── Process.h</div><div>│   │   │   ├── ProcessInfo.h</div><div>│   │   │   ├── ProcessLaunchInfo.h</div><div>│   │   │   ├── Queue.h</div><div>│   │   │   ├── QueueItem.h</div><div>│   │   │   ├── QueueList.h</div><div>│   │   │   ├── RegisterCheckpoint.h</div><div>│   │   │   ├── RegisterContext.h</div><div>│   │   │   ├── SectionLoadHistory.h</div><div>│   │   │   ├── SectionLoadList.h</div><div>│   │   │   ├── StackFrame.h</div><div>│   │   │   ├── StackFrameList.h</div><div>│   │   │   ├── StackID.h</div><div>│   │   │   ├── StopInfo.h</div><div>│   │   │   ├── SystemRuntime.h</div><div>│   │   │   ├── Target.h</div><div>│   │   │   ├── TargetList.h</div><div>│   │   │   ├── Thread.h</div><div>│   │   │   ├── ThreadCollection.h</div><div>│   │   │   ├── ThreadList.h</div><div>│   │   │   ├── ThreadPlan.h</div><div>│   │   │   ├── ThreadPlanBase.h</div><div>│   │   │   ├── ThreadPlanCallFunction.h</div><div>│   │   │   ├── ThreadPlanCallUserExpression.h</div><div>│   │   │   ├── ThreadPlanPython.h</div><div>│   │   │   ├── ThreadPlanRunToAddress.h</div><div>│   │   │   ├── ThreadPlanShouldStopHere.h</div><div>│   │   │   ├── ThreadPlanStepInRange.h</div><div>│   │   │   ├── ThreadPlanStepInstruction.h</div><div>│   │   │   ├── ThreadPlanStepOut.h</div><div>│   │   │   ├── ThreadPlanStepOverBreakpoint.h</div><div>│   │   │   ├── ThreadPlanStepOverRange.h</div><div>│   │   │   ├── ThreadPlanStepRange.h</div><div>│   │   │   ├── ThreadPlanStepThrough.h</div><div>│   │   │   ├── ThreadPlanStepUntil.h</div><div>│   │   │   ├── ThreadPlanTracer.h</div><div>│   │   │   ├── ThreadSpec.h</div><div>│   │   │   ├── UnixSignals.h</div><div>│   │   │   ├── Unwind.h</div><div>│   │   │   └── UnwindAssembly.h</div><div>│   │   ├── Utility</div><div>│   │   │   ├── AnsiTerminal.h</div><div>│   │   │   ├── CleanUp.h</div><div>│   │   │   ├── Iterable.h</div><div>│   │   │   ├── PriorityPointerPair.h</div><div>│   │   │   ├── ProcessStructReader.h</div><div>│   │   │   ├── PseudoTerminal.h</div><div>│   │   │   ├── PythonPointer.h</div><div>│   │   │   ├── Range.h</div><div>│   │   │   ├── RegisterNumber.h</div><div>│   │   │   ├── SafeMachO.h</div><div>│   │   │   ├── SharedCluster.h</div><div>│   │   │   ├── SharingPtr.h</div><div>│   │   │   ├── StringLexer.h</div><div>│   │   │   └── Utils.h</div><div>│   │   ├── lldb-defines.h</div><div>│   │   ├── lldb-enumerations.h</div><div>│   │   ├── lldb-forward.h</div><div>│   │   ├── lldb-private-enumerations.h</div><div>│   │   ├── lldb-private-forward.h</div><div>│   │   ├── lldb-private-interfaces.h</div><div>│   │   ├── lldb-private-log.h</div><div>│   │   ├── lldb-private-types.h</div><div>│   │   ├── lldb-private.h</div><div>│   │   ├── lldb-public.h</div><div>│   │   ├── lldb-python.h</div><div>│   │   ├── lldb-types.h</div><div>│   │   └── lldb-versioning.h</div><div>│   ├── llvm -> ../../../include/llvm-3.6/llvm</div><div>│   └── llvm-c -> ../../../include/llvm-c-3.6/llvm-c</div><div>├── lib</div><div>│   ├── BugpointPasses.so</div><div>│   ├── LLVMHello.so</div><div>│   ├── LLVMgold.so</div><div>│   ├── clang</div><div>│   │   └── 3.6.2</div><div>│   │       ├── include</div><div>│   │       │   ├── Intrin.h</div><div>│   │       │   ├── __stddef_max_align_t.h</div><div>│   │       │   ├── __wmmintrin_aes.h</div><div>│   │       │   ├── __wmmintrin_pclmul.h</div><div>│   │       │   ├── adxintrin.h</div><div>│   │       │   ├── altivec.h</div><div>│   │       │   ├── ammintrin.h</div><div>│   │       │   ├── arm_acle.h</div><div>│   │       │   ├── arm_neon.h</div><div>│   │       │   ├── avx2intrin.h</div><div>│   │       │   ├── avx512bwintrin.h</div><div>│   │       │   ├── avx512erintrin.h</div><div>│   │       │   ├── avx512fintrin.h</div><div>│   │       │   ├── avx512vlbwintrin.h</div><div>│   │       │   ├── avx512vlintrin.h</div><div>│   │       │   ├── avxintrin.h</div><div>│   │       │   ├── bmi2intrin.h</div><div>│   │       │   ├── bmiintrin.h</div><div>│   │       │   ├── cpuid.h</div><div>│   │       │   ├── emmintrin.h</div><div>│   │       │   ├── f16cintrin.h</div><div>│   │       │   ├── float.h</div><div>│   │       │   ├── fma4intrin.h</div><div>│   │       │   ├── fmaintrin.h</div><div>│   │       │   ├── ia32intrin.h</div><div>│   │       │   ├── immintrin.h</div><div>│   │       │   ├── iso646.h</div><div>│   │       │   ├── limits.h</div><div>│   │       │   ├── lzcntintrin.h</div><div>│   │       │   ├── mm3dnow.h</div><div>│   │       │   ├── mm_malloc.h</div><div>│   │       │   ├── mmintrin.h</div><div>│   │       │   ├── module.modulemap</div><div>│   │       │   ├── nmmintrin.h</div><div>│   │       │   ├── pmmintrin.h</div><div>│   │       │   ├── popcntintrin.h</div><div>│   │       │   ├── prfchwintrin.h</div><div>│   │       │   ├── rdseedintrin.h</div><div>│   │       │   ├── rtmintrin.h</div><div>│   │       │   ├── sanitizer</div><div>│   │       │   │   ├── allocator_interface.h</div><div>│   │       │   │   ├── asan_interface.h</div><div>│   │       │   │   ├── common_interface_defs.h</div><div>│   │       │   │   ├── dfsan_interface.h</div><div>│   │       │   │   ├── linux_syscall_hooks.h</div><div>│   │       │   │   ├── lsan_interface.h</div><div>│   │       │   │   ├── msan_interface.h</div><div>│   │       │   │   └── tsan_interface_atomic.h</div><div>│   │       │   ├── shaintrin.h</div><div>│   │       │   ├── smmintrin.h</div><div>│   │       │   ├── stdalign.h</div><div>│   │       │   ├── stdarg.h</div><div>│   │       │   ├── stdatomic.h</div><div>│   │       │   ├── stdbool.h</div><div>│   │       │   ├── stddef.h</div><div>│   │       │   ├── stdint.h</div><div>│   │       │   ├── stdnoreturn.h</div><div>│   │       │   ├── tbmintrin.h</div><div>│   │       │   ├── tgmath.h</div><div>│   │       │   ├── tmmintrin.h</div><div>│   │       │   ├── unwind.h</div><div>│   │       │   ├── vadefs.h</div><div>│   │       │   ├── varargs.h</div><div>│   │       │   ├── wmmintrin.h</div><div>│   │       │   ├── x86intrin.h</div><div>│   │       │   ├── xmmintrin.h</div><div>│   │       │   └── xopintrin.h</div><div>│   │       └── lib</div><div>│   │           └── linux</div><div>│   │               ├── libclang_rt.asan-x86_64.a</div><div>│   │               ├── libclang_rt.asan_cxx-x86_64.a</div><div>│   │               ├── libclang_rt.builtins-x86_64.a</div><div>│   │               ├── libclang_rt.dfsan-x86_64.a</div><div>│   │               ├── libclang_rt.lsan-x86_64.a</div><div>│   │               ├── libclang_rt.msan-x86_64.a</div><div>│   │               ├── libclang_rt.profile-x86_64.a</div><div>│   │               ├── libclang_rt.san-x86_64.a</div><div>│   │               ├── libclang_rt.tsan-x86_64.a</div><div>│   │               ├── libclang_rt.ubsan-x86_64.a</div><div>│   │               └── libclang_rt.ubsan_cxx-x86_64.a</div><div>│   ├── <a href="http://libLLVM-3.6.2.so">libLLVM-3.6.2.so</a> -> ../../x86_64-linux-gnu/libLLVM-3.6.so.1</div><div>│   ├── libLLVM-3.6.2.so.1 -> ../../x86_64-linux-gnu/libLLVM-3.6.so.1</div><div>│   ├── <a href="http://libLLVM-3.6.so">libLLVM-3.6.so</a> -> ../../x86_64-linux-gnu/libLLVM-3.6.so.1</div><div>│   ├── libLLVMAArch64AsmParser.a</div><div>│   ├── libLLVMAArch64AsmPrinter.a</div><div>│   ├── libLLVMAArch64CodeGen.a</div><div>│   ├── libLLVMAArch64Desc.a</div><div>│   ├── libLLVMAArch64Disassembler.a</div><div>│   ├── libLLVMAArch64Info.a</div><div>│   ├── libLLVMAArch64Utils.a</div><div>│   ├── libLLVMARMAsmParser.a</div><div>│   ├── libLLVMARMAsmPrinter.a</div><div>│   ├── libLLVMARMCodeGen.a</div><div>│   ├── libLLVMARMDesc.a</div><div>│   ├── libLLVMARMDisassembler.a</div><div>│   ├── libLLVMARMInfo.a</div><div>│   ├── libLLVMAnalysis.a</div><div>│   ├── libLLVMAsmParser.a</div><div>│   ├── libLLVMAsmPrinter.a</div><div>│   ├── libLLVMBitReader.a</div><div>│   ├── libLLVMBitWriter.a</div><div>│   ├── libLLVMCodeGen.a</div><div>│   ├── libLLVMCore.a</div><div>│   ├── libLLVMCppBackendCodeGen.a</div><div>│   ├── libLLVMCppBackendInfo.a</div><div>│   ├── libLLVMDebugInfo.a</div><div>│   ├── libLLVMExecutionEngine.a</div><div>│   ├── libLLVMHexagonCodeGen.a</div><div>│   ├── libLLVMHexagonDesc.a</div><div>│   ├── libLLVMHexagonDisassembler.a</div><div>│   ├── libLLVMHexagonInfo.a</div><div>│   ├── libLLVMIRReader.a</div><div>│   ├── libLLVMInstCombine.a</div><div>│   ├── libLLVMInstrumentation.a</div><div>│   ├── libLLVMInterpreter.a</div><div>│   ├── libLLVMLTO.a</div><div>│   ├── libLLVMLineEditor.a</div><div>│   ├── libLLVMLinker.a</div><div>│   ├── libLLVMMC.a</div><div>│   ├── libLLVMMCDisassembler.a</div><div>│   ├── libLLVMMCJIT.a</div><div>│   ├── libLLVMMCParser.a</div><div>│   ├── libLLVMMSP430AsmPrinter.a</div><div>│   ├── libLLVMMSP430CodeGen.a</div><div>│   ├── libLLVMMSP430Desc.a</div><div>│   ├── libLLVMMSP430Info.a</div><div>│   ├── libLLVMMipsAsmParser.a</div><div>│   ├── libLLVMMipsAsmPrinter.a</div><div>│   ├── libLLVMMipsCodeGen.a</div><div>│   ├── libLLVMMipsDesc.a</div><div>│   ├── libLLVMMipsDisassembler.a</div><div>│   ├── libLLVMMipsInfo.a</div><div>│   ├── libLLVMNVPTXAsmPrinter.a</div><div>│   ├── libLLVMNVPTXCodeGen.a</div><div>│   ├── libLLVMNVPTXDesc.a</div><div>│   ├── libLLVMNVPTXInfo.a</div><div>│   ├── libLLVMObjCARCOpts.a</div><div>│   ├── libLLVMObject.a</div><div>│   ├── libLLVMOption.a</div><div>│   ├── libLLVMPowerPCAsmParser.a</div><div>│   ├── libLLVMPowerPCAsmPrinter.a</div><div>│   ├── libLLVMPowerPCCodeGen.a</div><div>│   ├── libLLVMPowerPCDesc.a</div><div>│   ├── libLLVMPowerPCDisassembler.a</div><div>│   ├── libLLVMPowerPCInfo.a</div><div>│   ├── libLLVMProfileData.a</div><div>│   ├── libLLVMR600AsmParser.a</div><div>│   ├── libLLVMR600AsmPrinter.a</div><div>│   ├── libLLVMR600CodeGen.a</div><div>│   ├── libLLVMR600Desc.a</div><div>│   ├── libLLVMR600Info.a</div><div>│   ├── libLLVMRuntimeDyld.a</div><div>│   ├── libLLVMScalarOpts.a</div><div>│   ├── libLLVMSelectionDAG.a</div><div>│   ├── libLLVMSparcAsmParser.a</div><div>│   ├── libLLVMSparcAsmPrinter.a</div><div>│   ├── libLLVMSparcCodeGen.a</div><div>│   ├── libLLVMSparcDesc.a</div><div>│   ├── libLLVMSparcDisassembler.a</div><div>│   ├── libLLVMSparcInfo.a</div><div>│   ├── libLLVMSupport.a</div><div>│   ├── libLLVMSystemZAsmParser.a</div><div>│   ├── libLLVMSystemZAsmPrinter.a</div><div>│   ├── libLLVMSystemZCodeGen.a</div><div>│   ├── libLLVMSystemZDesc.a</div><div>│   ├── libLLVMSystemZDisassembler.a</div><div>│   ├── libLLVMSystemZInfo.a</div><div>│   ├── libLLVMTableGen.a</div><div>│   ├── libLLVMTarget.a</div><div>│   ├── libLLVMTransformUtils.a</div><div>│   ├── libLLVMVectorize.a</div><div>│   ├── libLLVMX86AsmParser.a</div><div>│   ├── libLLVMX86AsmPrinter.a</div><div>│   ├── libLLVMX86CodeGen.a</div><div>│   ├── libLLVMX86Desc.a</div><div>│   ├── libLLVMX86Disassembler.a</div><div>│   ├── libLLVMX86Info.a</div><div>│   ├── libLLVMX86Utils.a</div><div>│   ├── libLLVMXCoreAsmPrinter.a</div><div>│   ├── libLLVMXCoreCodeGen.a</div><div>│   ├── libLLVMXCoreDesc.a</div><div>│   ├── libLLVMXCoreDisassembler.a</div><div>│   ├── libLLVMXCoreInfo.a</div><div>│   ├── libLLVMipa.a</div><div>│   ├── libLLVMipo.a</div><div>│   ├── libLTO.a</div><div>│   ├── libLTO.so</div><div>│   ├── libclang-3.6.so.1 -> ../../x86_64-linux-gnu/libclang-3.6.so.1</div><div>│   ├── libclang.so.1 -> libclang-3.6.so.1</div><div>│   ├── liblldb.so.1 -> ../../x86_64-linux-gnu/liblldb-3.6.so.1</div><div>│   ├── liblldbAPI.a</div><div>│   ├── liblldbBreakpoint.a</div><div>│   ├── liblldbCommands.a</div><div>│   ├── liblldbCore.a</div><div>│   ├── liblldbDataFormatters.a</div><div>│   ├── liblldbExpression.a</div><div>│   ├── liblldbHostCommon.a</div><div>│   ├── liblldbHostLinux.a</div><div>│   ├── liblldbHostPosix.a</div><div>│   ├── liblldbInitAndLog.a</div><div>│   ├── liblldbInterpreter.a</div><div>│   ├── liblldbPluginABIMacOSX_arm.a</div><div>│   ├── liblldbPluginABIMacOSX_arm64.a</div><div>│   ├── liblldbPluginABIMacOSX_i386.a</div><div>│   ├── liblldbPluginABISysV_hexagon.a</div><div>│   ├── liblldbPluginABISysV_ppc.a</div><div>│   ├── liblldbPluginABISysV_ppc64.a</div><div>│   ├── liblldbPluginABISysV_x86_64.a</div><div>│   ├── liblldbPluginDisassemblerLLVM.a</div><div>│   ├── liblldbPluginDynamicLoaderHexagon.a</div><div>│   ├── liblldbPluginDynamicLoaderMacOSX.a</div><div>│   ├── liblldbPluginDynamicLoaderPOSIX.a</div><div>│   ├── liblldbPluginDynamicLoaderStatic.a</div><div>│   ├── liblldbPluginEmulateInstructionARM.a</div><div>│   ├── liblldbPluginEmulateInstructionARM64.a</div><div>│   ├── liblldbPluginInstrumentationRuntimeAddressSanitizer.a</div><div>│   ├── liblldbPluginJITLoaderGDB.a</div><div>│   ├── liblldbPluginLanguageRuntimeCPlusPlusItaniumABI.a</div><div>│   ├── liblldbPluginLanguageRuntimeObjCAppleObjCRuntime.a</div><div>│   ├── liblldbPluginMemoryHistoryASan.a</div><div>│   ├── liblldbPluginObjectContainerBSDArchive.a</div><div>│   ├── liblldbPluginObjectFileELF.a</div><div>│   ├── liblldbPluginObjectFileJIT.a</div><div>│   ├── liblldbPluginObjectFilePECOFF.a</div><div>│   ├── liblldbPluginOperatingSystemPython.a</div><div>│   ├── liblldbPluginPlatformFreeBSD.a</div><div>│   ├── liblldbPluginPlatformGDBServer.a</div><div>│   ├── liblldbPluginPlatformKalimba.a</div><div>│   ├── liblldbPluginPlatformLinux.a</div><div>│   ├── liblldbPluginPlatformMacOSX.a</div><div>│   ├── liblldbPluginPlatformPOSIX.a</div><div>│   ├── liblldbPluginPlatformWindows.a</div><div>│   ├── liblldbPluginProcessElfCore.a</div><div>│   ├── liblldbPluginProcessGDBRemote.a</div><div>│   ├── liblldbPluginProcessLinux.a</div><div>│   ├── liblldbPluginProcessPOSIX.a</div><div>│   ├── liblldbPluginSymbolFileDWARF.a</div><div>│   ├── liblldbPluginSymbolFileSymtab.a</div><div>│   ├── liblldbPluginSymbolVendorELF.a</div><div>│   ├── liblldbPluginUnwindAssemblyInstEmulation.a</div><div>│   ├── liblldbPluginUnwindAssemblyx86.a</div><div>│   ├── liblldbPluginUtility.a</div><div>│   ├── liblldbSymbol.a</div><div>│   ├── liblldbTarget.a</div><div>│   ├── liblldbUtility.a</div><div>│   └── python2.7</div><div>│       └── site-packages</div><div>│           ├── lldb</div><div>│           │   ├── __init__.py</div><div>│           │   ├── _lldb.so -> ../../../liblldb.so</div><div>│           │   ├── embedded_interpreter.py</div><div>│           │   ├── formatters</div><div>│           │   │   ├── Logger.py</div><div>│           │   │   ├── __init__.py</div><div>│           │   │   ├── attrib_fromdict.py</div><div>│           │   │   ├── cache.py</div><div>│           │   │   ├── cpp</div><div>│           │   │   │   ├── __init__.py</div><div>│           │   │   │   ├── gnu_libstdcpp.py</div><div>│           │   │   │   └── libcxx.py</div><div>│           │   │   └── metrics.py</div><div>│           │   ├── libLLVM-3.6.2.so.1 -> ../../../x86_64-linux-gnu/libLLVM-3.6.2.so.1</div><div>│           │   ├── libLLVM-3.6.so.1 -> ../../../x86_64-linux-gnu/libLLVM-3.6.2.so.1</div><div>│           │   ├── runtime</div><div>│           │   │   └── __init__.py</div><div>│           │   └── utils</div><div>│           │       ├── __init__.py</div><div>│           │       └── symbolication.py</div><div>│           └── readline.so</div><div>└── share</div><div>    └── man</div><div>        └── man1</div><div>            └── clang.1</div><div><br></div><div>47 directories, 773 files</div><div>invain@target:/usr/lib/llvm-3.6$<br><br><br>-------------------------------------------------------------------------------------------------------------</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 12, 2016 at 3:58 AM, Tim Northover <span dir="ltr"><<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 11 May 2016 at 08:14, Geunsik Lim <<a href="mailto:leemgs@gmail.com">leemgs@gmail.com</a>> wrote:<br>
> At first glance, it seems that the key difference is "bl _ZNK7TypeKey10GetNumArgsEv(PLT)"<br>
> between -O1 and -O2 from the clsload.s file.<br>
<br>
</span>You're looking at the wrong compilation of clsload.c. If you look at<br>
the log file it gets compiled 3 times, I think it's the 3rd time that<br>
things go wrong.<br>
<br>
Beyond that, you can't just match up constpool entries like that. The<br>
numbering can change for all sorts of reasons at different<br>
optimization levels and those two snippets of code look completely<br>
unrelated to me.<br>
<span class=""><br>
> Could you tell me one example to understand what it is problem?<br>
<br>
</span>The commit had a test-case (also attached here). If you compile that<br>
with "llc -mtriple=thumbv7-linux-gnueabihf -relocation-model=pic<br>
simple.ll -o -" you should see something like this on a bad compiler:<br>
<br>
        ldr r5, .LCPI0_0<br>
        mov r6, r5<br>
    .LPC0_1:<br>
        add r5, pc<br>
    .LPC0_0:<br>
        add r6, pc<br>
        [...]<br>
        mov r0, r6<br>
        bl __tls_get_addr(PLT)<br>
        [...]<br>
        mov r0, r5<br>
        bl __tls_get_addr(PLT)<br>
        [...]<br>
    .LCPI0_0:<br>
    .Ltmp0:<br>
        .long var(TLSGD)-((.LPC0_0+4)-.Ltmp0)<br>
<br>
The key point is that r0 should be the same before each call to<br>
__tls_get_addr (it's a pointer to var's GOT entry) but that's<br>
impossible because r5 gets added to two different values of PC (the<br>
program counter).<br>
<br>
Cheers.<br>
<span class="HOEnZb"><font color="#888888"><br>
Tim.<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><a href="http://leemgs.fedorapeople.org" style="font-family:Tahoma" target="_blank">http://leemgs.fedorapeople.org</a><span style="font-family:Tahoma"> </span></div><div>Don't try to avoid pain if you fail.<br>If you decided to face the challenges in life, <br>you can gain a lot by giving your best.<br>Cheolsang Jeong's Book & life<br>--<br></div></div></div>
</div>