<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>