From owner-svn-src-projects@freebsd.org Sun Dec 24 01:05:03 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6DE31E88BA8 for ; Sun, 24 Dec 2017 01:05:03 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF11C7FB07; Sun, 24 Dec 2017 01:05:02 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBO151f9078278; Sun, 24 Dec 2017 01:05:01 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBO14xC8078238; Sun, 24 Dec 2017 01:04:59 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712240104.vBO14xC8078238@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 01:04:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327134 - in projects/clang600-import/contrib/llvm: include/llvm include/llvm-c include/llvm/Analysis include/llvm/BinaryFormat include/llvm/BinaryFormat/WasmRelocs include/llvm/CodeGen... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import/contrib/llvm: include/llvm include/llvm-c include/llvm/Analysis include/llvm/BinaryFormat include/llvm/BinaryFormat/WasmRelocs include/llvm/CodeGen include/llvm/CodeGen/Glo... X-SVN-Commit-Revision: 327134 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 01:05:03 -0000 Author: dim Date: Sun Dec 24 01:04:58 2017 New Revision: 327134 URL: https://svnweb.freebsd.org/changeset/base/327134 Log: Merge llvm trunk r321414 to contrib/llvm. Added: projects/clang600-import/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def - copied unchanged from r327133, vendor/llvm/dist/include/llvm/BinaryFormat/WasmRelocs.def projects/clang600-import/contrib/llvm/include/llvm/CodeGen/LiveStacks.h - copied unchanged from r327133, vendor/llvm/dist/include/llvm/CodeGen/LiveStacks.h projects/clang600-import/contrib/llvm/include/llvm/CodeGen/SDNodeProperties.td - copied unchanged from r327133, vendor/llvm/dist/include/llvm/CodeGen/SDNodeProperties.td projects/clang600-import/contrib/llvm/lib/CodeGen/LiveStacks.cpp - copied unchanged from r327133, vendor/llvm/dist/lib/CodeGen/LiveStacks.cpp projects/clang600-import/contrib/llvm/utils/TableGen/SDNodeProperties.cpp - copied unchanged from r327133, vendor/llvm/dist/utils/TableGen/SDNodeProperties.cpp projects/clang600-import/contrib/llvm/utils/TableGen/SDNodeProperties.h - copied unchanged from r327133, vendor/llvm/dist/utils/TableGen/SDNodeProperties.h Deleted: projects/clang600-import/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs/WebAssembly.def projects/clang600-import/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h projects/clang600-import/contrib/llvm/lib/CodeGen/LiveStackAnalysis.cpp Modified: projects/clang600-import/contrib/llvm/include/llvm-c/lto.h projects/clang600-import/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h projects/clang600-import/contrib/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h projects/clang600-import/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h projects/clang600-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h projects/clang600-import/contrib/llvm/include/llvm/Analysis/ProfileSummaryInfo.h projects/clang600-import/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h projects/clang600-import/contrib/llvm/include/llvm/BinaryFormat/Wasm.h projects/clang600-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h projects/clang600-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h projects/clang600-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h projects/clang600-import/contrib/llvm/include/llvm/CodeGen/MachineOperand.h projects/clang600-import/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.def projects/clang600-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h projects/clang600-import/contrib/llvm/include/llvm/CodeGen/TargetLowering.h projects/clang600-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h projects/clang600-import/contrib/llvm/include/llvm/FuzzMutate/IRMutator.h projects/clang600-import/contrib/llvm/include/llvm/IR/Function.h projects/clang600-import/contrib/llvm/include/llvm/IR/Intrinsics.td projects/clang600-import/contrib/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h projects/clang600-import/contrib/llvm/include/llvm/MC/MCAsmInfo.h projects/clang600-import/contrib/llvm/include/llvm/MC/MCStreamer.h projects/clang600-import/contrib/llvm/include/llvm/Object/Wasm.h projects/clang600-import/contrib/llvm/include/llvm/Support/CachePruning.h projects/clang600-import/contrib/llvm/include/llvm/Support/MemoryBuffer.h projects/clang600-import/contrib/llvm/include/llvm/Support/YAMLTraits.h projects/clang600-import/contrib/llvm/include/llvm/Target/TargetMachine.h projects/clang600-import/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td projects/clang600-import/contrib/llvm/include/llvm/Transforms/Instrumentation.h projects/clang600-import/contrib/llvm/include/llvm/Transforms/Utils/CallPromotionUtils.h projects/clang600-import/contrib/llvm/include/llvm/module.modulemap projects/clang600-import/contrib/llvm/lib/Analysis/AliasAnalysis.cpp projects/clang600-import/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp projects/clang600-import/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp projects/clang600-import/contrib/llvm/lib/Analysis/CFGPrinter.cpp projects/clang600-import/contrib/llvm/lib/Analysis/GlobalsModRef.cpp projects/clang600-import/contrib/llvm/lib/Analysis/InlineCost.cpp projects/clang600-import/contrib/llvm/lib/Analysis/LoopAccessAnalysis.cpp projects/clang600-import/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp projects/clang600-import/contrib/llvm/lib/Analysis/MemorySSA.cpp projects/clang600-import/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp projects/clang600-import/contrib/llvm/lib/Analysis/ProfileSummaryInfo.cpp projects/clang600-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp projects/clang600-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp projects/clang600-import/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp projects/clang600-import/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/InlineSpiller.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/MIRPrinter.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/MachineOperand.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/MachineVerifier.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/VirtRegMap.cpp projects/clang600-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp projects/clang600-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp projects/clang600-import/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp projects/clang600-import/contrib/llvm/lib/Demangle/ItaniumDemangle.cpp projects/clang600-import/contrib/llvm/lib/FuzzMutate/IRMutator.cpp projects/clang600-import/contrib/llvm/lib/IR/ConstantFold.cpp projects/clang600-import/contrib/llvm/lib/IR/Function.cpp projects/clang600-import/contrib/llvm/lib/IR/Value.cpp projects/clang600-import/contrib/llvm/lib/MC/MCAsmStreamer.cpp projects/clang600-import/contrib/llvm/lib/MC/MCStreamer.cpp projects/clang600-import/contrib/llvm/lib/MC/WasmObjectWriter.cpp projects/clang600-import/contrib/llvm/lib/Object/ELF.cpp projects/clang600-import/contrib/llvm/lib/Object/WasmObjectFile.cpp projects/clang600-import/contrib/llvm/lib/Object/WindowsResource.cpp projects/clang600-import/contrib/llvm/lib/ObjectYAML/WasmYAML.cpp projects/clang600-import/contrib/llvm/lib/Support/APFloat.cpp projects/clang600-import/contrib/llvm/lib/Support/CachePruning.cpp projects/clang600-import/contrib/llvm/lib/Support/MemoryBuffer.cpp projects/clang600-import/contrib/llvm/lib/Support/StringRef.cpp projects/clang600-import/contrib/llvm/lib/Support/TargetParser.cpp projects/clang600-import/contrib/llvm/lib/Support/YAMLTraits.cpp projects/clang600-import/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp projects/clang600-import/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp projects/clang600-import/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp projects/clang600-import/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp projects/clang600-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp projects/clang600-import/contrib/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp projects/clang600-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp projects/clang600-import/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h projects/clang600-import/contrib/llvm/lib/Target/AArch64/AArch64SystemOperands.td projects/clang600-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.h projects/clang600-import/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp projects/clang600-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp projects/clang600-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h projects/clang600-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h projects/clang600-import/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp projects/clang600-import/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp projects/clang600-import/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h projects/clang600-import/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp projects/clang600-import/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td projects/clang600-import/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp projects/clang600-import/contrib/llvm/lib/Target/ARC/ARCTargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/ARC/ARCTargetMachine.h projects/clang600-import/contrib/llvm/lib/Target/ARM/ARM.h projects/clang600-import/contrib/llvm/lib/Target/ARM/ARM.td projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMISelLowering.h projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMSubtarget.h projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp projects/clang600-import/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h projects/clang600-import/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp projects/clang600-import/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp projects/clang600-import/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp projects/clang600-import/contrib/llvm/lib/Target/BPF/InstPrinter/BPFInstPrinter.cpp projects/clang600-import/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp projects/clang600-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp projects/clang600-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h projects/clang600-import/contrib/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp projects/clang600-import/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td projects/clang600-import/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td projects/clang600-import/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.h projects/clang600-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.h projects/clang600-import/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.h projects/clang600-import/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp projects/clang600-import/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td projects/clang600-import/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h projects/clang600-import/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.h projects/clang600-import/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp projects/clang600-import/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp projects/clang600-import/contrib/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp projects/clang600-import/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h projects/clang600-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.h projects/clang600-import/contrib/llvm/lib/Target/TargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp projects/clang600-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp projects/clang600-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.h projects/clang600-import/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp projects/clang600-import/contrib/llvm/lib/Target/X86/X86.td projects/clang600-import/contrib/llvm/lib/Target/X86/X86DomainReassignment.cpp projects/clang600-import/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp projects/clang600-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clang600-import/contrib/llvm/lib/Target/X86/X86Instr3DNow.td projects/clang600-import/contrib/llvm/lib/Target/X86/X86InstrFormats.td projects/clang600-import/contrib/llvm/lib/Target/X86/X86InstrInfo.td projects/clang600-import/contrib/llvm/lib/Target/X86/X86InstrSSE.td projects/clang600-import/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp projects/clang600-import/contrib/llvm/lib/Target/X86/X86Subtarget.cpp projects/clang600-import/contrib/llvm/lib/Target/X86/X86Subtarget.h projects/clang600-import/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/X86/X86TargetMachine.h projects/clang600-import/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp projects/clang600-import/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.h projects/clang600-import/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp projects/clang600-import/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp projects/clang600-import/contrib/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp projects/clang600-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Scalar/LoopSink.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp projects/clang600-import/contrib/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp projects/clang600-import/contrib/llvm/tools/llvm-lto/llvm-lto.cpp projects/clang600-import/contrib/llvm/tools/llvm-objcopy/Object.cpp projects/clang600-import/contrib/llvm/tools/llvm-objcopy/Object.h projects/clang600-import/contrib/llvm/tools/llvm-objcopy/llvm-objcopy.cpp projects/clang600-import/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp projects/clang600-import/contrib/llvm/tools/llvm-readobj/WasmDumper.cpp projects/clang600-import/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp projects/clang600-import/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h projects/clang600-import/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h projects/clang600-import/contrib/llvm/utils/TableGen/CodeGenTarget.cpp projects/clang600-import/contrib/llvm/utils/TableGen/CodeGenTarget.h projects/clang600-import/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp projects/clang600-import/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp Directory Properties: projects/clang600-import/contrib/llvm/ (props changed) Modified: projects/clang600-import/contrib/llvm/include/llvm-c/lto.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm-c/lto.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm-c/lto.h Sun Dec 24 01:04:58 2017 (r327134) @@ -757,17 +757,17 @@ extern void thinlto_codegen_add_cross_referenced_symbo * @ingroup LLVMCTLTO * * These entry points control the ThinLTO cache. The cache is intended to - * support incremental build, and thus needs to be persistent accross build. - * The client enabled the cache by supplying a path to an existing directory. + * support incremental builds, and thus needs to be persistent across builds. + * The client enables the cache by supplying a path to an existing directory. * The code generator will use this to store objects files that may be reused * during a subsequent build. * To avoid filling the disk space, a few knobs are provided: - * - The pruning interval limit the frequency at which the garbage collector - * will try to scan the cache directory to prune it from expired entries. - * Setting to -1 disable the pruning (default). + * - The pruning interval limits the frequency at which the garbage collector + * will try to scan the cache directory to prune expired entries. + * Setting to a negative number disables the pruning. * - The pruning expiration time indicates to the garbage collector how old an * entry needs to be to be removed. - * - Finally, the garbage collector can be instructed to prune the cache till + * - Finally, the garbage collector can be instructed to prune the cache until * the occupied space goes below a threshold. * @{ */ @@ -782,7 +782,7 @@ extern void thinlto_codegen_set_cache_dir(thinlto_code const char *cache_dir); /** - * Sets the cache pruning interval (in seconds). A negative value disable the + * Sets the cache pruning interval (in seconds). A negative value disables the * pruning. An unspecified default value will be applied, and a value of 0 will * be ignored. * Modified: projects/clang600-import/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h Sun Dec 24 01:04:58 2017 (r327134) @@ -95,46 +95,81 @@ enum AliasResult { /// /// This is no access at all, a modification, a reference, or both /// a modification and a reference. These are specifically structured such that -/// they form a two bit matrix and bit-tests for 'mod' or 'ref' +/// they form a three bit matrix and bit-tests for 'mod' or 'ref' or 'must' /// work with any of the possible values. - enum class ModRefInfo { + /// Must is provided for completeness, but no routines will return only + /// Must today. See definition of Must below. + Must = 0, + /// The access may reference the value stored in memory, + /// a mustAlias relation was found, and no mayAlias or partialAlias found. + MustRef = 1, + /// The access may modify the value stored in memory, + /// a mustAlias relation was found, and no mayAlias or partialAlias found. + MustMod = 2, + /// The access may reference, modify or both the value stored in memory, + /// a mustAlias relation was found, and no mayAlias or partialAlias found. + MustModRef = MustRef | MustMod, /// The access neither references nor modifies the value stored in memory. - NoModRef = 0, + NoModRef = 4, /// The access may reference the value stored in memory. - Ref = 1, + Ref = NoModRef | MustRef, /// The access may modify the value stored in memory. - Mod = 2, + Mod = NoModRef | MustMod, /// The access may reference and may modify the value stored in memory. ModRef = Ref | Mod, + + /// About Must: + /// Must is set in a best effort manner. + /// We usually do not try our best to infer Must, instead it is merely + /// another piece of "free" information that is presented when available. + /// Must set means there was certainly a MustAlias found. For calls, + /// where multiple arguments are checked (argmemonly), this translates to + /// only MustAlias or NoAlias was found. + /// Must is not set for RAR accesses, even if the two locations must + /// alias. The reason is that two read accesses translate to an early return + /// of NoModRef. An additional alias check to set Must may be + /// expensive. Other cases may also not set Must(e.g. callCapturesBefore). + /// We refer to Must being *set* when the most significant bit is *cleared*. + /// Conversely we *clear* Must information by *setting* the Must bit to 1. }; LLVM_NODISCARD inline bool isNoModRef(const ModRefInfo MRI) { - return MRI == ModRefInfo::NoModRef; + return (static_cast(MRI) & static_cast(ModRefInfo::MustModRef)) == + static_cast(ModRefInfo::Must); } LLVM_NODISCARD inline bool isModOrRefSet(const ModRefInfo MRI) { - return static_cast(MRI) & static_cast(ModRefInfo::ModRef); + return static_cast(MRI) & static_cast(ModRefInfo::MustModRef); } LLVM_NODISCARD inline bool isModAndRefSet(const ModRefInfo MRI) { - return (static_cast(MRI) & static_cast(ModRefInfo::ModRef)) == - static_cast(ModRefInfo::ModRef); + return (static_cast(MRI) & static_cast(ModRefInfo::MustModRef)) == + static_cast(ModRefInfo::MustModRef); } LLVM_NODISCARD inline bool isModSet(const ModRefInfo MRI) { - return static_cast(MRI) & static_cast(ModRefInfo::Mod); + return static_cast(MRI) & static_cast(ModRefInfo::MustMod); } LLVM_NODISCARD inline bool isRefSet(const ModRefInfo MRI) { - return static_cast(MRI) & static_cast(ModRefInfo::Ref); + return static_cast(MRI) & static_cast(ModRefInfo::MustRef); } +LLVM_NODISCARD inline bool isMustSet(const ModRefInfo MRI) { + return !(static_cast(MRI) & static_cast(ModRefInfo::NoModRef)); +} LLVM_NODISCARD inline ModRefInfo setMod(const ModRefInfo MRI) { - return ModRefInfo(static_cast(MRI) | static_cast(ModRefInfo::Mod)); + return ModRefInfo(static_cast(MRI) | + static_cast(ModRefInfo::MustMod)); } LLVM_NODISCARD inline ModRefInfo setRef(const ModRefInfo MRI) { - return ModRefInfo(static_cast(MRI) | static_cast(ModRefInfo::Ref)); + return ModRefInfo(static_cast(MRI) | + static_cast(ModRefInfo::MustRef)); } +LLVM_NODISCARD inline ModRefInfo setMust(const ModRefInfo MRI) { + return ModRefInfo(static_cast(MRI) & + static_cast(ModRefInfo::MustModRef)); +} LLVM_NODISCARD inline ModRefInfo setModAndRef(const ModRefInfo MRI) { return ModRefInfo(static_cast(MRI) | - static_cast(ModRefInfo::ModRef)); + static_cast(ModRefInfo::MustModRef)); } LLVM_NODISCARD inline ModRefInfo clearMod(const ModRefInfo MRI) { return ModRefInfo(static_cast(MRI) & static_cast(ModRefInfo::Ref)); @@ -142,6 +177,10 @@ LLVM_NODISCARD inline ModRefInfo clearMod(const ModRef LLVM_NODISCARD inline ModRefInfo clearRef(const ModRefInfo MRI) { return ModRefInfo(static_cast(MRI) & static_cast(ModRefInfo::Mod)); } +LLVM_NODISCARD inline ModRefInfo clearMust(const ModRefInfo MRI) { + return ModRefInfo(static_cast(MRI) | + static_cast(ModRefInfo::NoModRef)); +} LLVM_NODISCARD inline ModRefInfo unionModRef(const ModRefInfo MRI1, const ModRefInfo MRI2) { return ModRefInfo(static_cast(MRI1) | static_cast(MRI2)); @@ -160,11 +199,11 @@ enum FunctionModRefLocation { /// Base case is no access to memory. FMRL_Nowhere = 0, /// Access to memory via argument pointers. - FMRL_ArgumentPointees = 4, + FMRL_ArgumentPointees = 8, /// Memory that is inaccessible via LLVM IR. - FMRL_InaccessibleMem = 8, + FMRL_InaccessibleMem = 16, /// Access to any memory. - FMRL_Anywhere = 16 | FMRL_InaccessibleMem | FMRL_ArgumentPointees + FMRL_Anywhere = 32 | FMRL_InaccessibleMem | FMRL_ArgumentPointees }; /// Summary of how a function affects memory in the program. @@ -344,7 +383,7 @@ class AAResults { (public) /// result's bits are set to indicate the allowed aliasing ModRef kinds. Note /// that these bits do not necessarily account for the overall behavior of /// the function, but rather only provide additional per-argument - /// information. + /// information. This never sets ModRefInfo::Must. ModRefInfo getArgModRefInfo(ImmutableCallSite CS, unsigned ArgIdx); /// Return the behavior of the given call site. @@ -624,6 +663,8 @@ class AAResults { (public) /// or reads the specified memory location \p MemLoc before instruction \p I /// in a BasicBlock. An ordered basic block \p OBB can be used to speed up /// instruction ordering queries inside the BasicBlock containing \p I. + /// Early exits in callCapturesBefore may lead to ModRefInfo::Must not being + /// set. ModRefInfo callCapturesBefore(const Instruction *I, const MemoryLocation &MemLoc, DominatorTree *DT, OrderedBasicBlock *OBB = nullptr); Modified: projects/clang600-import/contrib/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h Sun Dec 24 01:04:58 2017 (r327134) @@ -35,19 +35,23 @@ class AAEvaluator : public PassInfoMixin int64_t FunctionCount; int64_t NoAliasCount, MayAliasCount, PartialAliasCount, MustAliasCount; int64_t NoModRefCount, ModCount, RefCount, ModRefCount; + int64_t MustCount, MustRefCount, MustModCount, MustModRefCount; public: AAEvaluator() : FunctionCount(), NoAliasCount(), MayAliasCount(), PartialAliasCount(), MustAliasCount(), NoModRefCount(), ModCount(), RefCount(), - ModRefCount() {} + ModRefCount(), MustCount(), MustRefCount(), MustModCount(), + MustModRefCount() {} AAEvaluator(AAEvaluator &&Arg) : FunctionCount(Arg.FunctionCount), NoAliasCount(Arg.NoAliasCount), MayAliasCount(Arg.MayAliasCount), PartialAliasCount(Arg.PartialAliasCount), MustAliasCount(Arg.MustAliasCount), NoModRefCount(Arg.NoModRefCount), ModCount(Arg.ModCount), RefCount(Arg.RefCount), - ModRefCount(Arg.ModRefCount) { + ModRefCount(Arg.ModRefCount), MustCount(Arg.MustCount), + MustRefCount(Arg.MustRefCount), MustModCount(Arg.MustModCount), + MustModRefCount(Arg.MustModRefCount) { Arg.FunctionCount = 0; } ~AAEvaluator(); Modified: projects/clang600-import/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h Sun Dec 24 01:04:58 2017 (r327134) @@ -667,21 +667,6 @@ int64_t getPtrStride(PredicatedScalarEvolution &PSE, V const ValueToValueMap &StridesMap = ValueToValueMap(), bool Assume = false, bool ShouldCheckWrap = true); -/// \brief Attempt to sort the 'loads' in \p VL and return the sorted values in -/// \p Sorted. -/// -/// Returns 'false' if sorting is not legal or feasible, otherwise returns -/// 'true'. If \p Mask is not null, it also returns the \p Mask which is the -/// shuffle mask for actual memory access order. -/// -/// For example, for a given VL of memory accesses in program order, a[i+2], -/// a[i+0], a[i+1] and a[i+3], this function will sort the VL and save the -/// sorted value in 'Sorted' as a[i+0], a[i+1], a[i+2], a[i+3] and saves the -/// mask for actual memory accesses in program order in 'Mask' as <2,0,1,3> -bool sortLoadAccesses(ArrayRef VL, const DataLayout &DL, - ScalarEvolution &SE, SmallVectorImpl &Sorted, - SmallVectorImpl *Mask = nullptr); - /// \brief Returns true if the memory operations \p A and \p B are consecutive. /// This is a simple API that does not depend on the analysis pass. bool isConsecutiveAccess(Value *A, Value *B, const DataLayout &DL, Modified: projects/clang600-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h Sun Dec 24 01:04:58 2017 (r327134) @@ -407,6 +407,12 @@ class MemoryDependenceResults { (public) void getNonLocalPointerDependency(Instruction *QueryInst, SmallVectorImpl &Result); + /// Perform a dependency query specifically for QueryInst's access to Loc. + /// The other comments for getNonLocalPointerDependency apply here as well. + void getNonLocalPointerDependencyFrom(Instruction *QueryInst, + const MemoryLocation &Loc, bool isLoad, + SmallVectorImpl &Result); + /// Removes an instruction from the dependence analysis, updating the /// dependence of instructions that previously depended on it. void removeInstruction(Instruction *InstToRemove); Modified: projects/clang600-import/contrib/llvm/include/llvm/Analysis/ProfileSummaryInfo.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Analysis/ProfileSummaryInfo.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/Analysis/ProfileSummaryInfo.h Sun Dec 24 01:04:58 2017 (r327134) @@ -92,12 +92,12 @@ class ProfileSummaryInfo { (public) bool hasHugeWorkingSetSize(); /// \brief Returns true if \p F has hot function entry. bool isFunctionEntryHot(const Function *F); - /// Returns true if \p F has hot function entry or hot call edge. - bool isFunctionHotInCallGraph(const Function *F); + /// Returns true if \p F contains hot code. + bool isFunctionHotInCallGraph(const Function *F, BlockFrequencyInfo &BFI); /// \brief Returns true if \p F has cold function entry. bool isFunctionEntryCold(const Function *F); - /// Returns true if \p F has cold function entry or cold call edge. - bool isFunctionColdInCallGraph(const Function *F); + /// Returns true if \p F contains only cold code. + bool isFunctionColdInCallGraph(const Function *F, BlockFrequencyInfo &BFI); /// \brief Returns true if \p F is a hot function. bool isHotCount(uint64_t C); /// \brief Returns true if count \p C is considered cold. Modified: projects/clang600-import/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h Sun Dec 24 01:04:58 2017 (r327134) @@ -47,7 +47,7 @@ namespace llvm { ScalarEvolution &SE; const DataLayout &DL; - // New instructions receive a name to identifies them with the current pass. + // New instructions receive a name to identify them with the current pass. const char* IVName; // InsertedExpressions caches Values for reuse, so must track RAUW. Modified: projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h Sun Dec 24 01:04:58 2017 (r327134) @@ -646,6 +646,9 @@ class TargetTransformInfo { (public) /// \brief Additional properties of an operand's values. enum OperandValueProperties { OP_None = 0, OP_PowerOf2 = 1 }; + /// \return True if target can execute instructions out of order. + bool isOutOfOrder() const; + /// \return The number of scalar or vector registers that the target has. /// If 'Vectors' is true, it returns the number of vector registers. If it is /// set to false, it returns the number of scalar registers. @@ -1018,6 +1021,7 @@ class TargetTransformInfo::Concept { (public) Type *Ty) = 0; virtual int getIntImmCost(Intrinsic::ID IID, unsigned Idx, const APInt &Imm, Type *Ty) = 0; + virtual bool isOutOfOrder() const = 0; virtual unsigned getNumberOfRegisters(bool Vector) = 0; virtual unsigned getRegisterBitWidth(bool Vector) const = 0; virtual unsigned getMinVectorRegisterBitWidth() = 0; @@ -1294,6 +1298,9 @@ class TargetTransformInfo::Model final : public Target int getIntImmCost(Intrinsic::ID IID, unsigned Idx, const APInt &Imm, Type *Ty) override { return Impl.getIntImmCost(IID, Idx, Imm, Ty); + } + bool isOutOfOrder() const override { + return Impl.isOutOfOrder(); } unsigned getNumberOfRegisters(bool Vector) override { return Impl.getNumberOfRegisters(Vector); Modified: projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h Sun Dec 24 01:04:58 2017 (r327134) @@ -337,6 +337,8 @@ class TargetTransformInfoImplBase { (public) return TTI::TCC_Free; } + bool isOutOfOrder() const { return false; } + unsigned getNumberOfRegisters(bool Vector) { return 8; } unsigned getRegisterBitWidth(bool Vector) const { return 32; } Modified: projects/clang600-import/contrib/llvm/include/llvm/BinaryFormat/Wasm.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/BinaryFormat/Wasm.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/BinaryFormat/Wasm.h Sun Dec 24 01:04:58 2017 (r327134) @@ -208,7 +208,7 @@ const unsigned WASM_SYMBOL_VISIBILITY_HIDDEN = 0x4; #define WASM_RELOC(name, value) name = value, enum : unsigned { -#include "WasmRelocs/WebAssembly.def" +#include "WasmRelocs.def" }; #undef WASM_RELOC Copied: projects/clang600-import/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def (from r327133, vendor/llvm/dist/include/llvm/BinaryFormat/WasmRelocs.def) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang600-import/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def Sun Dec 24 01:04:58 2017 (r327134, copy of r327133, vendor/llvm/dist/include/llvm/BinaryFormat/WasmRelocs.def) @@ -0,0 +1,13 @@ + +#ifndef WASM_RELOC +#error "WASM_RELOC must be defined" +#endif + +WASM_RELOC(R_WEBASSEMBLY_FUNCTION_INDEX_LEB, 0) +WASM_RELOC(R_WEBASSEMBLY_TABLE_INDEX_SLEB, 1) +WASM_RELOC(R_WEBASSEMBLY_TABLE_INDEX_I32, 2) +WASM_RELOC(R_WEBASSEMBLY_MEMORY_ADDR_LEB, 3) +WASM_RELOC(R_WEBASSEMBLY_MEMORY_ADDR_SLEB, 4) +WASM_RELOC(R_WEBASSEMBLY_MEMORY_ADDR_I32, 5) +WASM_RELOC(R_WEBASSEMBLY_TYPE_INDEX_LEB, 6) +WASM_RELOC(R_WEBASSEMBLY_GLOBAL_INDEX_LEB, 7) Modified: projects/clang600-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h Sun Dec 24 01:04:58 2017 (r327134) @@ -302,9 +302,13 @@ class BasicTTIImplBase : public TargetTransformInfoImp } unsigned getFPOpCost(Type *Ty) { - // By default, FP instructions are no more expensive since they are - // implemented in HW. Target specific TTI can override this. - return TargetTransformInfo::TCC_Basic; + // Check whether FADD is available, as a proxy for floating-point in + // general. + const TargetLoweringBase *TLI = getTLI(); + EVT VT = TLI->getValueType(DL, Ty); + if (TLI->isOperationLegalOrCustomOrPromote(ISD::FADD, VT)) + return TargetTransformInfo::TCC_Basic; + return TargetTransformInfo::TCC_Expensive; } unsigned getOperationCost(unsigned Opcode, Type *Ty, Type *OpTy) { @@ -396,6 +400,10 @@ class BasicTTIImplBase : public TargetTransformInfoImp return getST()->getSchedModel().DefaultLoadLatency; return BaseT::getInstructionLatency(I); + } + + bool isOutOfOrder() const { + return getST()->getSchedModel().isOutOfOrder(); } /// @} Modified: projects/clang600-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h Sun Dec 24 01:04:58 2017 (r327134) @@ -282,10 +282,6 @@ enum { /// Provides the logic to select generic machine instructions. class InstructionSelector { public: - using I64ImmediatePredicateFn = bool (*)(int64_t); - using APIntImmediatePredicateFn = bool (*)(const APInt &); - using APFloatImmediatePredicateFn = bool (*)(const APFloat &); - virtual ~InstructionSelector() = default; /// Select the (possibly generic) instruction \p I to only use target-specific @@ -319,9 +315,6 @@ class InstructionSelector { (public) struct MatcherInfoTy { const LLT *TypeObjects; const PredicateBitset *FeatureBitsets; - const I64ImmediatePredicateFn *I64ImmPredicateFns; - const APIntImmediatePredicateFn *APIntImmPredicateFns; - const APFloatImmediatePredicateFn *APFloatImmPredicateFns; const ComplexMatcherMemFn *ComplexPredicates; }; @@ -339,6 +332,16 @@ class InstructionSelector { (public) MachineRegisterInfo &MRI, const TargetRegisterInfo &TRI, const RegisterBankInfo &RBI, const PredicateBitset &AvailableFeatures, CodeGenCoverage &CoverageInfo) const; + + virtual bool testImmPredicate_I64(unsigned, int64_t) const { + llvm_unreachable("Subclasses must override this to use tablegen"); + } + virtual bool testImmPredicate_APInt(unsigned, const APInt &) const { + llvm_unreachable("Subclasses must override this to use tablegen"); + } + virtual bool testImmPredicate_APFloat(unsigned, const APFloat &) const { + llvm_unreachable("Subclasses must override this to use tablegen"); + } /// Constrain a register operand of an instruction \p I to a specified /// register class. This could involve inserting COPYs before (for uses) or Modified: projects/clang600-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h Sun Dec 24 01:04:58 2017 (r327134) @@ -181,7 +181,7 @@ bool InstructionSelector::executeMatchTable( else llvm_unreachable("Expected Imm or CImm operand"); - if (!MatcherInfo.I64ImmPredicateFns[Predicate](Value)) + if (!testImmPredicate_I64(Predicate, Value)) if (handleReject() == RejectAndGiveUp) return false; break; @@ -202,7 +202,7 @@ bool InstructionSelector::executeMatchTable( else llvm_unreachable("Expected Imm or CImm operand"); - if (!MatcherInfo.APIntImmPredicateFns[Predicate](Value)) + if (!testImmPredicate_APInt(Predicate, Value)) if (handleReject() == RejectAndGiveUp) return false; break; @@ -221,7 +221,7 @@ bool InstructionSelector::executeMatchTable( assert(Predicate > GIPFP_APFloat_Invalid && "Expected a valid predicate"); APFloat Value = State.MIs[InsnID]->getOperand(1).getFPImm()->getValueAPF(); - if (!MatcherInfo.APFloatImmPredicateFns[Predicate](Value)) + if (!testImmPredicate_APFloat(Predicate, Value)) if (handleReject() == RejectAndGiveUp) return false; break; Copied: projects/clang600-import/contrib/llvm/include/llvm/CodeGen/LiveStacks.h (from r327133, vendor/llvm/dist/include/llvm/CodeGen/LiveStacks.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang600-import/contrib/llvm/include/llvm/CodeGen/LiveStacks.h Sun Dec 24 01:04:58 2017 (r327134, copy of r327133, vendor/llvm/dist/include/llvm/CodeGen/LiveStacks.h) @@ -0,0 +1,103 @@ +//===- LiveStacks.h - Live Stack Slot Analysis ------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file implements the live stack slot analysis pass. It is analogous to +// live interval analysis except it's analyzing liveness of stack slots rather +// than registers. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CODEGEN_LIVESTACKS_H +#define LLVM_CODEGEN_LIVESTACKS_H + +#include "llvm/CodeGen/LiveInterval.h" +#include "llvm/CodeGen/MachineFunctionPass.h" +#include "llvm/Pass.h" +#include +#include +#include + +namespace llvm { + +class TargetRegisterClass; +class TargetRegisterInfo; + +class LiveStacks : public MachineFunctionPass { + const TargetRegisterInfo *TRI; + + /// Special pool allocator for VNInfo's (LiveInterval val#). + /// + VNInfo::Allocator VNInfoAllocator; + + /// S2IMap - Stack slot indices to live interval mapping. + using SS2IntervalMap = std::unordered_map; + SS2IntervalMap S2IMap; + + /// S2RCMap - Stack slot indices to register class mapping. + std::map S2RCMap; + +public: + static char ID; // Pass identification, replacement for typeid + + LiveStacks() : MachineFunctionPass(ID) { + initializeLiveStacksPass(*PassRegistry::getPassRegistry()); + } + + using iterator = SS2IntervalMap::iterator; + using const_iterator = SS2IntervalMap::const_iterator; + + const_iterator begin() const { return S2IMap.begin(); } + const_iterator end() const { return S2IMap.end(); } + iterator begin() { return S2IMap.begin(); } + iterator end() { return S2IMap.end(); } + + unsigned getNumIntervals() const { return (unsigned)S2IMap.size(); } + + LiveInterval &getOrCreateInterval(int Slot, const TargetRegisterClass *RC); + + LiveInterval &getInterval(int Slot) { + assert(Slot >= 0 && "Spill slot indice must be >= 0"); + SS2IntervalMap::iterator I = S2IMap.find(Slot); + assert(I != S2IMap.end() && "Interval does not exist for stack slot"); + return I->second; + } + + const LiveInterval &getInterval(int Slot) const { + assert(Slot >= 0 && "Spill slot indice must be >= 0"); + SS2IntervalMap::const_iterator I = S2IMap.find(Slot); + assert(I != S2IMap.end() && "Interval does not exist for stack slot"); + return I->second; + } + + bool hasInterval(int Slot) const { return S2IMap.count(Slot); } + + const TargetRegisterClass *getIntervalRegClass(int Slot) const { + assert(Slot >= 0 && "Spill slot indice must be >= 0"); + std::map::const_iterator I = + S2RCMap.find(Slot); + assert(I != S2RCMap.end() && + "Register class info does not exist for stack slot"); + return I->second; + } + + VNInfo::Allocator &getVNInfoAllocator() { return VNInfoAllocator; } + + void getAnalysisUsage(AnalysisUsage &AU) const override; + void releaseMemory() override; + + /// runOnMachineFunction - pass entry point + bool runOnMachineFunction(MachineFunction &) override; + + /// print - Implement the dump method. + void print(raw_ostream &O, const Module * = nullptr) const override; +}; + +} // end namespace llvm + +#endif Modified: projects/clang600-import/contrib/llvm/include/llvm/CodeGen/MachineOperand.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/CodeGen/MachineOperand.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/CodeGen/MachineOperand.h Sun Dec 24 01:04:58 2017 (r327134) @@ -29,6 +29,7 @@ class GlobalValue; class MachineBasicBlock; class MachineInstr; class MachineRegisterInfo; +class MCCFIInstruction; class MDNode; class ModuleSlotTracker; class TargetMachine; @@ -249,6 +250,12 @@ class MachineOperand { (public) /// Print a stack object reference. static void printStackObjectReference(raw_ostream &OS, unsigned FrameIndex, bool IsFixed, StringRef Name); + + /// Print the offset with explicit +/- signs. + static void printOperandOffset(raw_ostream &OS, int64_t Offset); + + /// Print an IRSlotNumber. + static void printIRSlotNumber(raw_ostream &OS, int Slot); /// Print the MachineOperand to \p os. /// Providing a valid \p TRI and \p IntrinsicInfo results in a more Modified: projects/clang600-import/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.def ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.def Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.def Sun Dec 24 01:04:58 2017 (r327134) @@ -165,6 +165,8 @@ HANDLE_LIBCALL(SINCOS_F64, nullptr) HANDLE_LIBCALL(SINCOS_F80, nullptr) HANDLE_LIBCALL(SINCOS_F128, nullptr) HANDLE_LIBCALL(SINCOS_PPCF128, nullptr) +HANDLE_LIBCALL(SINCOS_STRET_F32, nullptr) +HANDLE_LIBCALL(SINCOS_STRET_F64, nullptr) HANDLE_LIBCALL(POW_F32, "powf") HANDLE_LIBCALL(POW_F64, "pow") HANDLE_LIBCALL(POW_F80, "powl") @@ -334,6 +336,7 @@ HANDLE_LIBCALL(O_PPCF128, "__gcc_qunord") HANDLE_LIBCALL(MEMCPY, "memcpy") HANDLE_LIBCALL(MEMMOVE, "memmove") HANDLE_LIBCALL(MEMSET, "memset") +HANDLE_LIBCALL(BZERO, nullptr) // Element-wise unordered-atomic memory of different sizes HANDLE_LIBCALL(MEMCPY_ELEMENT_UNORDERED_ATOMIC_1, "__llvm_memcpy_element_unordered_atomic_1") Copied: projects/clang600-import/contrib/llvm/include/llvm/CodeGen/SDNodeProperties.td (from r327133, vendor/llvm/dist/include/llvm/CodeGen/SDNodeProperties.td) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang600-import/contrib/llvm/include/llvm/CodeGen/SDNodeProperties.td Sun Dec 24 01:04:58 2017 (r327134, copy of r327133, vendor/llvm/dist/include/llvm/CodeGen/SDNodeProperties.td) @@ -0,0 +1,34 @@ +//===- SDNodeProperties.td - Common code for DAG isels ---*- tablegen -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +class SDNodeProperty; + +// Selection DAG Pattern Operations +class SDPatternOperator { + list Properties = []; +} + +//===----------------------------------------------------------------------===// +// Selection DAG Node Properties. +// +// Note: These are hard coded into tblgen. +// +def SDNPCommutative : SDNodeProperty; // X op Y == Y op X +def SDNPAssociative : SDNodeProperty; // (X op Y) op Z == X op (Y op Z) +def SDNPHasChain : SDNodeProperty; // R/W chain operand and result +def SDNPOutGlue : SDNodeProperty; // Write a flag result +def SDNPInGlue : SDNodeProperty; // Read a flag operand +def SDNPOptInGlue : SDNodeProperty; // Optionally read a flag operand +def SDNPMayStore : SDNodeProperty; // May write to memory, sets 'mayStore'. +def SDNPMayLoad : SDNodeProperty; // May read memory, sets 'mayLoad'. +def SDNPSideEffect : SDNodeProperty; // Sets 'HasUnmodelledSideEffects'. +def SDNPMemOperand : SDNodeProperty; // Touches memory, has assoc MemOperand +def SDNPVariadic : SDNodeProperty; // Node has variable arguments. +def SDNPWantRoot : SDNodeProperty; // ComplexPattern gets the root of match +def SDNPWantParent : SDNodeProperty; // ComplexPattern gets the parent Modified: projects/clang600-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h Sun Dec 24 01:04:58 2017 (r327134) @@ -189,8 +189,8 @@ class SDValue { (public) inline bool isUndef() const; inline unsigned getMachineOpcode() const; inline const DebugLoc &getDebugLoc() const; - inline void dump() const; - inline void dumpr() const; + inline void dump(const SelectionDAG *G = nullptr) const; + inline void dumpr(const SelectionDAG *G = nullptr) const; /// Return true if this operand (which must be a chain) reaches the /// specified operand without crossing any side-effecting instructions. @@ -1089,12 +1089,12 @@ inline const DebugLoc &SDValue::getDebugLoc() const { return Node->getDebugLoc(); } -inline void SDValue::dump() const { - return Node->dump(); +inline void SDValue::dump(const SelectionDAG *G) const { + return Node->dump(G); } -inline void SDValue::dumpr() const { - return Node->dumpr(); +inline void SDValue::dumpr(const SelectionDAG *G) const { + return Node->dumpr(G); } // Define inline functions from the SDUse class. Modified: projects/clang600-import/contrib/llvm/include/llvm/CodeGen/TargetLowering.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/CodeGen/TargetLowering.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/CodeGen/TargetLowering.h Sun Dec 24 01:04:58 2017 (r327134) @@ -824,8 +824,8 @@ class TargetLoweringBase { (public) /// also combined within this function. Currently, the minimum size check is /// performed in findJumpTable() in SelectionDAGBuiler and /// getEstimatedNumberOfCaseClusters() in BasicTTIImpl. - bool isSuitableForJumpTable(const SwitchInst *SI, uint64_t NumCases, - uint64_t Range) const { + virtual bool isSuitableForJumpTable(const SwitchInst *SI, uint64_t NumCases, + uint64_t Range) const { const bool OptForSize = SI->getParent()->getParent()->optForSize(); const unsigned MinDensity = getMinimumJumpTableDensity(OptForSize); const unsigned MaxJumpTableSize = @@ -1276,7 +1276,7 @@ class TargetLoweringBase { (public) } /// Return lower limit for number of blocks in a jump table. - unsigned getMinimumJumpTableEntries() const; + virtual unsigned getMinimumJumpTableEntries() const; /// Return lower limit of the density in a jump table. unsigned getMinimumJumpTableDensity(bool OptForSize) const; @@ -2429,7 +2429,7 @@ class TargetLoweringBase { (public) PromoteToType; /// Stores the name each libcall. - const char *LibcallRoutineNames[RTLIB::UNKNOWN_LIBCALL]; + const char *LibcallRoutineNames[RTLIB::UNKNOWN_LIBCALL + 1]; /// The ISD::CondCode that should be used to test the result of each of the /// comparison libcall against zero. @@ -2437,6 +2437,9 @@ class TargetLoweringBase { (public) /// Stores the CallingConv that should be used for each libcall. CallingConv::ID LibcallCallingConvs[RTLIB::UNKNOWN_LIBCALL]; + + /// Set default libcall names and calling conventions. + void InitLibcalls(const Triple &TT); protected: /// Return true if the extension represented by \p I is free. Modified: projects/clang600-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h Sun Dec 24 01:04:58 2017 (r327134) @@ -165,6 +165,29 @@ struct BaseAddress { uint64_t SectionIndex; }; +/// Represents a unit's contribution to the string offsets table. +struct StrOffsetsContributionDescriptor { + uint64_t Base = 0; + uint64_t Size = 0; + /// Format and version. + DWARFFormParams FormParams = {0, 0, dwarf::DwarfFormat::DWARF32}; + + StrOffsetsContributionDescriptor(uint64_t Base, uint64_t Size, + uint8_t Version, dwarf::DwarfFormat Format) + : Base(Base), Size(Size), FormParams({Version, 0, Format}) {} + + uint8_t getVersion() const { return FormParams.Version; } + dwarf::DwarfFormat getFormat() const { return FormParams.Format; } + uint8_t getDwarfOffsetByteSize() const { + return FormParams.getDwarfOffsetByteSize(); + } + /// Determine whether a contribution to the string offsets table is + /// consistent with the relevant section size and that its length is + /// a multiple of the size of one of its entries. + Optional + validateContributionSize(DWARFDataExtractor &DA); +}; + class DWARFUnit { DWARFContext &Context; /// Section containing this DWARFUnit. @@ -176,7 +199,6 @@ class DWARFUnit { const DWARFSection &LineSection; StringRef StringSection; const DWARFSection &StringOffsetSection; - uint64_t StringOffsetSectionBase = 0; const DWARFSection *AddrOffsetSection; uint32_t AddrOffsetSectionBase = 0; bool isLittleEndian; @@ -185,6 +207,9 @@ class DWARFUnit { // Version, address size, and DWARF format. DWARFFormParams FormParams; + /// Start, length, and DWARF format of the unit's contribution to the string + /// offsets table (DWARF v5). + Optional StringOffsetsTableContribution; uint32_t Offset; uint32_t Length; @@ -195,11 +220,41 @@ class DWARFUnit { /// The compile unit debug information entry items. std::vector DieArray; - /// Map from range's start address to end address and corresponding DIE. - /// IntervalMap does not support range removal, as a result, we use the - /// std::map::upper_bound for address range lookup. - std::map> AddrDieMap; + /// The vector of inlined subroutine DIEs that we can map directly to from + /// their subprogram below. + std::vector InlinedSubroutineDIEs; + /// A type representing a subprogram DIE and a map (built using a sorted + /// vector) into that subprogram's inlined subroutine DIEs. + struct SubprogramDIEAddrInfo { + DWARFDie SubprogramDIE; + + uint64_t SubprogramBasePC; + + /// A vector sorted to allow mapping from a relative PC to the inlined + /// subroutine DIE with the most specific address range covering that PC. + /// + /// The PCs are relative to the `SubprogramBasePC`. + /// + /// The vector is sorted in ascending order of the first int which + /// represents the relative PC for an interval in the map. The second int + /// represents the index into the `InlinedSubroutineDIEs` vector of the DIE + /// that interval maps to. An index of '-1` indicates an empty mapping. The + /// interval covered is from the `.first` relative PC to the next entry's + /// `.first` relative PC. + std::vector> InlinedSubroutineDIEAddrMap; + }; + + /// Vector of the subprogram DIEs and their subroutine address maps. + std::vector SubprogramDIEAddrInfos; + + /// A vector sorted to allow mapping from a PC to the subprogram DIE (and + /// associated addr map) index. Subprograms with overlapping PC ranges aren't + /// supported here. Nothing will crash, but the mapping may be inaccurate. + /// This vector may also contain "empty" ranges marked by an address with + /// a DIE index of '-1'. + std::vector> SubprogramDIEAddrMap; + using die_iterator_range = iterator_range::iterator>; @@ -219,6 +274,21 @@ class DWARFUnit { /// Size in bytes of the unit header. virtual uint32_t getHeaderSize() const { return getVersion() <= 4 ? 11 : 12; } + /// Find the unit's contribution to the string offsets table and determine its + /// length and form. The given offset is expected to be derived from the unit + /// DIE's DW_AT_str_offsets_base attribute. + Optional + determineStringOffsetsTableContribution(DWARFDataExtractor &DA, + uint64_t Offset); + + /// Find the unit's contribution to the string offsets table and determine its + /// length and form. The given offset is expected to be 0 in a dwo file or, + /// in a dwp file, the start of the unit's contribution to the string offsets + /// table section (as determined by the index table). + Optional + determineStringOffsetsTableContributionDWO(DWARFDataExtractor &DA, + uint64_t Offset); + public: DWARFUnit(DWARFContext &Context, const DWARFSection &Section, const DWARFDebugAbbrev *DA, const DWARFSection *RS, StringRef SS, @@ -242,9 +312,6 @@ class DWARFUnit { AddrOffsetSectionBase = Base; } - /// Recursively update address to Die map. - void updateAddressDieMap(DWARFDie Die); - void setRangesSection(const DWARFSection *RS, uint32_t Base) { RangeSection = RS; RangeSectionBase = Base; @@ -272,6 +339,10 @@ class DWARFUnit { uint32_t getNextUnitOffset() const { return Offset + Length + 4; } uint32_t getLength() const { return Length; } + const Optional & + getStringOffsetsTableContribution() const { + return StringOffsetsTableContribution; + } const DWARFFormParams &getFormParams() const { return FormParams; } uint16_t getVersion() const { return FormParams.Version; } dwarf::DwarfFormat getFormat() const { return FormParams.Format; } @@ -281,6 +352,16 @@ class DWARFUnit { return FormParams.getDwarfOffsetByteSize(); } + uint8_t getDwarfStringOffsetsByteSize() const { + assert(StringOffsetsTableContribution); + return StringOffsetsTableContribution->getDwarfOffsetByteSize(); + } + + uint64_t getStringOffsetsBase() const { + assert(StringOffsetsTableContribution); + return StringOffsetsTableContribution->Base; + } + const DWARFAbbreviationDeclarationSet *getAbbreviations() const; uint8_t getUnitType() const { return UnitType; } @@ -426,6 +507,9 @@ class DWARFUnit { /// parseDWO - Parses .dwo file for current compile unit. Returns true if /// it was actually constructed. bool parseDWO(); + + void buildSubprogramDIEAddrMap(); + void buildInlinedSubroutineDIEAddrMap(SubprogramDIEAddrInfo &SPInfo); }; } // end namespace llvm Modified: projects/clang600-import/contrib/llvm/include/llvm/FuzzMutate/IRMutator.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/FuzzMutate/IRMutator.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/FuzzMutate/IRMutator.h Sun Dec 24 01:04:58 2017 (r327134) @@ -16,6 +16,7 @@ #ifndef LLVM_FUZZMUTATE_IRMUTATOR_H #define LLVM_FUZZMUTATE_IRMUTATOR_H +#include "llvm/ADT/Optional.h" #include "llvm/FuzzMutate/OpDescriptor.h" #include "llvm/Support/ErrorHandling.h" @@ -74,7 +75,8 @@ class IRMutator { (public) class InjectorIRStrategy : public IRMutationStrategy { std::vector Operations; - fuzzerop::OpDescriptor chooseOperation(Value *Src, RandomIRBuilder &IB); + Optional chooseOperation(Value *Src, + RandomIRBuilder &IB); public: InjectorIRStrategy(std::vector &&Operations) Modified: projects/clang600-import/contrib/llvm/include/llvm/IR/Function.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/IR/Function.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/IR/Function.h Sun Dec 24 01:04:58 2017 (r327134) @@ -248,6 +248,12 @@ class Function : public GlobalObject, public ilist_nod /// pgo data. Optional getEntryCount() const; + /// Return true if the function is annotated with profile data. + /// + /// Presence of entry counts from a profile run implies the function has + /// profile annotations. + bool hasProfileData() const { return getEntryCount().hasValue(); } + /// Returns the set of GUIDs that needs to be imported to the function for /// sample PGO, to enable the same inlines as the profiled optimized binary. DenseSet getImportGUIDs() const; Modified: projects/clang600-import/contrib/llvm/include/llvm/IR/Intrinsics.td ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/IR/Intrinsics.td Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/IR/Intrinsics.td Sun Dec 24 01:04:58 2017 (r327134) @@ -12,6 +12,7 @@ //===----------------------------------------------------------------------===// include "llvm/CodeGen/ValueTypes.td" +include "llvm/CodeGen/SDNodeProperties.td" //===----------------------------------------------------------------------===// // Properties we keep track of for intrinsics. @@ -264,16 +265,17 @@ def llvm_vararg_ty : LLVMType; // this m // intrinsic. // * Properties can be set to describe the behavior of the intrinsic. // -class SDPatternOperator; class Intrinsic ret_types, list param_types = [], - list properties = [], - string name = ""> : SDPatternOperator { + list intr_properties = [], + string name = "", + list sd_properties = []> : SDPatternOperator { string LLVMName = name; string TargetPrefix = ""; // Set to a prefix for target-specific intrinsics. list RetTypes = ret_types; list ParamTypes = param_types; - list IntrProperties = properties; + list IntrProperties = intr_properties; + let Properties = sd_properties; bit isTarget = 0; } Modified: projects/clang600-import/contrib/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h Sun Dec 24 01:04:58 2017 (r327134) @@ -148,10 +148,14 @@ class ThinLTOCodeGenerator { (public) /// incremental build. void setCacheDir(std::string Path) { CacheOptions.Path = std::move(Path); } - /// Cache policy: interval (seconds) between two prune of the cache. Set to a - /// negative value (default) to disable pruning. A value of 0 will be ignored. + /// Cache policy: interval (seconds) between two prunes of the cache. Set to a + /// negative value to disable pruning. A value of 0 will be ignored. void setCachePruningInterval(int Interval) { - if (Interval) + if (Interval == 0) + return; + if(Interval < 0) + CacheOptions.Policy.Interval.reset(); + else CacheOptions.Policy.Interval = std::chrono::seconds(Interval); } Modified: projects/clang600-import/contrib/llvm/include/llvm/MC/MCAsmInfo.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/MC/MCAsmInfo.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/MC/MCAsmInfo.h Sun Dec 24 01:04:58 2017 (r327134) @@ -165,7 +165,8 @@ class MCAsmInfo { (protected) const char *ZeroDirective; /// This directive allows emission of an ascii string with the standard C - /// escape characters embedded into it. Defaults to "\t.ascii\t" + /// escape characters embedded into it. If a target doesn't support this, it + /// can be set to null. Defaults to "\t.ascii\t" const char *AsciiDirective; /// If not null, this allows for special handling of zero terminated strings Modified: projects/clang600-import/contrib/llvm/include/llvm/MC/MCStreamer.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/MC/MCStreamer.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/MC/MCStreamer.h Sun Dec 24 01:04:58 2017 (r327134) @@ -95,6 +95,17 @@ class MCTargetStreamer { (public) virtual void prettyPrintAsm(MCInstPrinter &InstPrinter, raw_ostream &OS, const MCInst &Inst, const MCSubtargetInfo &STI); + virtual void emitDwarfFileDirective(StringRef Directive); + + /// Update streamer for a new active section. + /// + /// This is called by PopSection and SwitchSection, if the current + /// section changes. + virtual void changeSection(const MCSection *CurSection, MCSection *Section, + const MCExpr *SubSection, raw_ostream &OS); + + virtual void emitValue(const MCExpr *Value); + virtual void finish(); }; Modified: projects/clang600-import/contrib/llvm/include/llvm/Object/Wasm.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Object/Wasm.h Sun Dec 24 01:01:08 2017 (r327133) +++ projects/clang600-import/contrib/llvm/include/llvm/Object/Wasm.h Sun Dec 24 01:04:58 2017 (r327134) @@ -43,9 +43,9 @@ class WasmSymbol { (public) }; WasmSymbol(StringRef Name, SymbolType Type, uint32_t Section, - uint32_t ElementIndex, uint32_t ImportIndex = 0) + uint32_t ElementIndex, uint32_t FunctionType = 0) : Name(Name), Type(Type), Section(Section), ElementIndex(ElementIndex), - ImportIndex(ImportIndex) {} + FunctionType(FunctionType) {} StringRef Name; SymbolType Type; @@ -55,9 +55,19 @@ class WasmSymbol { (public) // Index into either the function or global index space. uint32_t ElementIndex; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Dec 24 01:08:38 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 631B4E88F63 for ; Sun, 24 Dec 2017 01:08:38 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DF9677FC89; Sun, 24 Dec 2017 01:08:37 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBO18a3h078508; Sun, 24 Dec 2017 01:08:36 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBO18YKf078482; Sun, 24 Dec 2017 01:08:34 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712240108.vBO18YKf078482@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 01:08:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327135 - in projects/clang600-import/contrib/llvm/tools/clang: include/clang/AST include/clang/Basic include/clang/Frontend include/clang/Index include/clang/Parse include/clang/Sema i... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import/contrib/llvm/tools/clang: include/clang/AST include/clang/Basic include/clang/Frontend include/clang/Index include/clang/Parse include/clang/Sema include/clang/Serializatio... X-SVN-Commit-Revision: 327135 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 01:08:38 -0000 Author: dim Date: Sun Dec 24 01:08:34 2017 New Revision: 327135 URL: https://svnweb.freebsd.org/changeset/base/327135 Log: Merge clang trunk r321414 to contrib/llvm. Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/Decl.h projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/ODRHash.h projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/Type.h projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/Attr.td projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td projects/clang600-import/contrib/llvm/tools/clang/include/clang/Frontend/PrecompiledPreamble.h projects/clang600-import/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h projects/clang600-import/contrib/llvm/tools/clang/include/clang/Parse/Parser.h projects/clang600-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h projects/clang600-import/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h projects/clang600-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/AST/Decl.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/AST/Expr.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypeCache.h projects/clang600-import/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Frontend/PrecompiledPreamble.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_intrinsics.h projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/cpuid.h projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h projects/clang600-import/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp projects/clang600-import/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp projects/clang600-import/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp Directory Properties: projects/clang600-import/contrib/llvm/tools/clang/ (props changed) Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/Decl.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/Decl.h Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/Decl.h Sun Dec 24 01:08:34 2017 (r327135) @@ -1759,6 +1759,11 @@ class FunctionDecl : public DeclaratorDecl, public Dec unsigned IsCopyDeductionCandidate : 1; private: + + /// Store the ODRHash after first calculation. + unsigned HasODRHash : 1; + unsigned ODRHash; + /// \brief End part of this FunctionDecl's source range. /// /// We could compute the full range in getSourceRange(). However, when we're @@ -1841,8 +1846,9 @@ class FunctionDecl : public DeclaratorDecl, public Dec IsExplicitlyDefaulted(false), HasImplicitReturnZero(false), IsLateTemplateParsed(false), IsConstexpr(isConstexprSpecified), InstantiationIsPending(false), UsesSEHTry(false), HasSkippedBody(false), - WillHaveBody(false), IsCopyDeductionCandidate(false), - EndRangeLoc(NameInfo.getEndLoc()), DNLoc(NameInfo.getInfo()) {} + WillHaveBody(false), IsCopyDeductionCandidate(false), HasODRHash(false), + ODRHash(0), EndRangeLoc(NameInfo.getEndLoc()), + DNLoc(NameInfo.getInfo()) {} using redeclarable_base = Redeclarable; @@ -2438,6 +2444,10 @@ class FunctionDecl : public DeclaratorDecl, public Dec /// the corresponding Builtin ID. If the function is not a memory function, /// returns 0. unsigned getMemoryFunctionKind() const; + + /// \brief Returns ODRHash of the function. This value is calculated and + /// stored on first call, then the stored value returned on the other calls. + unsigned getODRHash(); // Implement isa/cast/dyncast/etc. static bool classof(const Decl *D) { return classofKind(D->getKind()); } Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/ODRHash.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/ODRHash.h Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/ODRHash.h Sun Dec 24 01:08:34 2017 (r327135) @@ -53,6 +53,10 @@ class ODRHash { (public) // more information than the AddDecl class. void AddCXXRecordDecl(const CXXRecordDecl *Record); + // Use this for ODR checking functions between modules. This method compares + // more information than the AddDecl class. + void AddFunctionDecl(const FunctionDecl *Function); + // Process SubDecls of the main Decl. This method calls the DeclVisitor // while AddDecl does not. void AddSubDecl(const Decl *D); Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/Type.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/Type.h Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/Type.h Sun Dec 24 01:08:34 2017 (r327135) @@ -976,16 +976,14 @@ class QualType { (public) return LHS.Value != RHS.Value; } - std::string getAsString() const { - return getAsString(split()); + static std::string getAsString(SplitQualType split, + const PrintingPolicy &Policy) { + return getAsString(split.Ty, split.Quals, Policy); } + static std::string getAsString(const Type *ty, Qualifiers qs, + const PrintingPolicy &Policy); - static std::string getAsString(SplitQualType split) { - return getAsString(split.Ty, split.Quals); - } - - static std::string getAsString(const Type *ty, Qualifiers qs); - + std::string getAsString() const; std::string getAsString(const PrintingPolicy &Policy) const; void print(raw_ostream &OS, const PrintingPolicy &Policy, Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/Attr.td ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/Attr.td Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/Attr.td Sun Dec 24 01:08:34 2017 (r327135) @@ -267,14 +267,25 @@ def RenderScript : LangOpt<"RenderScript">; def ObjC : LangOpt<"ObjC1">; def BlocksSupported : LangOpt<"Blocks">; -// Defines targets for target-specific attributes. The list of strings should -// specify architectures for which the target applies, based off the ArchType -// enumeration in Triple.h. -class TargetArch arches> { - list Arches = arches; +// Defines targets for target-specific attributes. Empty lists are unchecked. +class TargetSpec { + // Specifies Architectures for which the target applies, based off the + // ArchType enumeration in Triple.h. + list Arches = []; + // Specifies Operating Systems for which the target applies, based off the + // OSType enumeration in Triple.h list OSes; + // Specifies the C++ ABIs for which the target applies, based off the + // TargetCXXABI::Kind in TargetCXXABI.h. list CXXABIs; + // Specifies Object Formats for which the target applies, based off the + // ObjectFormatType enumeration in Triple.h + list ObjectFormats; } + +class TargetArch arches> : TargetSpec { + let Arches = arches; +} def TargetARM : TargetArch<["arm", "thumb", "armeb", "thumbeb"]>; def TargetAVR : TargetArch<["avr"]>; def TargetMips32 : TargetArch<["mips", "mipsel"]>; @@ -288,6 +299,9 @@ def TargetWindows : TargetArch<["x86", "x86_64", "arm" def TargetMicrosoftCXXABI : TargetArch<["x86", "x86_64", "arm", "thumb", "aarch64"]> { let CXXABIs = ["Microsoft"]; } +def TargetELF : TargetSpec { + let ObjectFormats = ["ELF"]; +} // Attribute subject match rules that are used for #pragma clang attribute. // @@ -465,8 +479,8 @@ class InheritableAttr : Attr; /// A target-specific attribute. This class is meant to be used as a mixin /// with InheritableAttr or Attr depending on the attribute's needs. -class TargetSpecificAttr { - TargetArch Target = target; +class TargetSpecificAttr { + TargetSpec Target = target; // Attributes are generally required to have unique spellings for their names // so that the parser can determine what kind of attribute it has parsed. // However, target-specific attributes are special in that the attribute only @@ -1121,7 +1135,7 @@ def IBOutletCollection : InheritableAttr { let Documentation = [Undocumented]; } -def IFunc : Attr { +def IFunc : Attr, TargetSpecificAttr { let Spellings = [GCC<"ifunc">]; let Args = [StringArgument<"Resolver">]; let Subjects = SubjectList<[Function]>; Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td Sun Dec 24 01:08:34 2017 (r327135) @@ -198,6 +198,11 @@ def err_missing_module : Error< def err_no_submodule : Error<"no submodule named %0 in module '%1'">; def err_no_submodule_suggest : Error< "no submodule named %0 in module '%1'; did you mean '%2'?">; +def warn_no_priv_submodule_use_toplevel : Warning< + "no submodule named %0 in module '%1'; using top level '%2'">, + InGroup; +def note_private_top_level_defined : Note< + "module defined here">; def warn_missing_submodule : Warning<"missing submodule '%0'">, InGroup; def note_module_import_here : Note<"module imported here">; Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h Sun Dec 24 01:08:34 2017 (r327135) @@ -297,7 +297,7 @@ class DiagnosticIDs : public RefCountedBase &Diags); + std::vector &Diags); /// \brief Get the diagnostic option with the closest edit distance to the /// given group name. Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td Sun Dec 24 01:08:34 2017 (r327135) @@ -691,11 +691,15 @@ def err_mmap_expected_feature : Error<"expected a feat def err_mmap_expected_attribute : Error<"expected an attribute name">; def warn_mmap_unknown_attribute : Warning<"unknown attribute '%0'">, InGroup; -def warn_mmap_mismatched_top_level_private : Warning< - "top-level module '%0' in private module map, expected a submodule of '%1'">, +def warn_mmap_mismatched_private_submodule : Warning< + "private submodule '%0' in private module map, expected top-level module">, InGroup; -def note_mmap_rename_top_level_private_as_submodule : Note< - "make '%0' a submodule of '%1' to ensure it can be found by name">; +def warn_mmap_mismatched_private_module_name : Warning< + "expected canonical name for private module '%0'">, + InGroup; +def note_mmap_rename_top_level_private_module : Note< + "rename '%0' to ensure it can be found by name">; + def err_mmap_duplicate_header_attribute : Error< "header attribute '%0' specified multiple times">; def err_mmap_invalid_header_attribute_value : Error< Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td Sun Dec 24 01:08:34 2017 (r327135) @@ -3911,6 +3911,9 @@ def err_template_param_different_kind : Error< "%select{|template parameter }0redeclaration">; def note_template_param_different_kind : Note< "template parameter has a different kind in template argument">; + +def err_invalid_decl_specifier_in_nontype_parm : Error< + "invalid declaration specifier in template non-type parameter">; def err_template_nontype_parm_different_type : Error< "template non-type parameter has a different type %0 in template " Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td Sun Dec 24 01:08:34 2017 (r327135) @@ -270,6 +270,29 @@ def note_module_odr_violation_mismatch_decl_diff : Not "friend function %2|" "}1">; +def err_module_odr_violation_function : Error< + "%q0 has different definitions in different modules; " + "%select{definition in module '%2'|defined here}1 " + "first difference is " + "%select{" + "return type is %4|" + "%ordinal4 parameter with name %5|" + "%ordinal4 parameter with type %5%select{| decayed from %7}6|" + "%ordinal4 parameter with%select{out|}5 a default argument|" + "%ordinal4 parameter with a default argument|" + "function body" + "}3">; + +def note_module_odr_violation_function : Note<"but in '%0' found " + "%select{" + "different return type %2|" + "%ordinal2 parameter with name %3|" + "%ordinal2 parameter with type %3%select{| decayed from %5}4|" + "%ordinal2 parameter with%select{out|}3 a default argument|" + "%ordinal2 parameter with a different default argument|" + "a different body" + "}1">; + def err_module_odr_violation_mismatch_decl_unknown : Error< "%q0 %select{with definition in module '%2'|defined here}1 has different " "definitions in different modules; first difference is this " Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td Sun Dec 24 01:08:34 2017 (r327135) @@ -227,6 +227,7 @@ def OP_UNAVAILABLE : Operation { // u: unsigned integer (int/float args) // f: float (int args) // F: double (int args) +// H: half (int args) // d: default // g: default, ignore 'Q' size modifier. // j: default, force 'Q' size modifier. @@ -345,6 +346,7 @@ def OP_MLSLHi : Op<(call "vmlsl", $p0, (call "vget_h (call "vget_high", $p2))>; def OP_MLSLHi_N : Op<(call "vmlsl_n", $p0, (call "vget_high", $p1), $p2)>; def OP_MUL_N : Op<(op "*", $p0, (dup $p1))>; +def OP_MULX_N : Op<(call "vmulx", $p0, (dup $p1))>; def OP_MLA_N : Op<(op "+", $p0, (op "*", $p1, (dup $p2)))>; def OP_MLS_N : Op<(op "-", $p0, (op "*", $p1, (dup $p2)))>; def OP_FMLA_N : Op<(call "vfma", $p0, $p1, (dup $p2))>; @@ -1660,4 +1662,187 @@ def SCALAR_SQRDMLSH_LANEQ : SOpInst<"vqrdmlsh_laneq", def SCALAR_VDUP_LANE : IInst<"vdup_lane", "sdi", "ScSsSiSlSfSdSUcSUsSUiSUlSPcSPs">; def SCALAR_VDUP_LANEQ : IInst<"vdup_laneq", "sji", "ScSsSiSlSfSdSUcSUsSUiSUlSPcSPs">; +} + +// ARMv8.2-A FP16 intrinsics. +let ArchGuard = "defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && defined(__aarch64__)" in { + + // ARMv8.2-A FP16 one-operand vector intrinsics. + + // Comparison + def CMEQH : SInst<"vceqz", "ud", "hQh">; + def CMGEH : SInst<"vcgez", "ud", "hQh">; + def CMGTH : SInst<"vcgtz", "ud", "hQh">; + def CMLEH : SInst<"vclez", "ud", "hQh">; + def CMLTH : SInst<"vcltz", "ud", "hQh">; + + // Vector conversion + def VCVT_F16 : SInst<"vcvt_f16", "Hd", "sUsQsQUs">; + def VCVT_S16 : SInst<"vcvt_s16", "xd", "hQh">; + def VCVT_U16 : SInst<"vcvt_u16", "ud", "hQh">; + def VCVTA_S16 : SInst<"vcvta_s16", "xd", "hQh">; + def VCVTA_U16 : SInst<"vcvta_u16", "ud", "hQh">; + def VCVTM_S16 : SInst<"vcvtm_s16", "xd", "hQh">; + def VCVTM_U16 : SInst<"vcvtm_u16", "ud", "hQh">; + def VCVTN_S16 : SInst<"vcvtn_s16", "xd", "hQh">; + def VCVTN_U16 : SInst<"vcvtn_u16", "ud", "hQh">; + def VCVTP_S16 : SInst<"vcvtp_s16", "xd", "hQh">; + def VCVTP_U16 : SInst<"vcvtp_u16", "ud", "hQh">; + + // Vector rounding + def FRINTZH : SInst<"vrnd", "dd", "hQh">; + def FRINTNH : SInst<"vrndn", "dd", "hQh">; + def FRINTAH : SInst<"vrnda", "dd", "hQh">; + def FRINTPH : SInst<"vrndp", "dd", "hQh">; + def FRINTMH : SInst<"vrndm", "dd", "hQh">; + def FRINTXH : SInst<"vrndx", "dd", "hQh">; + def FRINTIH : SInst<"vrndi", "dd", "hQh">; + + // Misc. + def VABSH : SInst<"vabs", "dd", "hQh">; + def VNEGH : SOpInst<"vneg", "dd", "hQh", OP_NEG>; + def VRECPEH : SInst<"vrecpe", "dd", "hQh">; + def FRSQRTEH : SInst<"vrsqrte", "dd", "hQh">; + def FSQRTH : SInst<"vsqrt", "dd", "hQh">; + + // ARMv8.2-A FP16 two-operands vector intrinsics. + + // Misc. + def VADDH : SOpInst<"vadd", "ddd", "hQh", OP_ADD>; + def VABDH : SInst<"vabd", "ddd", "hQh">; + def VSUBH : SOpInst<"vsub", "ddd", "hQh", OP_SUB>; + + // Comparison + let InstName = "vacge" in { + def VCAGEH : SInst<"vcage", "udd", "hQh">; + def VCALEH : SInst<"vcale", "udd", "hQh">; + } + let InstName = "vacgt" in { + def VCAGTH : SInst<"vcagt", "udd", "hQh">; + def VCALTH : SInst<"vcalt", "udd", "hQh">; + } + def VCEQH : SOpInst<"vceq", "udd", "hQh", OP_EQ>; + def VCGEH : SOpInst<"vcge", "udd", "hQh", OP_GE>; + def VCGTH : SOpInst<"vcgt", "udd", "hQh", OP_GT>; + let InstName = "vcge" in + def VCLEH : SOpInst<"vcle", "udd", "hQh", OP_LE>; + let InstName = "vcgt" in + def VCLTH : SOpInst<"vclt", "udd", "hQh", OP_LT>; + + // Vector conversion + let isVCVT_N = 1 in { + def VCVT_N_F16 : SInst<"vcvt_n_f16", "Hdi", "sUsQsQUs">; + def VCVT_N_S16 : SInst<"vcvt_n_s16", "xdi", "hQh">; + def VCVT_N_U16 : SInst<"vcvt_n_u16", "udi", "hQh">; + } + + // Max/Min + def VMAXH : SInst<"vmax", "ddd", "hQh">; + def VMINH : SInst<"vmin", "ddd", "hQh">; + def FMAXNMH : SInst<"vmaxnm", "ddd", "hQh">; + def FMINNMH : SInst<"vminnm", "ddd", "hQh">; + + // Multiplication/Division + def VMULH : SOpInst<"vmul", "ddd", "hQh", OP_MUL>; + def MULXH : SInst<"vmulx", "ddd", "hQh">; + def FDIVH : IOpInst<"vdiv", "ddd", "hQh", OP_DIV>; + + // Pairwise addition + def VPADDH : SInst<"vpadd", "ddd", "hQh">; + + // Pairwise Max/Min + def VPMAXH : SInst<"vpmax", "ddd", "hQh">; + def VPMINH : SInst<"vpmin", "ddd", "hQh">; + // Pairwise MaxNum/MinNum + def FMAXNMPH : SInst<"vpmaxnm", "ddd", "hQh">; + def FMINNMPH : SInst<"vpminnm", "ddd", "hQh">; + + // Reciprocal/Sqrt + def VRECPSH : SInst<"vrecps", "ddd", "hQh">; + def VRSQRTSH : SInst<"vrsqrts", "ddd", "hQh">; + + // ARMv8.2-A FP16 three-operands vector intrinsics. + + // Vector fused multiply-add operations + def VFMAH : SInst<"vfma", "dddd", "hQh">; + def VFMSH : SOpInst<"vfms", "dddd", "hQh", OP_FMLS>; + + // ARMv8.2-A FP16 lane vector intrinsics. + + // FMA lane + def VFMA_LANEH : IInst<"vfma_lane", "dddgi", "hQh">; + def VFMA_LANEQH : IInst<"vfma_laneq", "dddji", "hQh">; + + // FMA lane with scalar argument + def FMLA_NH : SOpInst<"vfma_n", "ddds", "hQh", OP_FMLA_N>; + // Scalar floating point fused multiply-add (scalar, by element) + def SCALAR_FMLA_LANEH : IInst<"vfma_lane", "sssdi", "Sh">; + def SCALAR_FMLA_LANEQH : IInst<"vfma_laneq", "sssji", "Sh">; + + // FMS lane + def VFMS_LANEH : IOpInst<"vfms_lane", "dddgi", "hQh", OP_FMS_LN>; + def VFMS_LANEQH : IOpInst<"vfms_laneq", "dddji", "hQh", OP_FMS_LNQ>; + // FMS lane with scalar argument + def FMLS_NH : SOpInst<"vfms_n", "ddds", "hQh", OP_FMLS_N>; + // Scalar floating foint fused multiply-subtract (scalar, by element) + def SCALAR_FMLS_LANEH : IOpInst<"vfms_lane", "sssdi", "Sh", OP_FMS_LN>; + def SCALAR_FMLS_LANEQH : IOpInst<"vfms_laneq", "sssji", "Sh", OP_FMS_LNQ>; + + // Mul lane + def VMUL_LANEH : IOpInst<"vmul_lane", "ddgi", "hQh", OP_MUL_LN>; + def VMUL_LANEQH : IOpInst<"vmul_laneq", "ddji", "hQh", OP_MUL_LN>; + def VMUL_NH : IOpInst<"vmul_n", "dds", "hQh", OP_MUL_N>; + // Scalar floating point multiply (scalar, by element) + def SCALAR_FMUL_LANEH : IOpInst<"vmul_lane", "ssdi", "Sh", OP_SCALAR_MUL_LN>; + def SCALAR_FMUL_LANEQH : IOpInst<"vmul_laneq", "ssji", "Sh", OP_SCALAR_MUL_LN>; + + // Mulx lane + def VMULX_LANEH : IOpInst<"vmulx_lane", "ddgi", "hQh", OP_MULX_LN>; + def VMULX_LANEQH : IOpInst<"vmulx_laneq", "ddji", "hQh", OP_MULX_LN>; + def VMULX_NH : IOpInst<"vmulx_n", "dds", "hQh", OP_MULX_N>; + // TODO: Scalar floating point multiply extended (scalar, by element) + // Below ones are commented out because they need vmulx_f16(float16_t, float16_t) + // which will be implemented later with fp16 scalar intrinsic (arm_fp16.h) + //def SCALAR_FMULX_LANEH : IOpInst<"vmulx_lane", "ssdi", "Sh", OP_SCALAR_MUL_LN>; + //def SCALAR_FMULX_LANEQH : IOpInst<"vmulx_laneq", "ssji", "Sh", OP_SCALAR_MUL_LN>; + + // ARMv8.2-A FP16 reduction vector intrinsics. + def VMAXVH : SInst<"vmaxv", "sd", "hQh">; + def VMINVH : SInst<"vminv", "sd", "hQh">; + def FMAXNMVH : SInst<"vmaxnmv", "sd", "hQh">; + def FMINNMVH : SInst<"vminnmv", "sd", "hQh">; + + // Data processing intrinsics - section 5 + + // Logical operations + let isHiddenLInst = 1 in + def VBSLH : SInst<"vbsl", "dudd", "hQh">; + + // Transposition operations + def VZIPH : WInst<"vzip", "2dd", "hQh">; + def VUZPH : WInst<"vuzp", "2dd", "hQh">; + def VTRNH : WInst<"vtrn", "2dd", "hQh">; + + // Set all lanes to same value. + /* Already implemented prior to ARMv8.2-A. + def VMOV_NH : WOpInst<"vmov_n", "ds", "hQh", OP_DUP>; + def VDUP_NH : WOpInst<"vdup_n", "ds", "hQh", OP_DUP>; + def VDUP_LANE1H : WOpInst<"vdup_lane", "dgi", "hQh", OP_DUP_LN>;*/ + + // Vector Extract + def VEXTH : WInst<"vext", "dddi", "hQh">; + + // Reverse vector elements + def VREV64H : WOpInst<"vrev64", "dd", "hQh", OP_REV64>; + + // Permutation + def VTRN1H : SOpInst<"vtrn1", "ddd", "hQh", OP_TRN1>; + def VZIP1H : SOpInst<"vzip1", "ddd", "hQh", OP_ZIP1>; + def VUZP1H : SOpInst<"vuzp1", "ddd", "hQh", OP_UZP1>; + def VTRN2H : SOpInst<"vtrn2", "ddd", "hQh", OP_TRN2>; + def VZIP2H : SOpInst<"vzip2", "ddd", "hQh", OP_ZIP2>; + def VUZP2H : SOpInst<"vuzp2", "ddd", "hQh", OP_UZP2>; + + def SCALAR_VDUP_LANEH : IInst<"vdup_lane", "sdi", "Sh">; + def SCALAR_VDUP_LANEQH : IInst<"vdup_laneq", "sji", "Sh">; } Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/Frontend/PrecompiledPreamble.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/Frontend/PrecompiledPreamble.h Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/Frontend/PrecompiledPreamble.h Sun Dec 24 01:08:34 2017 (r327135) @@ -19,6 +19,7 @@ #include "llvm/ADT/IntrusiveRefCntPtr.h" #include "llvm/Support/AlignOf.h" #include "llvm/Support/MD5.h" +#include #include #include #include @@ -89,6 +90,11 @@ class PrecompiledPreamble { (public) /// PreambleBounds used to build the preamble. PreambleBounds getBounds() const; + /// Returns the size, in bytes, that preamble takes on disk or in memory. + /// For on-disk preambles returns 0 if filesystem operations fail. Intended to + /// be used for logging and debugging purposes only. + std::size_t getSize() const; + /// Check whether PrecompiledPreamble can be reused for the new contents(\p /// MainFileBuffer) of the main file. bool CanReuse(const CompilerInvocation &Invocation, @@ -244,6 +250,11 @@ class PreambleCallbacks { public: virtual ~PreambleCallbacks() = default; + /// Called before FrontendAction::BeginSourceFile. + /// Can be used to store references to various CompilerInstance fields + /// (e.g. SourceManager) that may be interesting to the consumers of other + /// callbacks. + virtual void BeforeExecute(CompilerInstance &CI); /// Called after FrontendAction::Execute(), but before /// FrontendAction::EndSourceFile(). Can be used to transfer ownership of /// various CompilerInstance fields before they are destroyed. Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h Sun Dec 24 01:08:34 2017 (r327135) @@ -56,7 +56,7 @@ enum class SymbolKind : uint8_t { Using, }; -enum class SymbolLanguage { +enum class SymbolLanguage : uint8_t { C, ObjC, CXX, @@ -64,7 +64,7 @@ enum class SymbolLanguage { }; /// Language specific sub-kinds. -enum class SymbolSubKind { +enum class SymbolSubKind : uint8_t { None, CXXCopyConstructor, CXXMoveConstructor, @@ -74,8 +74,9 @@ enum class SymbolSubKind { UsingValue, }; +typedef uint8_t SymbolPropertySet; /// Set of properties that provide additional info about a symbol. -enum class SymbolProperty : uint8_t { +enum class SymbolProperty : SymbolPropertySet { Generic = 1 << 0, TemplatePartialSpecialization = 1 << 1, TemplateSpecialization = 1 << 2, @@ -86,7 +87,6 @@ enum class SymbolProperty : uint8_t { Local = 1 << 7, }; static const unsigned SymbolPropertyBitNum = 8; -typedef unsigned SymbolPropertySet; /// Set of roles that are attributed to symbol occurrences. enum class SymbolRole : uint32_t { @@ -127,8 +127,8 @@ struct SymbolRelation { struct SymbolInfo { SymbolKind Kind; SymbolSubKind SubKind; - SymbolPropertySet Properties; SymbolLanguage Lang; + SymbolPropertySet Properties; }; SymbolInfo getSymbolInfo(const Decl *D); Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/Parse/Parser.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/Parse/Parser.h Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/Parse/Parser.h Sun Dec 24 01:08:34 2017 (r327135) @@ -2748,10 +2748,10 @@ class Parser : public CodeCompletionHandler { (private bool ParseTemplateParameterList(unsigned Depth, SmallVectorImpl &TemplateParams); bool isStartOfTemplateTypeParameter(); - Decl *ParseTemplateParameter(unsigned Depth, unsigned Position); - Decl *ParseTypeParameter(unsigned Depth, unsigned Position); - Decl *ParseTemplateTemplateParameter(unsigned Depth, unsigned Position); - Decl *ParseNonTypeTemplateParameter(unsigned Depth, unsigned Position); + NamedDecl *ParseTemplateParameter(unsigned Depth, unsigned Position); + NamedDecl *ParseTypeParameter(unsigned Depth, unsigned Position); + NamedDecl *ParseTemplateTemplateParameter(unsigned Depth, unsigned Position); + NamedDecl *ParseNonTypeTemplateParameter(unsigned Depth, unsigned Position); void DiagnoseMisplacedEllipsis(SourceLocation EllipsisLoc, SourceLocation CorrectLoc, bool AlreadyHasEllipsis, Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/Sema/Sema.h Sun Dec 24 01:08:34 2017 (r327135) @@ -6064,7 +6064,7 @@ class Sema { (public) void DiagnoseTemplateParameterShadow(SourceLocation Loc, Decl *PrevDecl); TemplateDecl *AdjustDeclIfTemplate(Decl *&Decl); - Decl *ActOnTypeParameter(Scope *S, bool Typename, + NamedDecl *ActOnTypeParameter(Scope *S, bool Typename, SourceLocation EllipsisLoc, SourceLocation KeyLoc, IdentifierInfo *ParamName, @@ -6077,12 +6077,12 @@ class Sema { (public) SourceLocation Loc); QualType CheckNonTypeTemplateParameterType(QualType T, SourceLocation Loc); - Decl *ActOnNonTypeTemplateParameter(Scope *S, Declarator &D, + NamedDecl *ActOnNonTypeTemplateParameter(Scope *S, Declarator &D, unsigned Depth, unsigned Position, SourceLocation EqualLoc, Expr *DefaultArg); - Decl *ActOnTemplateTemplateParameter(Scope *S, + NamedDecl *ActOnTemplateTemplateParameter(Scope *S, SourceLocation TmpLoc, TemplateParameterList *Params, SourceLocation EllipsisLoc, Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h Sun Dec 24 01:08:34 2017 (r327135) @@ -1092,6 +1092,10 @@ class ASTReader (private) llvm::SmallDenseMap, 2> PendingOdrMergeFailures; + /// \brief Function definitions in which we found an ODR violation. + llvm::SmallDenseMap, 2> + PendingFunctionOdrMergeFailures; + /// \brief DeclContexts in which we have diagnosed an ODR violation. llvm::SmallPtrSet DiagnosedOdrMergeFailures; Modified: projects/clang600-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h Sun Dec 24 01:08:34 2017 (r327135) @@ -334,7 +334,7 @@ class PathDiagnosticLocationPair { (public) // Path "pieces" for path-sensitive diagnostics. //===----------------------------------------------------------------------===// -class PathDiagnosticPiece { +class PathDiagnosticPiece: public llvm::FoldingSetNode { public: enum Kind { ControlFlow, Event, Macro, Call, Note }; enum DisplayHint { Above, Below }; Modified: projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp Sun Dec 24 01:08:34 2017 (r327135) @@ -99,6 +99,9 @@ namespace { const CommandTraits *Traits; const SourceManager *SM; + /// The policy to use for printing; can be defaulted. + PrintingPolicy PrintPolicy; + /// Pending[i] is an action to dump an entity at level i. llvm::SmallVector, 32> Pending; @@ -207,12 +210,17 @@ namespace { public: ASTDumper(raw_ostream &OS, const CommandTraits *Traits, const SourceManager *SM) - : OS(OS), Traits(Traits), SM(SM), - ShowColors(SM && SM->getDiagnostics().getShowColors()) { } + : ASTDumper(OS, Traits, SM, + SM && SM->getDiagnostics().getShowColors()) {} ASTDumper(raw_ostream &OS, const CommandTraits *Traits, const SourceManager *SM, bool ShowColors) - : OS(OS), Traits(Traits), SM(SM), ShowColors(ShowColors) {} + : ASTDumper(OS, Traits, SM, ShowColors, LangOptions()) {} + ASTDumper(raw_ostream &OS, const CommandTraits *Traits, + const SourceManager *SM, bool ShowColors, + const PrintingPolicy &PrintPolicy) + : OS(OS), Traits(Traits), SM(SM), PrintPolicy(PrintPolicy), + ShowColors(ShowColors) {} void setDeserialize(bool D) { Deserialize = D; } @@ -646,13 +654,13 @@ void ASTDumper::dumpBareType(QualType T, bool Desugar) ColorScope Color(*this, TypeColor); SplitQualType T_split = T.split(); - OS << "'" << QualType::getAsString(T_split) << "'"; + OS << "'" << QualType::getAsString(T_split, PrintPolicy) << "'"; if (Desugar && !T.isNull()) { // If the type is sugared, also dump a (shallow) desugared type. SplitQualType D_split = T.getSplitDesugaredType(); if (T_split != D_split) - OS << ":'" << QualType::getAsString(D_split) << "'"; + OS << ":'" << QualType::getAsString(D_split, PrintPolicy) << "'"; } } @@ -1187,12 +1195,12 @@ void ASTDumper::VisitFunctionDecl(const FunctionDecl * if (const CXXMethodDecl *MD = dyn_cast(D)) { if (MD->size_overridden_methods() != 0) { - auto dumpOverride = - [=](const CXXMethodDecl *D) { - SplitQualType T_split = D->getType().split(); - OS << D << " " << D->getParent()->getName() << "::" - << D->getNameAsString() << " '" << QualType::getAsString(T_split) << "'"; - }; + auto dumpOverride = [=](const CXXMethodDecl *D) { + SplitQualType T_split = D->getType().split(); + OS << D << " " << D->getParent()->getName() + << "::" << D->getNameAsString() << " '" + << QualType::getAsString(T_split, PrintPolicy) << "'"; + }; dumpChild([=] { auto Overrides = MD->overridden_methods(); @@ -1537,7 +1545,7 @@ void ASTDumper::VisitTemplateDeclSpecialization(const case TSK_ExplicitInstantiationDefinition: if (!DumpExplicitInst) break; - // Fall through. + LLVM_FALLTHROUGH; case TSK_Undeclared: case TSK_ImplicitInstantiation: if (DumpRefOnly) @@ -2682,15 +2690,19 @@ LLVM_DUMP_METHOD void Type::dump(llvm::raw_ostream &OS LLVM_DUMP_METHOD void Decl::dump() const { dump(llvm::errs()); } LLVM_DUMP_METHOD void Decl::dump(raw_ostream &OS, bool Deserialize) const { - ASTDumper P(OS, &getASTContext().getCommentCommandTraits(), - &getASTContext().getSourceManager()); + const ASTContext &Ctx = getASTContext(); + const SourceManager &SM = Ctx.getSourceManager(); + ASTDumper P(OS, &Ctx.getCommentCommandTraits(), &SM, + SM.getDiagnostics().getShowColors(), Ctx.getPrintingPolicy()); P.setDeserialize(Deserialize); P.dumpDecl(this); } LLVM_DUMP_METHOD void Decl::dumpColor() const { - ASTDumper P(llvm::errs(), &getASTContext().getCommentCommandTraits(), - &getASTContext().getSourceManager(), /*ShowColors*/true); + const ASTContext &Ctx = getASTContext(); + ASTDumper P(llvm::errs(), &Ctx.getCommentCommandTraits(), + &Ctx.getSourceManager(), /*ShowColors*/ true, + Ctx.getPrintingPolicy()); P.dumpDecl(this); } @@ -2705,7 +2717,9 @@ LLVM_DUMP_METHOD void DeclContext::dumpLookups(raw_ost while (!DC->isTranslationUnit()) DC = DC->getParent(); ASTContext &Ctx = cast(DC)->getASTContext(); - ASTDumper P(OS, &Ctx.getCommentCommandTraits(), &Ctx.getSourceManager()); + const SourceManager &SM = Ctx.getSourceManager(); + ASTDumper P(OS, &Ctx.getCommentCommandTraits(), &Ctx.getSourceManager(), + SM.getDiagnostics().getShowColors(), Ctx.getPrintingPolicy()); P.setDeserialize(Deserialize); P.dumpLookups(this, DumpDecls); } Modified: projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp Sun Dec 24 01:08:34 2017 (r327135) @@ -134,17 +134,12 @@ namespace clang { bool ImportTemplateArguments(const TemplateArgument *FromArgs, unsigned NumFromArgs, SmallVectorImpl &ToArgs); - template - bool ImportTemplateArgumentListInfo(const InContainerTy &Container, - TemplateArgumentListInfo &ToTAInfo); bool IsStructuralMatch(RecordDecl *FromRecord, RecordDecl *ToRecord, bool Complain = true); bool IsStructuralMatch(VarDecl *FromVar, VarDecl *ToVar, bool Complain = true); bool IsStructuralMatch(EnumDecl *FromEnum, EnumDecl *ToRecord); bool IsStructuralMatch(EnumConstantDecl *FromEC, EnumConstantDecl *ToEC); - bool IsStructuralMatch(FunctionTemplateDecl *From, - FunctionTemplateDecl *To); bool IsStructuralMatch(ClassTemplateDecl *From, ClassTemplateDecl *To); bool IsStructuralMatch(VarTemplateDecl *From, VarTemplateDecl *To); Decl *VisitDecl(Decl *D); @@ -200,7 +195,6 @@ namespace clang { ClassTemplateSpecializationDecl *D); Decl *VisitVarTemplateDecl(VarTemplateDecl *D); Decl *VisitVarTemplateSpecializationDecl(VarTemplateSpecializationDecl *D); - Decl *VisitFunctionTemplateDecl(FunctionTemplateDecl *D); // Importing statements DeclGroupRef ImportDeclGroup(DeclGroupRef DG); @@ -286,7 +280,6 @@ namespace clang { Expr *VisitCXXDeleteExpr(CXXDeleteExpr *E); Expr *VisitCXXConstructExpr(CXXConstructExpr *E); Expr *VisitCXXMemberCallExpr(CXXMemberCallExpr *E); - Expr *VisitCXXDependentScopeMemberExpr(CXXDependentScopeMemberExpr *E); Expr *VisitExprWithCleanups(ExprWithCleanups *EWC); Expr *VisitCXXThisExpr(CXXThisExpr *E); Expr *VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *E); @@ -1254,18 +1247,6 @@ bool ASTNodeImporter::ImportTemplateArguments(const Te return false; } -template -bool ASTNodeImporter::ImportTemplateArgumentListInfo( - const InContainerTy &Container, TemplateArgumentListInfo &ToTAInfo) { - for (const auto &FromLoc : Container) { - if (auto ToLoc = ImportTemplateArgumentLoc(FromLoc)) - ToTAInfo.addArgument(*ToLoc); - else - return true; - } - return false; -} - bool ASTNodeImporter::IsStructuralMatch(RecordDecl *FromRecord, RecordDecl *ToRecord, bool Complain) { // Eliminate a potential failure point where we attempt to re-import @@ -1299,14 +1280,6 @@ bool ASTNodeImporter::IsStructuralMatch(EnumDecl *From return Ctx.IsStructurallyEquivalent(FromEnum, ToEnum); } -bool ASTNodeImporter::IsStructuralMatch(FunctionTemplateDecl *From, - FunctionTemplateDecl *To) { - StructuralEquivalenceContext Ctx( - Importer.getFromContext(), Importer.getToContext(), - Importer.getNonEquivalentDecls(), false, false); - return Ctx.IsStructurallyEquivalent(From, To); -} - bool ASTNodeImporter::IsStructuralMatch(EnumConstantDecl *FromEC, EnumConstantDecl *ToEC) { @@ -4224,64 +4197,6 @@ Decl *ASTNodeImporter::VisitVarTemplateSpecializationD return D2; } -Decl *ASTNodeImporter::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) { - DeclContext *DC, *LexicalDC; - DeclarationName Name; - SourceLocation Loc; - NamedDecl *ToD; - - if (ImportDeclParts(D, DC, LexicalDC, Name, ToD, Loc)) - return nullptr; - - if (ToD) - return ToD; - - // Try to find a function in our own ("to") context with the same name, same - // type, and in the same context as the function we're importing. - if (!LexicalDC->isFunctionOrMethod()) { - unsigned IDNS = Decl::IDNS_Ordinary; - SmallVector FoundDecls; - DC->getRedeclContext()->localUncachedLookup(Name, FoundDecls); - for (unsigned I = 0, N = FoundDecls.size(); I != N; ++I) { - if (!FoundDecls[I]->isInIdentifierNamespace(IDNS)) - continue; - - if (FunctionTemplateDecl *FoundFunction = - dyn_cast(FoundDecls[I])) { - if (FoundFunction->hasExternalFormalLinkage() && - D->hasExternalFormalLinkage()) { - if (IsStructuralMatch(D, FoundFunction)) { - Importer.Imported(D, FoundFunction); - // FIXME: Actually try to merge the body and other attributes. - return FoundFunction; - } - } - } - } - } - - TemplateParameterList *Params = - ImportTemplateParameterList(D->getTemplateParameters()); - if (!Params) - return nullptr; - - FunctionDecl *TemplatedFD = - cast_or_null(Importer.Import(D->getTemplatedDecl())); - if (!TemplatedFD) - return nullptr; - - FunctionTemplateDecl *ToFunc = FunctionTemplateDecl::Create( - Importer.getToContext(), DC, Loc, Name, Params, TemplatedFD); - - TemplatedFD->setDescribedFunctionTemplate(ToFunc); - ToFunc->setAccess(D->getAccess()); - ToFunc->setLexicalDeclContext(LexicalDC); - Importer.Imported(D, ToFunc); - - LexicalDC->addDeclInternal(ToFunc); - return ToFunc; -} - //---------------------------------------------------------------------------- // Import Statements //---------------------------------------------------------------------------- @@ -5842,47 +5757,6 @@ Expr *ASTNodeImporter::VisitCXXPseudoDestructorExpr( Importer.Import(E->getQualifierLoc()), ScopeInfo, Importer.Import(E->getColonColonLoc()), Importer.Import(E->getTildeLoc()), Storage); -} - -Expr *ASTNodeImporter::VisitCXXDependentScopeMemberExpr( - CXXDependentScopeMemberExpr *E) { - Expr *Base = nullptr; - if (!E->isImplicitAccess()) { - Base = Importer.Import(E->getBase()); - if (!Base) - return nullptr; - } - - QualType BaseType = Importer.Import(E->getBaseType()); - if (BaseType.isNull()) - return nullptr; - - TemplateArgumentListInfo ToTAInfo(Importer.Import(E->getLAngleLoc()), - Importer.Import(E->getRAngleLoc())); - TemplateArgumentListInfo *ResInfo = nullptr; - if (E->hasExplicitTemplateArgs()) { - if (ImportTemplateArgumentListInfo(E->template_arguments(), ToTAInfo)) - return nullptr; - ResInfo = &ToTAInfo; - } - - DeclarationName Name = Importer.Import(E->getMember()); - if (!E->getMember().isEmpty() && Name.isEmpty()) - return nullptr; - - DeclarationNameInfo MemberNameInfo(Name, Importer.Import(E->getMemberLoc())); - // Import additional name location/type info. - ImportDeclarationNameLoc(E->getMemberNameInfo(), MemberNameInfo); - auto ToFQ = Importer.Import(E->getFirstQualifierFoundInScope()); - if (!ToFQ && E->getFirstQualifierFoundInScope()) - return nullptr; - - return CXXDependentScopeMemberExpr::Create( - Importer.getToContext(), Base, BaseType, E->isArrow(), - Importer.Import(E->getOperatorLoc()), - Importer.Import(E->getQualifierLoc()), - Importer.Import(E->getTemplateKeywordLoc()), - cast_or_null(ToFQ), MemberNameInfo, ResInfo); } Expr *ASTNodeImporter::VisitCallExpr(CallExpr *E) { Modified: projects/clang600-import/contrib/llvm/tools/clang/lib/AST/Decl.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/lib/AST/Decl.cpp Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/lib/AST/Decl.cpp Sun Dec 24 01:08:34 2017 (r327135) @@ -26,6 +26,7 @@ #include "clang/AST/Expr.h" #include "clang/AST/ExprCXX.h" #include "clang/AST/ExternalASTSource.h" +#include "clang/AST/ODRHash.h" #include "clang/AST/PrettyPrinter.h" #include "clang/AST/Redeclarable.h" #include "clang/AST/Stmt.h" @@ -1548,7 +1549,10 @@ void NamedDecl::printQualifiedName(raw_ostream &OS, // enumerator is declared in the scope that immediately contains // the enum-specifier. Each scoped enumerator is declared in the // scope of the enumeration. - if (ED->isScoped() || ED->getIdentifier()) + // For the case of unscoped enumerator, do not include in the qualified + // name any information about its enum enclosing scope, as is visibility + // is global. + if (ED->isScoped()) OS << *ED; else continue; @@ -3599,6 +3603,25 @@ unsigned FunctionDecl::getMemoryFunctionKind() const { break; } return 0; +} + +unsigned FunctionDecl::getODRHash() { + if (HasODRHash) + return ODRHash; + + if (FunctionDecl *Definition = getDefinition()) { + if (Definition != this) { + HasODRHash = true; + ODRHash = Definition->getODRHash(); + return ODRHash; + } + } + + class ODRHash Hash; + Hash.AddFunctionDecl(this); + HasODRHash = true; + ODRHash = Hash.CalculateHash(); + return ODRHash; } //===----------------------------------------------------------------------===// Modified: projects/clang600-import/contrib/llvm/tools/clang/lib/AST/Expr.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/lib/AST/Expr.cpp Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/lib/AST/Expr.cpp Sun Dec 24 01:08:34 2017 (r327135) @@ -3116,7 +3116,8 @@ bool Expr::HasSideEffects(const ASTContext &Ctx, if (DCE->getTypeAsWritten()->isReferenceType() && DCE->getCastKind() == CK_Dynamic) return true; - } // Fall through. + } + LLVM_FALLTHROUGH; case ImplicitCastExprClass: case CStyleCastExprClass: case CXXStaticCastExprClass: Modified: projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp Sun Dec 24 01:08:34 2017 (r327135) @@ -857,7 +857,7 @@ LambdaCapture::LambdaCapture(SourceLocation Loc, bool switch (Kind) { case LCK_StarThis: Bits |= Capture_ByCopy; - // Fall through + LLVM_FALLTHROUGH; case LCK_This: assert(!Var && "'this' capture cannot have a variable!"); Bits |= Capture_This; @@ -865,7 +865,7 @@ LambdaCapture::LambdaCapture(SourceLocation Loc, bool case LCK_ByCopy: Bits |= Capture_ByCopy; - // Fall through + LLVM_FALLTHROUGH; case LCK_ByRef: assert(Var && "capture must have a variable!"); break; Modified: projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp Sun Dec 24 01:04:58 2017 (r327134) +++ projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp Sun Dec 24 01:08:34 2017 (r327135) @@ -5913,7 +5913,7 @@ bool PointerExprEvaluator::VisitBuiltinCallExpr(const << (std::string("'") + Info.Ctx.BuiltinInfo.getName(BuiltinOp) + "'"); else Info.CCEDiag(E, diag::note_invalid_subexpr_in_const_expr); - // Fall through. + LLVM_FALLTHROUGH; case Builtin::BI__builtin_strchr: case Builtin::BI__builtin_wcschr: case Builtin::BI__builtin_memchr: @@ -5952,7 +5952,7 @@ bool PointerExprEvaluator::VisitBuiltinCallExpr(const Desired)) return ZeroInitialization(E); StopAtNull = true; - // Fall through. + LLVM_FALLTHROUGH; case Builtin::BImemchr: case Builtin::BI__builtin_memchr: case Builtin::BI__builtin_char_memchr: @@ -5965,7 +5965,7 @@ bool PointerExprEvaluator::VisitBuiltinCallExpr(const case Builtin::BIwcschr: case Builtin::BI__builtin_wcschr: StopAtNull = true; - // Fall through. + LLVM_FALLTHROUGH; case Builtin::BIwmemchr: case Builtin::BI__builtin_wmemchr: // wcschr and wmemchr are given a wchar_t to look for. Just use it. @@ -7209,6 +7209,7 @@ static int EvaluateBuiltinClassifyType(const CallExpr case BuiltinType::Dependent: llvm_unreachable("CallExpr::isBuiltinClassifyType(): unimplemented type"); }; + break; case Type::Enum: return LangOpts.CPlusPlus ? enumeral_type_class : integer_type_class; @@ -7419,7 +7420,10 @@ static bool isDesignatorAtObjectEnd(const ASTContext & // If we don't know the array bound, conservatively assume we're looking at // the final array element. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Dec 24 01:12:50 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0F5B2E89823 for ; Sun, 24 Dec 2017 01:12:50 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9C16C80331; Sun, 24 Dec 2017 01:12:49 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBO1Cmvf082581; Sun, 24 Dec 2017 01:12:48 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBO1ClKe082564; Sun, 24 Dec 2017 01:12:47 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712240112.vBO1ClKe082564@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 01:12:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327137 - in projects/clang600-import/contrib/llvm/tools/lldb: include/lldb/Interpreter include/lldb/Symbol include/lldb/Target include/lldb/Utility source/Interpreter source/Plugins/Di... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import/contrib/llvm/tools/lldb: include/lldb/Interpreter include/lldb/Symbol include/lldb/Target include/lldb/Utility source/Interpreter source/Plugins/Disassembler/llvm source/Pl... X-SVN-Commit-Revision: 327137 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 01:12:50 -0000 Author: dim Date: Sun Dec 24 01:12:46 2017 New Revision: 327137 URL: https://svnweb.freebsd.org/changeset/base/327137 Log: Merge lldb trunk r321414 to contrib/llvm/tools/lldb. Modified: projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpec.h projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Target/Target.h projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferLLVM.h projects/clang600-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h projects/clang600-import/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp projects/clang600-import/contrib/llvm/tools/lldb/source/Target/Target.cpp projects/clang600-import/contrib/llvm/tools/lldb/source/Utility/DataBufferLLVM.cpp projects/clang600-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp projects/clang600-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp Directory Properties: projects/clang600-import/contrib/llvm/tools/lldb/ (props changed) Modified: projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpec.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpec.h Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpec.h Sun Dec 24 01:12:46 2017 (r327137) @@ -77,7 +77,7 @@ class OptionValueFileSpec : public OptionValue { (publ void SetDefaultValue(const FileSpec &value) { m_default_value = value; } - const lldb::DataBufferSP &GetFileContents(bool null_terminate); + const lldb::DataBufferSP &GetFileContents(); void SetCompletionMask(uint32_t mask) { m_completion_mask = mask; } Modified: projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h Sun Dec 24 01:12:46 2017 (r327137) @@ -879,6 +879,9 @@ class ObjectFile : public std::enable_shared_from_this ConstString GetNextSyntheticSymbolName(); + static lldb::DataBufferSP MapFileData(const FileSpec &file, uint64_t Size, + uint64_t Offset); + private: DISALLOW_COPY_AND_ASSIGN(ObjectFile); }; Modified: projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Target/Target.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Target/Target.h Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Target/Target.h Sun Dec 24 01:12:46 2017 (r327137) @@ -161,7 +161,7 @@ class TargetProperties : public Properties { (public) lldb::LanguageType GetLanguage() const; - const char *GetExpressionPrefixContentsAsCString(); + llvm::StringRef GetExpressionPrefixContents(); bool GetUseHexImmediates() const; Modified: projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferLLVM.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferLLVM.h Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferLLVM.h Sun Dec 24 01:12:46 2017 (r327137) @@ -17,7 +17,7 @@ #include // for uint8_t, uint64_t namespace llvm { -class MemoryBuffer; +class WritableMemoryBuffer; class Twine; } @@ -28,10 +28,10 @@ class DataBufferLLVM : public DataBuffer { (public) ~DataBufferLLVM(); static std::shared_ptr - CreateSliceFromPath(const llvm::Twine &Path, uint64_t Size, uint64_t Offset, bool Private = false); + CreateSliceFromPath(const llvm::Twine &Path, uint64_t Size, uint64_t Offset); static std::shared_ptr - CreateFromPath(const llvm::Twine &Path, bool NullTerminate = false, bool Private = false); + CreateFromPath(const llvm::Twine &Path); uint8_t *GetBytes() override; const uint8_t *GetBytes() const override; @@ -42,10 +42,9 @@ class DataBufferLLVM : public DataBuffer { (public) private: /// \brief Construct a DataBufferLLVM from \p Buffer. \p Buffer must be a /// valid pointer. - explicit DataBufferLLVM(std::unique_ptr Buffer); - const uint8_t *GetBuffer() const; + explicit DataBufferLLVM(std::unique_ptr Buffer); - std::unique_ptr Buffer; + std::unique_ptr Buffer; }; } Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp Sun Dec 24 01:12:46 2017 (r327137) @@ -113,14 +113,12 @@ size_t OptionValueFileSpec::AutoComplete( return matches.GetSize(); } -const lldb::DataBufferSP & -OptionValueFileSpec::GetFileContents(bool null_terminate) { +const lldb::DataBufferSP &OptionValueFileSpec::GetFileContents() { if (m_current_value) { const auto file_mod_time = FileSystem::GetModificationTime(m_current_value); if (m_data_sp && m_data_mod_time == file_mod_time) return m_data_sp; - m_data_sp = DataBufferLLVM::CreateFromPath(m_current_value.GetPath(), - null_terminate); + m_data_sp = DataBufferLLVM::CreateFromPath(m_current_value.GetPath()); m_data_mod_time = file_mod_time; } return m_data_sp; Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp Sun Dec 24 01:12:46 2017 (r327137) @@ -1127,6 +1127,11 @@ DisassemblerLLVMC::DisassemblerLLVMC(const ArchSpec &a features_str += "+dspr2,"; } + // If any AArch64 variant, enable the ARMv8.2 ISA + // extensions so we can disassemble newer instructions. + if (triple.getArch() == llvm::Triple::aarch64) + features_str += "+v8.2a"; + m_disasm_ap.reset(new LLVMCDisassembler(triple_str, cpu, features_str.c_str(), flavor, *this)); if (!m_disasm_ap->IsValid()) { Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp Sun Dec 24 01:12:46 2017 (r327137) @@ -24,7 +24,6 @@ #include "lldb/Target/Target.h" #include "lldb/Utility/ArchSpec.h" #include "lldb/Utility/DataBufferHeap.h" -#include "lldb/Utility/DataBufferLLVM.h" #include "lldb/Utility/Log.h" #include "lldb/Utility/Status.h" #include "lldb/Utility/Stream.h" @@ -406,8 +405,7 @@ ObjectFile *ObjectFileELF::CreateInstance(const lldb:: lldb::offset_t file_offset, lldb::offset_t length) { if (!data_sp) { - data_sp = - DataBufferLLVM::CreateSliceFromPath(file->GetPath(), length, file_offset, true); + data_sp = MapFileData(*file, length, file_offset); if (!data_sp) return nullptr; data_offset = 0; @@ -424,8 +422,7 @@ ObjectFile *ObjectFileELF::CreateInstance(const lldb:: // Update the data to contain the entire file if it doesn't already if (data_sp->GetByteSize() < length) { - data_sp = - DataBufferLLVM::CreateSliceFromPath(file->GetPath(), length, file_offset, true); + data_sp = MapFileData(*file, length, file_offset); if (!data_sp) return nullptr; data_offset = 0; @@ -684,8 +681,7 @@ size_t ObjectFileELF::GetModuleSpecifications( size_t section_header_end = header.e_shoff + header.e_shentsize; if (header.HasHeaderExtension() && section_header_end > data_sp->GetByteSize()) { - data_sp = DataBufferLLVM::CreateSliceFromPath( - file.GetPath(), section_header_end, file_offset); + data_sp = MapFileData(file, section_header_end, file_offset); if (data_sp) { data.SetData(data_sp); lldb::offset_t header_offset = data_offset; @@ -698,8 +694,7 @@ size_t ObjectFileELF::GetModuleSpecifications( section_header_end = header.e_shoff + header.e_shnum * header.e_shentsize; if (section_header_end > data_sp->GetByteSize()) { - data_sp = DataBufferLLVM::CreateSliceFromPath( - file.GetPath(), section_header_end, file_offset); + data_sp = MapFileData(file, section_header_end, file_offset); if (data_sp) data.SetData(data_sp); } @@ -741,8 +736,7 @@ size_t ObjectFileELF::GetModuleSpecifications( size_t program_headers_end = header.e_phoff + header.e_phnum * header.e_phentsize; if (program_headers_end > data_sp->GetByteSize()) { - data_sp = DataBufferLLVM::CreateSliceFromPath( - file.GetPath(), program_headers_end, file_offset); + data_sp = MapFileData(file, program_headers_end, file_offset); if (data_sp) data.SetData(data_sp); } @@ -757,8 +751,7 @@ size_t ObjectFileELF::GetModuleSpecifications( } if (segment_data_end > data_sp->GetByteSize()) { - data_sp = DataBufferLLVM::CreateSliceFromPath( - file.GetPath(), segment_data_end, file_offset); + data_sp = MapFileData(file, segment_data_end, file_offset); if (data_sp) data.SetData(data_sp); } @@ -767,8 +760,7 @@ size_t ObjectFileELF::GetModuleSpecifications( CalculateELFNotesSegmentsCRC32(program_headers, data); } else { // Need to map entire file into memory to calculate the crc. - data_sp = DataBufferLLVM::CreateSliceFromPath(file.GetPath(), -1, - file_offset); + data_sp = MapFileData(file, -1, file_offset); if (data_sp) { data.SetData(data_sp); gnu_debuglink_crc = calc_gnu_debuglink_crc32( Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp Sun Dec 24 01:12:46 2017 (r327137) @@ -60,6 +60,7 @@ StateType GDBRemoteClientBase::SendContinuePacketAndWa continue; if (steady_clock::now() >= m_interrupt_time + kInterruptTimeout) return eStateInvalid; + break; } case PacketResult::Success: break; Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp Sun Dec 24 01:12:46 2017 (r327137) @@ -1743,8 +1743,8 @@ TypeSP DWARFASTParserClang::ParseTypeFromDWARF(const S "DWARF DW_TAG_array_type DIE at 0x%8.8x has a " "class/union/struct element type DIE 0x%8.8x that is a " "forward declaration, not a complete definition.\nTry " - "compiling the source file with -fno-limit-debug-info or " - "disable -gmodule", + "compiling the source file with -fstandalone-debug or " + "disable -gmodules", die.GetOffset(), type_die_ref.die_offset); else module_sp->ReportError( @@ -2255,7 +2255,7 @@ bool DWARFASTParserClang::CompleteTypeFromDWARF(const if (die.GetCU()->GetProducer() == DWARFCompileUnit::eProducerClang) module->ReportError(":: Try compiling the source file with " - "-fno-limit-debug-info."); + "-fstandalone-debug."); // We have no choice other than to pretend that the base class // is complete. If we don't do this, clang will crash when we @@ -3095,7 +3095,7 @@ bool DWARFASTParserClang::ParseChildMembers( "DWARF DIE at 0x%8.8x (class %s) has a member variable " "0x%8.8x (%s) whose type is a forward declaration, not a " "complete definition.\nTry compiling the source file " - "with -fno-limit-debug-info", + "with -fstandalone-debug", parent_die.GetOffset(), parent_die.GetName(), die.GetOffset(), name); else Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp Sun Dec 24 01:12:46 2017 (r327137) @@ -124,6 +124,8 @@ lldb::TypeSP PDBASTParser::CreateLLDBTypeFromPDBType(c } else if (auto type_def = llvm::dyn_cast(&type)) { lldb_private::Type *target_type = m_ast.GetSymbolFile()->ResolveTypeUID(type_def->getTypeId()); + if (!target_type) + return nullptr; std::string name = type_def->getName(); uint64_t bytes = type_def->getLength(); if (!target_type) @@ -179,6 +181,8 @@ lldb::TypeSP PDBASTParser::CreateLLDBTypeFromPDBType(c lldb_private::Type *element_type = m_ast.GetSymbolFile()->ResolveTypeUID(element_uid); + if (!element_type) + return nullptr; CompilerType element_ast_type = element_type->GetFullCompilerType(); CompilerType array_ast_type = m_ast.CreateArrayType(element_ast_type, num_elements, false); Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp Sun Dec 24 01:12:46 2017 (r327137) @@ -19,14 +19,18 @@ #include "lldb/Symbol/ObjectFile.h" #include "lldb/Symbol/SymbolContext.h" #include "lldb/Symbol/TypeMap.h" +#include "lldb/Utility/RegularExpression.h" #include "llvm/DebugInfo/PDB/GenericError.h" +#include "llvm/DebugInfo/PDB/IPDBDataStream.h" #include "llvm/DebugInfo/PDB/IPDBEnumChildren.h" #include "llvm/DebugInfo/PDB/IPDBLineNumber.h" #include "llvm/DebugInfo/PDB/IPDBSourceFile.h" +#include "llvm/DebugInfo/PDB/IPDBTable.h" #include "llvm/DebugInfo/PDB/PDBSymbol.h" #include "llvm/DebugInfo/PDB/PDBSymbolCompiland.h" #include "llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h" +#include "llvm/DebugInfo/PDB/PDBSymbolData.h" #include "llvm/DebugInfo/PDB/PDBSymbolExe.h" #include "llvm/DebugInfo/PDB/PDBSymbolFunc.h" #include "llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h" @@ -93,6 +97,10 @@ SymbolFilePDB::SymbolFilePDB(lldb_private::ObjectFile SymbolFilePDB::~SymbolFilePDB() {} uint32_t SymbolFilePDB::CalculateAbilities() { + uint32_t abilities = 0; + if (!m_obj_file) + return 0; + if (!m_session_up) { // Lazily load and match the PDB file, but only do this once. std::string exePath = m_obj_file->GetFileSpec().GetPath(); @@ -100,10 +108,46 @@ uint32_t SymbolFilePDB::CalculateAbilities() { m_session_up); if (error) { llvm::consumeError(std::move(error)); - return 0; + auto module_sp = m_obj_file->GetModule(); + if (!module_sp) + return 0; + // See if any symbol file is specified through `--symfile` option. + FileSpec symfile = module_sp->GetSymbolFileFileSpec(); + if (!symfile) + return 0; + error = loadDataForPDB(PDB_ReaderType::DIA, + llvm::StringRef(symfile.GetPath()), + m_session_up); + if (error) { + llvm::consumeError(std::move(error)); + return 0; + } } } - return CompileUnits | LineTables; + if (!m_session_up.get()) + return 0; + + auto enum_tables_up = m_session_up->getEnumTables(); + if (!enum_tables_up) + return 0; + while (auto table_up = enum_tables_up->getNext()) { + if (table_up->getItemCount() == 0) + continue; + auto type = table_up->getTableType(); + switch (type) { + case PDB_TableType::Symbols: + // This table represents a store of symbols with types listed in + // PDBSym_Type + abilities |= (CompileUnits | Functions | Blocks | + GlobalVariables | LocalVariables | VariableTypes); + break; + case PDB_TableType::LineNumbers: + abilities |= LineTables; + break; + default: break; + } + } + return abilities; } void SymbolFilePDB::InitializeObject() { @@ -250,7 +294,8 @@ lldb_private::Type *SymbolFilePDB::ResolveTypeUID(lldb return nullptr; lldb::TypeSP result = pdb->CreateLLDBTypeFromPDBType(*pdb_type); - m_types.insert(std::make_pair(type_uid, result)); + if (result.get()) + m_types.insert(std::make_pair(type_uid, result)); return result.get(); } @@ -385,19 +430,16 @@ uint32_t SymbolFilePDB::FindTypes( std::string name_str = name.AsCString(); - // If this might be a regex, we have to return EVERY symbol and process them - // one by one, which is going to destroy performance on large PDB files. So - // try really hard not to use a regex match. - if (name_str.find_first_of("[]?*.-+\\") != std::string::npos) - FindTypesByRegex(name_str, max_matches, types); - else - FindTypesByName(name_str, max_matches, types); + // There is an assumption 'name' is not a regex + FindTypesByName(name_str, max_matches, types); + return types.GetSize(); } -void SymbolFilePDB::FindTypesByRegex(const std::string ®ex, - uint32_t max_matches, - lldb_private::TypeMap &types) { +void +SymbolFilePDB::FindTypesByRegex(const lldb_private::RegularExpression ®ex, + uint32_t max_matches, + lldb_private::TypeMap &types) { // When searching by regex, we need to go out of our way to limit the search // space as much as possible since this searches EVERYTHING in the PDB, // manually doing regex comparisons. PDB library isn't optimized for regex @@ -409,8 +451,6 @@ void SymbolFilePDB::FindTypesByRegex(const std::string auto global = m_session_up->getGlobalScope(); std::unique_ptr results; - std::regex re(regex); - uint32_t matches = 0; for (auto tag : tags_to_search) { @@ -433,7 +473,7 @@ void SymbolFilePDB::FindTypesByRegex(const std::string continue; } - if (!std::regex_match(type_name, re)) + if (!regex.Execute(type_name)) continue; // This should cause the type to get cached and stored in the `m_types` Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h Sun Dec 24 01:12:46 2017 (r327137) @@ -172,7 +172,8 @@ class SymbolFilePDB : public lldb_private::SymbolFile const llvm::pdb::PDBSymbolCompiland &cu, llvm::DenseMap &index_map) const; - void FindTypesByRegex(const std::string ®ex, uint32_t max_matches, + void FindTypesByRegex(const lldb_private::RegularExpression ®ex, + uint32_t max_matches, lldb_private::TypeMap &types); void FindTypesByName(const std::string &name, uint32_t max_matches, Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp Sun Dec 24 01:12:46 2017 (r327137) @@ -688,3 +688,8 @@ Status ObjectFile::LoadInMemory(Target &target, bool s void ObjectFile::RelocateSection(lldb_private::Section *section) { } + +DataBufferSP ObjectFile::MapFileData(const FileSpec &file, uint64_t Size, + uint64_t Offset) { + return DataBufferLLVM::CreateSliceFromPath(file.GetPath(), Size, Offset); +} Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Target/Target.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Target/Target.cpp Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Target/Target.cpp Sun Dec 24 01:12:46 2017 (r327137) @@ -2313,7 +2313,7 @@ ExpressionResults Target::EvaluateExpression( result_valobj_sp = persistent_var_sp->GetValueObject(); execution_results = eExpressionCompleted; } else { - const char *prefix = GetExpressionPrefixContentsAsCString(); + llvm::StringRef prefix = GetExpressionPrefixContents(); Status error; execution_results = UserExpression::Evaluate(exe_ctx, options, expr, prefix, result_valobj_sp, error, @@ -4046,18 +4046,19 @@ LanguageType TargetProperties::GetLanguage() const { return LanguageType(); } -const char *TargetProperties::GetExpressionPrefixContentsAsCString() { +llvm::StringRef TargetProperties::GetExpressionPrefixContents() { const uint32_t idx = ePropertyExprPrefix; OptionValueFileSpec *file = m_collection_sp->GetPropertyAtIndexAsOptionValueFileSpec(nullptr, false, idx); if (file) { - const bool null_terminate = true; - DataBufferSP data_sp(file->GetFileContents(null_terminate)); + DataBufferSP data_sp(file->GetFileContents()); if (data_sp) - return (const char *)data_sp->GetBytes(); + return llvm::StringRef( + reinterpret_cast(data_sp->GetBytes()), + data_sp->GetByteSize()); } - return nullptr; + return ""; } bool TargetProperties::GetBreakpointsConsultPlatformAvoidList() { Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Utility/DataBufferLLVM.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Utility/DataBufferLLVM.cpp Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Utility/DataBufferLLVM.cpp Sun Dec 24 01:12:46 2017 (r327137) @@ -18,7 +18,8 @@ using namespace lldb_private; -DataBufferLLVM::DataBufferLLVM(std::unique_ptr MemBuffer) +DataBufferLLVM::DataBufferLLVM( + std::unique_ptr MemBuffer) : Buffer(std::move(MemBuffer)) { assert(Buffer != nullptr && "Cannot construct a DataBufferLLVM with a null buffer"); @@ -28,13 +29,13 @@ DataBufferLLVM::~DataBufferLLVM() {} std::shared_ptr DataBufferLLVM::CreateSliceFromPath(const llvm::Twine &Path, uint64_t Size, - uint64_t Offset, bool Private) { + uint64_t Offset) { // If the file resides non-locally, pass the volatile flag so that we don't // mmap it. - if (!Private) - Private = !llvm::sys::fs::is_local(Path); + bool IsVolatile = !llvm::sys::fs::is_local(Path); - auto Buffer = llvm::MemoryBuffer::getFileSlice(Path, Size, Offset, Private); + auto Buffer = + llvm::WritableMemoryBuffer::getFileSlice(Path, Size, Offset, IsVolatile); if (!Buffer) return nullptr; return std::shared_ptr( @@ -42,13 +43,12 @@ DataBufferLLVM::CreateSliceFromPath(const llvm::Twine } std::shared_ptr -DataBufferLLVM::CreateFromPath(const llvm::Twine &Path, bool NullTerminate, bool Private) { +DataBufferLLVM::CreateFromPath(const llvm::Twine &Path) { // If the file resides non-locally, pass the volatile flag so that we don't // mmap it. - if (!Private) - Private = !llvm::sys::fs::is_local(Path); + bool IsVolatile = !llvm::sys::fs::is_local(Path); - auto Buffer = llvm::MemoryBuffer::getFile(Path, -1, NullTerminate, Private); + auto Buffer = llvm::WritableMemoryBuffer::getFile(Path, -1, IsVolatile); if (!Buffer) return nullptr; return std::shared_ptr( @@ -56,15 +56,13 @@ DataBufferLLVM::CreateFromPath(const llvm::Twine &Path } uint8_t *DataBufferLLVM::GetBytes() { - return const_cast(GetBuffer()); + return reinterpret_cast(Buffer->getBufferStart()); } -const uint8_t *DataBufferLLVM::GetBytes() const { return GetBuffer(); } +const uint8_t *DataBufferLLVM::GetBytes() const { + return reinterpret_cast(Buffer->getBufferStart()); +} lldb::offset_t DataBufferLLVM::GetByteSize() const { return Buffer->getBufferSize(); -} - -const uint8_t *DataBufferLLVM::GetBuffer() const { - return reinterpret_cast(Buffer->getBufferStart()); } Modified: projects/clang600-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp Sun Dec 24 01:12:46 2017 (r327137) @@ -18,6 +18,7 @@ #include "lldb/API/SBTarget.h" #include "lldb/API/SBThread.h" #include "lldb/API/SBUnixSignals.h" +#include "llvm/Support/Compiler.h" #ifdef _WIN32 #include // For the ::_access() #else @@ -899,6 +900,7 @@ bool CMICmnLLDBDebuggerHandleEvents::HandleProcessEven bOk = HandleProcessEventStateStopped(vEvent, bShouldBrk); if (bShouldBrk) break; + LLVM_FALLTHROUGH; case lldb::eStateCrashed: case lldb::eStateSuspended: pEventType = "eStateSuspended"; Modified: projects/clang600-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp Sun Dec 24 01:11:19 2017 (r327136) +++ projects/clang600-import/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp Sun Dec 24 01:12:46 2017 (r327137) @@ -8,6 +8,7 @@ //===----------------------------------------------------------------------===// // Third party headers +#include "llvm/Support/Compiler.h" #include #include // for PRIx8 #include // for ULONG_MAX @@ -890,7 +891,7 @@ CMIUtilString CMIUtilString::ConvertToPrintableASCII(c case '"': if (bEscapeQuotes) return "\\\""; - // fall thru + LLVM_FALLTHROUGH; default: if (::isprint(vChar)) return Format("%c", vChar); @@ -924,7 +925,7 @@ CMIUtilString::ConvertCharValueToPrintableASCII(char v case '"': if (bEscapeQuotes) return "\\\""; - // fall thru + LLVM_FALLTHROUGH; default: if (::isprint(vChar)) return Format("%c", vChar); From owner-svn-src-projects@freebsd.org Sun Dec 24 01:11:21 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F1974E894C3 for ; Sun, 24 Dec 2017 01:11:21 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7AE877FFEB; Sun, 24 Dec 2017 01:11:21 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBO1BKhw080902; Sun, 24 Dec 2017 01:11:20 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBO1BJeA080891; Sun, 24 Dec 2017 01:11:19 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712240111.vBO1BJeA080891@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 01:11:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327136 - in projects/clang600-import/contrib/llvm/tools/lld: . COFF ELF ELF/Arch X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import/contrib/llvm/tools/lld: . COFF ELF ELF/Arch X-SVN-Commit-Revision: 327136 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 01:11:22 -0000 Author: dim Date: Sun Dec 24 01:11:19 2017 New Revision: 327136 URL: https://svnweb.freebsd.org/changeset/base/327136 Log: Merge lld trunk r321414 to contrib/llvm/tools/lld. Modified: projects/clang600-import/contrib/llvm/tools/lld/COFF/DLL.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/Driver.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/InputFiles.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/InputFiles.h projects/clang600-import/contrib/llvm/tools/lld/ELF/InputSection.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/InputSection.h projects/clang600-import/contrib/llvm/tools/lld/ELF/MarkLive.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/Relocations.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/ScriptParser.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/SymbolTable.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/SymbolTable.h projects/clang600-import/contrib/llvm/tools/lld/ELF/Symbols.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/Symbols.h projects/clang600-import/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/SyntheticSections.h projects/clang600-import/contrib/llvm/tools/lld/ELF/Target.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/Target.h projects/clang600-import/contrib/llvm/tools/lld/ELF/Thunks.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/Writer.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/Writer.h projects/clang600-import/contrib/llvm/tools/lld/README.md Directory Properties: projects/clang600-import/contrib/llvm/tools/lld/ (props changed) Modified: projects/clang600-import/contrib/llvm/tools/lld/COFF/DLL.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lld/COFF/DLL.cpp Sun Dec 24 01:08:34 2017 (r327135) +++ projects/clang600-import/contrib/llvm/tools/lld/COFF/DLL.cpp Sun Dec 24 01:11:19 2017 (r327136) @@ -362,12 +362,12 @@ class AddressTableChunk : public Chunk { (public) size_t getSize() const override { return Size * 4; } void writeTo(uint8_t *Buf) const override { - uint32_t Bit = 0; - // Pointer to thumb code must have the LSB set, so adjust it. - if (Config->Machine == ARMNT) - Bit = 1; - for (Export &E : Config->Exports) { + for (const Export &E : Config->Exports) { uint8_t *P = Buf + OutputSectionOff + E.Ordinal * 4; + uint32_t Bit = 0; + // Pointer to thumb code must have the LSB set, so adjust it. + if (Config->Machine == ARMNT && !E.Data) + Bit = 1; if (E.ForwardChunk) { write32le(P, E.ForwardChunk->getRVA() | Bit); } else { Modified: projects/clang600-import/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp Sun Dec 24 01:08:34 2017 (r327135) +++ projects/clang600-import/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp Sun Dec 24 01:11:19 2017 (r327136) @@ -400,8 +400,8 @@ lld::elf::Patch843419Section::Patch843419Section(Input this->Parent = P->getParent(); PatchSym = addSyntheticLocal( Saver.save("__CortexA53843419_" + utohexstr(getLDSTAddr())), STT_FUNC, 0, - getSize(), this); - addSyntheticLocal(Saver.save("$x"), STT_NOTYPE, 0, 0, this); + getSize(), *this); + addSyntheticLocal(Saver.save("$x"), STT_NOTYPE, 0, 0, *this); } uint64_t lld::elf::Patch843419Section::getLDSTAddr() const { Modified: projects/clang600-import/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp Sun Dec 24 01:08:34 2017 (r327135) +++ projects/clang600-import/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp Sun Dec 24 01:11:19 2017 (r327136) @@ -37,8 +37,8 @@ class ARM final : public TargetInfo { (public) void writePltHeader(uint8_t *Buf) const override; void writePlt(uint8_t *Buf, uint64_t GotPltEntryAddr, uint64_t PltEntryAddr, int32_t Index, unsigned RelOff) const override; - void addPltSymbols(InputSectionBase *IS, uint64_t Off) const override; - void addPltHeaderSymbols(InputSectionBase *ISD) const override; + void addPltSymbols(InputSection &IS, uint64_t Off) const override; + void addPltHeaderSymbols(InputSection &ISD) const override; bool needsThunk(RelExpr Expr, RelType Type, const InputFile *File, uint64_t BranchAddr, const Symbol &S) const override; bool inBranchRange(RelType Type, uint64_t Src, uint64_t Dst) const override; @@ -184,7 +184,7 @@ void ARM::writeIgotPlt(uint8_t *Buf, const Symbol &S) write32le(Buf, S.getVA()); } -// Long form PLT Heade that does not have any restrictions on the displacement +// Long form PLT Header that does not have any restrictions on the displacement // of the .plt from the .plt.got. static void writePltHeaderLong(uint8_t *Buf) { const uint8_t PltData[] = { @@ -232,8 +232,7 @@ void ARM::writePltHeader(uint8_t *Buf) const { write32le(Buf + 28, TrapInstr); } -void ARM::addPltHeaderSymbols(InputSectionBase *ISD) const { - auto *IS = cast(ISD); +void ARM::addPltHeaderSymbols(InputSection &IS) const { addSyntheticLocal("$a", STT_NOTYPE, 0, 0, IS); addSyntheticLocal("$d", STT_NOTYPE, 16, 0, IS); } @@ -282,8 +281,7 @@ void ARM::writePlt(uint8_t *Buf, uint64_t GotPltEntryA write32le(Buf + 12, TrapInstr); // Pad to 16-byte boundary } -void ARM::addPltSymbols(InputSectionBase *ISD, uint64_t Off) const { - auto *IS = cast(ISD); +void ARM::addPltSymbols(InputSection &IS, uint64_t Off) const { addSyntheticLocal("$a", STT_NOTYPE, Off, 0, IS); addSyntheticLocal("$d", STT_NOTYPE, Off + 12, 0, IS); } Modified: projects/clang600-import/contrib/llvm/tools/lld/ELF/Driver.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lld/ELF/Driver.cpp Sun Dec 24 01:08:34 2017 (r327135) +++ projects/clang600-import/contrib/llvm/tools/lld/ELF/Driver.cpp Sun Dec 24 01:11:19 2017 (r327136) @@ -1056,7 +1056,7 @@ template void LinkerDriver::link(opt::Inp // We need to create some reserved symbols such as _end. Create them. if (!Config->Relocatable) - addReservedSymbols(); + addReservedSymbols(); // Apply version scripts. Symtab->scanVersionScript(); @@ -1111,7 +1111,7 @@ template void LinkerDriver::link(opt::Inp // before decompressAndMergeSections because the .comment section is a // mergeable section. if (!Config->Relocatable) - InputSections.push_back(createCommentSection()); + InputSections.push_back(createCommentSection()); // Do size optimizations: garbage collection, merging of SHF_MERGE sections // and identical code folding. Modified: projects/clang600-import/contrib/llvm/tools/lld/ELF/InputFiles.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lld/ELF/InputFiles.cpp Sun Dec 24 01:08:34 2017 (r327135) +++ projects/clang600-import/contrib/llvm/tools/lld/ELF/InputFiles.cpp Sun Dec 24 01:11:19 2017 (r327136) @@ -32,6 +32,7 @@ using namespace llvm; using namespace llvm::ELF; using namespace llvm::object; +using namespace llvm::sys; using namespace llvm::sys::fs; using namespace lld; @@ -69,6 +70,50 @@ Optional elf::readFile(StringRef Path return MBRef; } +// Concatenates arguments to construct a string representing an error location. +static std::string createFileLineMsg(StringRef Path, unsigned Line) { + std::string Filename = path::filename(Path); + std::string Lineno = ":" + std::to_string(Line); + if (Filename == Path) + return Filename + Lineno; + return Filename + Lineno + " (" + Path.str() + Lineno + ")"; +} + +template +static std::string getSrcMsgAux(ObjFile &File, const Symbol &Sym, + InputSectionBase &Sec, uint64_t Offset) { + // In DWARF, functions and variables are stored to different places. + // First, lookup a function for a given offset. + if (Optional Info = File.getDILineInfo(&Sec, Offset)) + return createFileLineMsg(Info->FileName, Info->Line); + + // If it failed, lookup again as a variable. + if (Optional> FileLine = + File.getVariableLoc(Sym.getName())) + return createFileLineMsg(FileLine->first, FileLine->second); + + // File.SourceFile contains STT_FILE symbol, and that is a last resort. + return File.SourceFile; +} + +std::string InputFile::getSrcMsg(const Symbol &Sym, InputSectionBase &Sec, + uint64_t Offset) { + if (kind() != ObjKind) + return ""; + switch (Config->EKind) { + default: + llvm_unreachable("Invalid kind"); + case ELF32LEKind: + return getSrcMsgAux(cast>(*this), Sym, Sec, Offset); + case ELF32BEKind: + return getSrcMsgAux(cast>(*this), Sym, Sec, Offset); + case ELF64LEKind: + return getSrcMsgAux(cast>(*this), Sym, Sec, Offset); + case ELF64BEKind: + return getSrcMsgAux(cast>(*this), Sym, Sec, Offset); + } +} + template void ObjFile::initializeDwarf() { DWARFContext Dwarf(make_unique>(this)); const DWARFObject &Obj = Dwarf.getDWARFObj(); @@ -384,8 +429,8 @@ void ObjFile::initializeSections( // have a SHF_LINK_ORDER dependency, this is identified by the sh_link. if (Sec.sh_flags & SHF_LINK_ORDER) { if (Sec.sh_link >= this->Sections.size()) - fatal(toString(this) + ": invalid sh_link index: " + - Twine(Sec.sh_link)); + fatal(toString(this) + + ": invalid sh_link index: " + Twine(Sec.sh_link)); this->Sections[Sec.sh_link]->DependentSections.push_back( cast(this->Sections[I])); } @@ -454,11 +499,9 @@ InputSectionBase *ObjFile::getRelocTarget(const // Create a regular InputSection class that has the same contents // as a given section. -InputSectionBase *toRegularSection(MergeInputSection *Sec) { - auto *Ret = make(Sec->Flags, Sec->Type, Sec->Alignment, - Sec->Data, Sec->Name); - Ret->File = Sec->File; - return Ret; +static InputSection *toRegularSection(MergeInputSection *Sec) { + return make(Sec->File, Sec->Flags, Sec->Type, Sec->Alignment, + Sec->Data, Sec->Name); } template @@ -471,13 +514,13 @@ InputSectionBase *ObjFile::createInputSection(co break; ARMAttributeParser Attributes; ArrayRef Contents = check(this->getObj().getSectionContents(&Sec)); - Attributes.Parse(Contents, /*isLittle*/Config->EKind == ELF32LEKind); + Attributes.Parse(Contents, /*isLittle*/ Config->EKind == ELF32LEKind); updateSupportedARMFeatures(Attributes); // FIXME: Retain the first attribute section we see. The eglibc ARM // dynamic loaders require the presence of an attribute section for dlopen // to work. In a full implementation we would merge all attribute sections. if (InX::ARMAttributes == nullptr) { - InX::ARMAttributes = make(this, &Sec, Name); + InX::ARMAttributes = make(*this, Sec, Name); return InX::ARMAttributes; } return &InputSection::Discarded; @@ -496,7 +539,7 @@ InputSectionBase *ObjFile::createInputSection(co // If -r is given, we do not interpret or apply relocation // but just copy relocation sections to output. if (Config->Relocatable) - return make(this, &Sec, Name); + return make(*this, Sec, Name); if (Target->FirstRelocation) fatal(toString(this) + @@ -534,7 +577,7 @@ InputSectionBase *ObjFile::createInputSection(co // However, if -emit-relocs is given, we need to leave them in the output. // (Some post link analysis tools need this information.) if (Config->EmitRelocs) { - InputSection *RelocSec = make(this, &Sec, Name); + InputSection *RelocSec = make(*this, Sec, Name); // We will not emit relocation section if target was discarded. Target->DependentSections.push_back(RelocSec); return RelocSec; @@ -581,11 +624,11 @@ InputSectionBase *ObjFile::createInputSection(co // .eh_frame_hdr section for runtime. So we handle them with a special // class. For relocatable outputs, they are just passed through. if (Name == ".eh_frame" && !Config->Relocatable) - return make(this, &Sec, Name); + return make(*this, Sec, Name); if (shouldMerge(Sec)) - return make(this, &Sec, Name); - return make(this, &Sec, Name); + return make(*this, Sec, Name); + return make(*this, Sec, Name); } template @@ -636,7 +679,7 @@ template Symbol *ObjFile::createSym if (Value == 0 || Value >= UINT32_MAX) fatal(toString(this) + ": common symbol '" + Name + "' has invalid alignment: " + Twine(Value)); - return Symtab->addCommon(Name, Size, Value, Binding, StOther, Type, this); + return Symtab->addCommon(Name, Size, Value, Binding, StOther, Type, *this); } switch (Binding) { @@ -648,8 +691,8 @@ template Symbol *ObjFile::createSym if (Sec == &InputSection::Discarded) return Symtab->addUndefined(Name, Binding, StOther, Type, /*CanOmitFromDynSym=*/false, this); - return Symtab->addRegular(Name, StOther, Type, Value, Size, Binding, - Sec, this); + return Symtab->addRegular(Name, StOther, Type, Value, Size, Binding, Sec, + this); } } @@ -660,7 +703,7 @@ ArchiveFile::ArchiveFile(std::unique_ptr &&Fi template void ArchiveFile::parse() { Symbols.reserve(File->getNumberOfSymbols()); for (const Archive::Symbol &Sym : File->symbols()) - Symbols.push_back(Symtab->addLazyArchive(Sym.getName(), this, Sym)); + Symbols.push_back(Symtab->addLazyArchive(Sym.getName(), *this, Sym)); } // Returns a buffer pointing to a member file containing a given symbol. @@ -841,14 +884,14 @@ template void SharedFile::parseRest error(toString(this) + ": alignment too large: " + Name); if (!Hidden) - Symtab->addShared(Name, this, Sym, Alignment, VersymIndex); + Symtab->addShared(Name, *this, Sym, Alignment, VersymIndex); // Also add the symbol with the versioned name to handle undefined symbols // with explicit versions. if (Ver) { StringRef VerName = this->StringTable.data() + Ver->getAux()->vda_name; Name = Saver.save(Name + "@" + VerName); - Symtab->addShared(Name, this, Sym, Alignment, VersymIndex); + Symtab->addShared(Name, *this, Sym, Alignment, VersymIndex); } } } @@ -925,7 +968,7 @@ static uint8_t mapVisibility(GlobalValue::VisibilityTy template static Symbol *createBitcodeSymbol(const std::vector &KeptComdats, const lto::InputFile::Symbol &ObjSym, - BitcodeFile *F) { + BitcodeFile &F) { StringRef NameRef = Saver.save(ObjSym.getName()); uint32_t Binding = ObjSym.isWeak() ? STB_WEAK : STB_GLOBAL; @@ -936,11 +979,11 @@ static Symbol *createBitcodeSymbol(const std::vectoraddUndefined(NameRef, Binding, Visibility, Type, - CanOmitFromDynSym, F); + CanOmitFromDynSym, &F); if (ObjSym.isUndefined()) return Symtab->addUndefined(NameRef, Binding, Visibility, Type, - CanOmitFromDynSym, F); + CanOmitFromDynSym, &F); if (ObjSym.isCommon()) return Symtab->addCommon(NameRef, ObjSym.getCommonSize(), @@ -958,7 +1001,7 @@ void BitcodeFile::parse(DenseSet KeptComdats.push_back(ComdatGroups.insert(CachedHashStringRef(S)).second); for (const lto::InputFile::Symbol &ObjSym : Obj->symbols()) - Symbols.push_back(createBitcodeSymbol(KeptComdats, ObjSym, this)); + Symbols.push_back(createBitcodeSymbol(KeptComdats, ObjSym, *this)); } static ELFKind getELFKind(MemoryBufferRef MB) { @@ -981,10 +1024,10 @@ static ELFKind getELFKind(MemoryBufferRef MB) { return (Endian == ELFDATA2LSB) ? ELF64LEKind : ELF64BEKind; } -template void BinaryFile::parse() { +void BinaryFile::parse() { ArrayRef Data = toArrayRef(MB.getBuffer()); - auto *Section = - make(SHF_ALLOC | SHF_WRITE, SHT_PROGBITS, 8, Data, ".data"); + auto *Section = make(nullptr, SHF_ALLOC | SHF_WRITE, + SHT_PROGBITS, 8, Data, ".data"); Sections.push_back(Section); // For each input file foo that is embedded to a result as a binary @@ -996,12 +1039,12 @@ template void BinaryFile::parse() { if (!isAlnum(S[I])) S[I] = '_'; - Symtab->addRegular(Saver.save(S + "_start"), STV_DEFAULT, STT_OBJECT, - 0, 0, STB_GLOBAL, Section, nullptr); - Symtab->addRegular(Saver.save(S + "_end"), STV_DEFAULT, STT_OBJECT, - Data.size(), 0, STB_GLOBAL, Section, nullptr); - Symtab->addRegular(Saver.save(S + "_size"), STV_DEFAULT, STT_OBJECT, - Data.size(), 0, STB_GLOBAL, nullptr, nullptr); + Symtab->addRegular(Saver.save(S + "_start"), STV_DEFAULT, STT_OBJECT, 0, 0, + STB_GLOBAL, Section, nullptr); + Symtab->addRegular(Saver.save(S + "_end"), STV_DEFAULT, STT_OBJECT, + Data.size(), 0, STB_GLOBAL, Section, nullptr); + Symtab->addRegular(Saver.save(S + "_size"), STV_DEFAULT, STT_OBJECT, + Data.size(), 0, STB_GLOBAL, nullptr, nullptr); } static bool isBitcode(MemoryBufferRef MB) { @@ -1145,8 +1188,3 @@ template class elf::SharedFile; template class elf::SharedFile; template class elf::SharedFile; template class elf::SharedFile; - -template void BinaryFile::parse(); -template void BinaryFile::parse(); -template void BinaryFile::parse(); -template void BinaryFile::parse(); Modified: projects/clang600-import/contrib/llvm/tools/lld/ELF/InputFiles.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lld/ELF/InputFiles.h Sun Dec 24 01:08:34 2017 (r327135) +++ projects/clang600-import/contrib/llvm/tools/lld/ELF/InputFiles.h Sun Dec 24 01:11:19 2017 (r327136) @@ -72,6 +72,11 @@ class InputFile { (public) Kind kind() const { return FileKind; } + bool isElf() const { + Kind K = kind(); + return K == ObjKind || K == SharedKind; + } + StringRef getName() const { return MB.getBufferIdentifier(); } MemoryBufferRef MB; @@ -104,6 +109,9 @@ class InputFile { (public) // Cache for toString(). Only toString() should use this member. mutable std::string ToStringCache; + std::string getSrcMsg(const Symbol &Sym, InputSectionBase &Sec, + uint64_t Offset); + protected: InputFile(Kind K, MemoryBufferRef M); std::vector Sections; @@ -121,10 +129,7 @@ template class ELFFileBase : public In typedef typename ELFT::SymRange Elf_Sym_Range; ELFFileBase(Kind K, MemoryBufferRef M); - static bool classof(const InputFile *F) { - Kind K = F->kind(); - return K == ObjKind || K == SharedKind; - } + static bool classof(const InputFile *F) { return F->isElf(); } llvm::object::ELFFile getObj() const { return check(llvm::object::ELFFile::create(MB.getBuffer())); @@ -325,7 +330,7 @@ class BinaryFile : public InputFile { public: explicit BinaryFile(MemoryBufferRef M) : InputFile(BinaryKind, M) {} static bool classof(const InputFile *F) { return F->kind() == BinaryKind; } - template void parse(); + void parse(); }; InputFile *createObjectFile(MemoryBufferRef MB, StringRef ArchiveName = "", Modified: projects/clang600-import/contrib/llvm/tools/lld/ELF/InputSection.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lld/ELF/InputSection.cpp Sun Dec 24 01:08:34 2017 (r327135) +++ projects/clang600-import/contrib/llvm/tools/lld/ELF/InputSection.cpp Sun Dec 24 01:11:19 2017 (r327136) @@ -24,7 +24,6 @@ #include "llvm/Support/Compiler.h" #include "llvm/Support/Compression.h" #include "llvm/Support/Endian.h" -#include "llvm/Support/Path.h" #include "llvm/Support/Threading.h" #include "llvm/Support/xxhash.h" #include @@ -73,11 +72,11 @@ DenseMap elf::buildSectionOrder() } template -static ArrayRef getSectionContents(ObjFile *File, - const typename ELFT::Shdr *Hdr) { - if (!File || Hdr->sh_type == SHT_NOBITS) - return makeArrayRef(nullptr, Hdr->sh_size); - return check(File->getObj().getSectionContents(Hdr)); +static ArrayRef getSectionContents(ObjFile &File, + const typename ELFT::Shdr &Hdr) { + if (Hdr.sh_type == SHT_NOBITS) + return makeArrayRef(nullptr, Hdr.sh_size); + return check(File.getObj().getSectionContents(&Hdr)); } InputSectionBase::InputSectionBase(InputFile *File, uint64_t Flags, @@ -88,6 +87,12 @@ InputSectionBase::InputSectionBase(InputFile *File, ui : SectionBase(SectionKind, Name, Flags, Entsize, Alignment, Type, Info, Link), File(File), Data(Data) { + // In order to reduce memory allocation, we assume that mergeable + // sections are smaller than 4 GiB, which is not an unreasonable + // assumption as of 2017. + if (SectionKind == SectionBase::Merge && Data.size() > UINT32_MAX) + error(toString(this) + ": section too large"); + NumRelocations = 0; AreRelocsRela = false; @@ -128,18 +133,18 @@ static uint64_t getType(uint64_t Type, StringRef Name) } template -InputSectionBase::InputSectionBase(ObjFile *File, - const typename ELFT::Shdr *Hdr, +InputSectionBase::InputSectionBase(ObjFile &File, + const typename ELFT::Shdr &Hdr, StringRef Name, Kind SectionKind) - : InputSectionBase(File, getFlags(Hdr->sh_flags), - getType(Hdr->sh_type, Name), Hdr->sh_entsize, - Hdr->sh_link, Hdr->sh_info, Hdr->sh_addralign, + : InputSectionBase(&File, getFlags(Hdr.sh_flags), + getType(Hdr.sh_type, Name), Hdr.sh_entsize, Hdr.sh_link, + Hdr.sh_info, Hdr.sh_addralign, getSectionContents(File, Hdr), Name, SectionKind) { // We reject object files having insanely large alignments even though // they are allowed by the spec. I think 4GB is a reasonable limitation. // We might want to relax this in the future. - if (Hdr->sh_addralign > UINT32_MAX) - fatal(toString(File) + ": section sh_addralign is too large"); + if (Hdr.sh_addralign > UINT32_MAX) + fatal(toString(&File) + ": section sh_addralign is too large"); } size_t InputSectionBase::getSize() const { @@ -211,8 +216,8 @@ void InputSectionBase::maybeUncompress() { fatal(toString(this) + ": decompress failed: " + llvm::toString(std::move(E))); - this->Data = makeArrayRef((uint8_t *)UncompressBuf.get(), Size); - this->Flags &= ~(uint64_t)SHF_COMPRESSED; + Data = makeArrayRef((uint8_t *)UncompressBuf.get(), Size); + Flags &= ~(uint64_t)SHF_COMPRESSED; } InputSection *InputSectionBase::getLinkOrderDep() const { @@ -257,40 +262,17 @@ std::string InputSectionBase::getLocation(uint64_t Off return (SrcFile + ":(" + Name + "+0x" + utohexstr(Offset) + ")").str(); } -// Concatenates arguments to construct a string representing an error location. -static std::string createFileLineMsg(StringRef Path, unsigned Line) { - std::string Filename = path::filename(Path); - std::string Lineno = ":" + std::to_string(Line); - if (Filename == Path) - return Filename + Lineno; - return Filename + Lineno + " (" + Path.str() + Lineno + ")"; -} - // This function is intended to be used for constructing an error message. // The returned message looks like this: // // foo.c:42 (/home/alice/possibly/very/long/path/foo.c:42) // // Returns an empty string if there's no way to get line info. -template std::string InputSectionBase::getSrcMsg(const Symbol &Sym, uint64_t Offset) { // Synthetic sections don't have input files. - ObjFile *File = getFile(); if (!File) return ""; - - // In DWARF, functions and variables are stored to different places. - // First, lookup a function for a given offset. - if (Optional Info = File->getDILineInfo(this, Offset)) - return createFileLineMsg(Info->FileName, Info->Line); - - // If it failed, lookup again as a variable. - if (Optional> FileLine = - File->getVariableLoc(Sym.getName())) - return createFileLineMsg(FileLine->first, FileLine->second); - - // File->SourceFile contains STT_FILE symbol, and that is a last resort. - return File->SourceFile; + return File->getSrcMsg(Sym, *this, Offset); } // Returns a filename string along with an optional section name. This @@ -323,16 +305,17 @@ std::string InputSectionBase::getObjMsg(uint64_t Off) .str(); } -InputSection InputSection::Discarded(0, 0, 0, ArrayRef(), ""); +InputSection InputSection::Discarded(nullptr, 0, 0, 0, ArrayRef(), ""); -InputSection::InputSection(uint64_t Flags, uint32_t Type, uint32_t Alignment, - ArrayRef Data, StringRef Name, Kind K) - : InputSectionBase(nullptr, Flags, Type, +InputSection::InputSection(InputFile *F, uint64_t Flags, uint32_t Type, + uint32_t Alignment, ArrayRef Data, + StringRef Name, Kind K) + : InputSectionBase(F, Flags, Type, /*Entsize*/ 0, /*Link*/ 0, /*Info*/ 0, Alignment, Data, Name, K) {} template -InputSection::InputSection(ObjFile *F, const typename ELFT::Shdr *Header, +InputSection::InputSection(ObjFile &F, const typename ELFT::Shdr &Header, StringRef Name) : InputSectionBase(F, Header, Name, InputSectionBase::Regular) {} @@ -357,15 +340,15 @@ template void InputSection::copyShtGroup( // Adjust section numbers because section numbers in an input object // files are different in the output. - ArrayRef Sections = this->File->getSections(); + ArrayRef Sections = File->getSections(); for (uint32_t Idx : From.slice(1)) *To++ = Sections[Idx]->getOutputSection()->SectionIndex; } InputSectionBase *InputSection::getRelocatedSection() { - assert(this->Type == SHT_RELA || this->Type == SHT_REL); - ArrayRef Sections = this->File->getSections(); - return Sections[this->Info]; + assert(Type == SHT_RELA || Type == SHT_REL); + ArrayRef Sections = File->getSections(); + return Sections[Info]; } // This is used for -r and --emit-relocs. We can't use memcpy to copy @@ -377,7 +360,7 @@ void InputSection::copyRelocations(uint8_t *Buf, Array for (const RelTy &Rel : Rels) { RelType Type = Rel.getType(Config->IsMips64EL); - Symbol &Sym = this->getFile()->getRelocTargetSym(Rel); + Symbol &Sym = getFile()->getRelocTargetSym(Rel); auto *P = reinterpret_cast(Buf); Buf += sizeof(RelTy); @@ -679,7 +662,7 @@ void InputSection::relocateNonAlloc(uint8_t *Buf, Arra if (!RelTy::IsRela) Addend += Target->getImplicitAddend(BufLoc, Type); - Symbol &Sym = this->getFile()->getRelocTargetSym(Rel); + Symbol &Sym = getFile()->getRelocTargetSym(Rel); RelExpr Expr = Target->getRelExpr(Type, Sym, BufLoc); if (Expr == R_NONE) continue; @@ -691,7 +674,7 @@ void InputSection::relocateNonAlloc(uint8_t *Buf, Arra if (Config->EMachine == EM_386 && Type == R_386_GOTPC) continue; - error(this->getLocation(Offset) + ": has non-ABS relocation " + + error(getLocation(Offset) + ": has non-ABS relocation " + toString(Type) + " against symbol '" + toString(Sym) + "'"); return; } @@ -765,7 +748,7 @@ void InputSectionBase::relocateAlloc(uint8_t *Buf, uin } template void InputSection::writeTo(uint8_t *Buf) { - if (this->Type == SHT_NOBITS) + if (Type == SHT_NOBITS) return; if (auto *S = dyn_cast(this)) { @@ -775,19 +758,17 @@ template void InputSection::writeTo(uint8 // If -r or --emit-relocs is given, then an InputSection // may be a relocation section. - if (this->Type == SHT_RELA) { - copyRelocations(Buf + OutSecOff, - this->template getDataAs()); + if (Type == SHT_RELA) { + copyRelocations(Buf + OutSecOff, getDataAs()); return; } - if (this->Type == SHT_REL) { - copyRelocations(Buf + OutSecOff, - this->template getDataAs()); + if (Type == SHT_REL) { + copyRelocations(Buf + OutSecOff, getDataAs()); return; } // If -r is given, we may have a SHT_GROUP section. - if (this->Type == SHT_GROUP) { + if (Type == SHT_GROUP) { copyShtGroup(Buf + OutSecOff); return; } @@ -796,18 +777,18 @@ template void InputSection::writeTo(uint8 // and then apply relocations. memcpy(Buf + OutSecOff, Data.data(), Data.size()); uint8_t *BufEnd = Buf + OutSecOff + Data.size(); - this->relocate(Buf, BufEnd); + relocate(Buf, BufEnd); } void InputSection::replace(InputSection *Other) { - this->Alignment = std::max(this->Alignment, Other->Alignment); - Other->Repl = this->Repl; + Alignment = std::max(Alignment, Other->Alignment); + Other->Repl = Repl; Other->Live = false; } template -EhInputSection::EhInputSection(ObjFile *F, - const typename ELFT::Shdr *Header, +EhInputSection::EhInputSection(ObjFile &F, + const typename ELFT::Shdr &Header, StringRef Name) : InputSectionBase(F, Header, Name, InputSectionBase::EHFrame) {} @@ -838,22 +819,21 @@ static unsigned getReloc(IntTy Begin, IntTy Size, cons // This function splits an input section into records and returns them. template void EhInputSection::split() { // Early exit if already split. - if (!this->Pieces.empty()) + if (!Pieces.empty()) return; - if (this->AreRelocsRela) - split(this->relas()); + if (AreRelocsRela) + split(relas()); else - split(this->rels()); + split(rels()); } template void EhInputSection::split(ArrayRef Rels) { - ArrayRef Data = this->Data; unsigned RelI = 0; for (size_t Off = 0, End = Data.size(); Off != End;) { size_t Size = readEhRecordSize(this, Off); - this->Pieces.emplace_back(Off, this, Size, getReloc(Off, Size, Rels, RelI)); + Pieces.emplace_back(Off, this, Size, getReloc(Off, Size, Rels, RelI)); // The empty record is the end marker. if (Size == 4) break; @@ -882,7 +862,7 @@ SyntheticSection *MergeInputSection::getParent() const // null-terminated strings. void MergeInputSection::splitStrings(ArrayRef Data, size_t EntSize) { size_t Off = 0; - bool IsAlloc = this->Flags & SHF_ALLOC; + bool IsAlloc = Flags & SHF_ALLOC; StringRef S = toStringRef(Data); while (!S.empty()) { @@ -903,7 +883,7 @@ void MergeInputSection::splitNonStrings(ArrayRefFlags & SHF_ALLOC; + bool IsAlloc = Flags & SHF_ALLOC; for (size_t I = 0; I != Size; I += EntSize) Pieces.emplace_back(I, xxHash64(toStringRef(Data.slice(I, EntSize))), @@ -911,17 +891,17 @@ void MergeInputSection::splitNonStrings(ArrayRef -MergeInputSection::MergeInputSection(ObjFile *F, - const typename ELFT::Shdr *Header, +MergeInputSection::MergeInputSection(ObjFile &F, + const typename ELFT::Shdr &Header, StringRef Name) - : InputSectionBase(F, Header, Name, InputSectionBase::Merge) { - // In order to reduce memory allocation, we assume that mergeable - // sections are smaller than 4 GiB, which is not an unreasonable - // assumption as of 2017. - if (Data.size() > UINT32_MAX) - error(toString(this) + ": section too large"); -} + : InputSectionBase(F, Header, Name, InputSectionBase::Merge) {} +MergeInputSection::MergeInputSection(uint64_t Flags, uint32_t Type, + uint64_t Entsize, ArrayRef Data, + StringRef Name) + : InputSectionBase(nullptr, Flags, Type, Entsize, /*Link*/ 0, /*Info*/ 0, + /*Alignment*/ Entsize, Data, Name, SectionBase::Merge) {} + // This function is called after we obtain a complete list of input sections // that need to be linked. This is responsible to split section contents // into small chunks for further processing. @@ -931,14 +911,14 @@ MergeInputSection::MergeInputSection(ObjFile *F, void MergeInputSection::splitIntoPieces() { assert(Pieces.empty()); - if (this->Flags & SHF_STRINGS) + if (Flags & SHF_STRINGS) splitStrings(Data, Entsize); else splitNonStrings(Data, Entsize); - if (Config->GcSections && (this->Flags & SHF_ALLOC)) + if (Config->GcSections && (Flags & SHF_ALLOC)) for (uint64_t Off : LiveOffsets) - this->getSectionPiece(Off)->Live = true; + getSectionPiece(Off)->Live = true; } // Do binary search to get a section piece at a given input offset. @@ -993,7 +973,7 @@ uint64_t MergeInputSection::getOffset(uint64_t Offset) // If Offset is not at beginning of a section piece, it is not in the map. // In that case we need to search from the original section piece vector. - const SectionPiece &Piece = *this->getSectionPiece(Offset); + const SectionPiece &Piece = *getSectionPiece(Offset); if (!Piece.Live) return 0; @@ -1001,13 +981,13 @@ uint64_t MergeInputSection::getOffset(uint64_t Offset) return Piece.OutputOff + Addend; } -template InputSection::InputSection(ObjFile *, const ELF32LE::Shdr *, +template InputSection::InputSection(ObjFile &, const ELF32LE::Shdr &, StringRef); -template InputSection::InputSection(ObjFile *, const ELF32BE::Shdr *, +template InputSection::InputSection(ObjFile &, const ELF32BE::Shdr &, StringRef); -template InputSection::InputSection(ObjFile *, const ELF64LE::Shdr *, +template InputSection::InputSection(ObjFile &, const ELF64LE::Shdr &, StringRef); -template InputSection::InputSection(ObjFile *, const ELF64BE::Shdr *, +template InputSection::InputSection(ObjFile &, const ELF64BE::Shdr &, StringRef); template std::string InputSectionBase::getLocation(uint64_t); @@ -1015,37 +995,28 @@ template std::string InputSectionBase::getLocation(uint64_t); template std::string InputSectionBase::getLocation(uint64_t); -template std::string InputSectionBase::getSrcMsg(const Symbol &, - uint64_t); -template std::string InputSectionBase::getSrcMsg(const Symbol &, - uint64_t); -template std::string InputSectionBase::getSrcMsg(const Symbol &, - uint64_t); -template std::string InputSectionBase::getSrcMsg(const Symbol &, - uint64_t); - template void InputSection::writeTo(uint8_t *); template void InputSection::writeTo(uint8_t *); template void InputSection::writeTo(uint8_t *); template void InputSection::writeTo(uint8_t *); -template MergeInputSection::MergeInputSection(ObjFile *, - const ELF32LE::Shdr *, StringRef); -template MergeInputSection::MergeInputSection(ObjFile *, - const ELF32BE::Shdr *, StringRef); -template MergeInputSection::MergeInputSection(ObjFile *, - const ELF64LE::Shdr *, StringRef); -template MergeInputSection::MergeInputSection(ObjFile *, - const ELF64BE::Shdr *, StringRef); +template MergeInputSection::MergeInputSection(ObjFile &, + const ELF32LE::Shdr &, StringRef); +template MergeInputSection::MergeInputSection(ObjFile &, + const ELF32BE::Shdr &, StringRef); +template MergeInputSection::MergeInputSection(ObjFile &, + const ELF64LE::Shdr &, StringRef); +template MergeInputSection::MergeInputSection(ObjFile &, + const ELF64BE::Shdr &, StringRef); -template EhInputSection::EhInputSection(ObjFile *, - const ELF32LE::Shdr *, StringRef); -template EhInputSection::EhInputSection(ObjFile *, - const ELF32BE::Shdr *, StringRef); -template EhInputSection::EhInputSection(ObjFile *, - const ELF64LE::Shdr *, StringRef); -template EhInputSection::EhInputSection(ObjFile *, - const ELF64BE::Shdr *, StringRef); +template EhInputSection::EhInputSection(ObjFile &, + const ELF32LE::Shdr &, StringRef); +template EhInputSection::EhInputSection(ObjFile &, + const ELF32BE::Shdr &, StringRef); +template EhInputSection::EhInputSection(ObjFile &, + const ELF64LE::Shdr &, StringRef); +template EhInputSection::EhInputSection(ObjFile &, + const ELF64BE::Shdr &, StringRef); template void EhInputSection::split(); template void EhInputSection::split(); Modified: projects/clang600-import/contrib/llvm/tools/lld/ELF/InputSection.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lld/ELF/InputSection.h Sun Dec 24 01:08:34 2017 (r327135) +++ projects/clang600-import/contrib/llvm/tools/lld/ELF/InputSection.h Sun Dec 24 01:11:19 2017 (r327136) @@ -93,7 +93,7 @@ class SectionBase { (protected) class InputSectionBase : public SectionBase { public: template - InputSectionBase(ObjFile *File, const typename ELFT::Shdr *Header, + InputSectionBase(ObjFile &File, const typename ELFT::Shdr &Header, StringRef Name, Kind SectionKind); InputSectionBase(InputFile *File, uint64_t Flags, uint32_t Type, @@ -168,7 +168,6 @@ class InputSectionBase : public SectionBase { (public) // Returns a source location string. Used to construct an error message. template std::string getLocation(uint64_t Offset); - template std::string getSrcMsg(const Symbol &Sym, uint64_t Offset); std::string getObjMsg(uint64_t Offset); @@ -216,8 +215,11 @@ static_assert(sizeof(SectionPiece) == 16, "SectionPiec class MergeInputSection : public InputSectionBase { public: template - MergeInputSection(ObjFile *F, const typename ELFT::Shdr *Header, + MergeInputSection(ObjFile &F, const typename ELFT::Shdr &Header, StringRef Name); + MergeInputSection(uint64_t Flags, uint32_t Type, uint64_t Entsize, + ArrayRef Data, StringRef Name); + static bool classof(const SectionBase *S) { return S->kind() == Merge; } void splitIntoPieces(); @@ -279,7 +281,7 @@ struct EhSectionPiece { class EhInputSection : public InputSectionBase { public: template - EhInputSection(ObjFile *F, const typename ELFT::Shdr *Header, + EhInputSection(ObjFile &F, const typename ELFT::Shdr &Header, StringRef Name); static bool classof(const SectionBase *S) { return S->kind() == EHFrame; } template void split(); @@ -298,10 +300,10 @@ class EhInputSection : public InputSectionBase { (publ // .eh_frame. It also includes the synthetic sections themselves. class InputSection : public InputSectionBase { public: - InputSection(uint64_t Flags, uint32_t Type, uint32_t Alignment, + InputSection(InputFile *F, uint64_t Flags, uint32_t Type, uint32_t Alignment, ArrayRef Data, StringRef Name, Kind K = Regular); template - InputSection(ObjFile *F, const typename ELFT::Shdr *Header, + InputSection(ObjFile &F, const typename ELFT::Shdr &Header, StringRef Name); // Write this section to a mmap'ed file, assuming Buf is pointing to Modified: projects/clang600-import/contrib/llvm/tools/lld/ELF/MarkLive.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lld/ELF/MarkLive.cpp Sun Dec 24 01:08:34 2017 (r327135) +++ projects/clang600-import/contrib/llvm/tools/lld/ELF/MarkLive.cpp Sun Dec 24 01:11:19 2017 (r327136) @@ -68,7 +68,7 @@ static void resolveReloc(InputSectionBase &Sec, RelT & B.Used = true; if (auto *SS = dyn_cast(&B)) if (!SS->isWeak()) - SS->getFile()->IsNeeded = true; + SS->getFile().IsNeeded = true; if (auto *D = dyn_cast(&B)) { auto *RelSec = dyn_cast_or_null(D->Section); @@ -246,7 +246,7 @@ template static void doGcSections() { // that point to .eh_frames. Otherwise, the garbage collector would drop // all of them. We also want to preserve personality routines and LSDA // referenced by .eh_frame sections, so we scan them for that here. - if (auto *EH = dyn_cast_or_null(Sec)) { + if (auto *EH = dyn_cast(Sec)) { EH->Live = true; scanEhFrameSection(*EH, Enqueue); } Modified: projects/clang600-import/contrib/llvm/tools/lld/ELF/Relocations.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lld/ELF/Relocations.cpp Sun Dec 24 01:08:34 2017 (r327135) +++ projects/clang600-import/contrib/llvm/tools/lld/ELF/Relocations.cpp Sun Dec 24 01:11:19 2017 (r327136) @@ -70,12 +70,11 @@ using namespace lld::elf; // >>> defined in /home/alice/src/foo.o // >>> referenced by bar.c:12 (/home/alice/src/bar.c:12) // >>> /home/alice/src/bar.o:(.text+0x1) -template static std::string getLocation(InputSectionBase &S, const Symbol &Sym, uint64_t Off) { std::string Msg = "\n>>> defined in " + toString(Sym.File) + "\n>>> referenced by "; - std::string Src = S.getSrcMsg(Sym, Off); + std::string Src = S.getSrcMsg(Sym, Off); if (!Src.empty()) Msg += Src + "\n>>> "; return Msg + S.getObjMsg(Off); @@ -365,7 +364,6 @@ static bool isRelExpr(RelExpr Expr) { // // If this function returns false, that means we need to emit a // dynamic relocation so that the relocation will be fixed at load-time. -template static bool isStaticLinkTimeConstant(RelExpr E, RelType Type, const Symbol &Sym, InputSectionBase &S, uint64_t RelOff) { // These expressions always compute a constant @@ -410,7 +408,7 @@ static bool isStaticLinkTimeConstant(RelExpr E, RelTyp return true; error("relocation " + toString(Type) + " cannot refer to absolute symbol: " + - toString(Sym) + getLocation(S, Sym, RelOff)); + toString(Sym) + getLocation(S, Sym, RelOff)); return true; } @@ -443,8 +441,8 @@ template static bool isReadOnly(SharedSym typedef typename ELFT::Phdr Elf_Phdr; // Determine if the symbol is read-only by scanning the DSO's program headers. - const SharedFile *File = SS->getFile(); - for (const Elf_Phdr &Phdr : check(File->getObj().program_headers())) + const SharedFile &File = SS->getFile(); + for (const Elf_Phdr &Phdr : check(File.getObj().program_headers())) if ((Phdr.p_type == ELF::PT_LOAD || Phdr.p_type == ELF::PT_GNU_RELRO) && !(Phdr.p_flags & ELF::PF_W) && SS->Value >= Phdr.p_vaddr && SS->Value < Phdr.p_vaddr + Phdr.p_memsz) @@ -461,14 +459,14 @@ template static std::vector getSymbolsAt(SharedSymbol *SS) { typedef typename ELFT::Sym Elf_Sym; - SharedFile *File = SS->getFile(); + SharedFile &File = SS->getFile(); std::vector Ret; - for (const Elf_Sym &S : File->getGlobalELFSyms()) { + for (const Elf_Sym &S : File.getGlobalELFSyms()) { if (S.st_shndx == SHN_UNDEF || S.st_shndx == SHN_ABS || S.st_value != SS->Value) continue; - StringRef Name = check(S.getName(File->getStringTable())); + StringRef Name = check(S.getName(File.getStringTable())); Symbol *Sym = Symtab->find(Name); if (auto *Alias = dyn_cast_or_null(Sym)) Ret.push_back(Alias); @@ -554,22 +552,57 @@ static void errorOrWarn(const Twine &Msg) { warn(Msg); } +// Returns PLT relocation expression. +// +// This handles a non PIC program call to function in a shared library. In +// an ideal world, we could just report an error saying the relocation can +// overflow at runtime. In the real world with glibc, crt1.o has a +// R_X86_64_PC32 pointing to libc.so. +// +// The general idea on how to handle such cases is to create a PLT entry and +// use that as the function value. +// +// For the static linking part, we just return a plt expr and everything +// else will use the the PLT entry as the address. +// +// The remaining problem is making sure pointer equality still works. We +// need the help of the dynamic linker for that. We let it know that we have +// a direct reference to a so symbol by creating an undefined symbol with a +// non zero st_value. Seeing that, the dynamic linker resolves the symbol to +// the value of the symbol we created. This is true even for got entries, so +// pointer equality is maintained. To avoid an infinite loop, the only entry +// that points to the real function is a dedicated got entry used by the +// plt. That is identified by special relocation types (R_X86_64_JUMP_SLOT, +// R_386_JMP_SLOT, etc). +static RelExpr getPltExpr(Symbol &Sym, RelExpr Expr, bool &IsConstant) { + Sym.NeedsPltAddr = true; + Sym.IsPreemptible = false; + IsConstant = true; + return toPlt(Expr); +} + template static RelExpr adjustExpr(Symbol &Sym, RelExpr Expr, RelType Type, - InputSectionBase &S, uint64_t RelOff) { + InputSectionBase &S, uint64_t RelOff, + bool &IsConstant) { // We can create any dynamic relocation if a section is simply writable. if (S.Flags & SHF_WRITE) return Expr; // Or, if we are allowed to create dynamic relocations against - // read-only sections (i.e. unless "-z notext" is given), + // read-only sections (i.e. when "-z notext" is given), // we can create a dynamic relocation as we want, too. - if (!Config->ZText) + if (!Config->ZText) { + // We use PLT for relocations that may overflow in runtime, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Dec 24 01:15:16 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20557E89BD1 for ; Sun, 24 Dec 2017 01:15:16 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9D7C9804E3; Sun, 24 Dec 2017 01:15:15 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBO1FEf1082745; Sun, 24 Dec 2017 01:15:14 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBO1FCnB082724; Sun, 24 Dec 2017 01:15:12 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712240115.vBO1FCnB082724@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 01:15:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327138 - in projects/clang600-import/contrib/compiler-rt: include/sanitizer lib/builtins/aarch64 lib/hwasan lib/msan lib/profile lib/sanitizer_common lib/tsan/rtl lib/ubsan X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import/contrib/compiler-rt: include/sanitizer lib/builtins/aarch64 lib/hwasan lib/msan lib/profile lib/sanitizer_common lib/tsan/rtl lib/ubsan X-SVN-Commit-Revision: 327138 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 01:15:16 -0000 Author: dim Date: Sun Dec 24 01:15:12 2017 New Revision: 327138 URL: https://svnweb.freebsd.org/changeset/base/327138 Log: Merge compiler-rt trunk r321414 to contrib/compiler-rt. Added: projects/clang600-import/contrib/compiler-rt/lib/builtins/aarch64/ - copied from r327137, vendor/compiler-rt/dist/lib/builtins/aarch64/ projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sancov_begin.S - copied unchanged from r327137, vendor/compiler-rt/dist/lib/sanitizer_common/sancov_begin.S projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sancov_end.S - copied unchanged from r327137, vendor/compiler-rt/dist/lib/sanitizer_common/sancov_end.S projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_mips.h - copied unchanged from r327137, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_atomic_clang_mips.h Modified: projects/clang600-import/contrib/compiler-rt/include/sanitizer/allocator_interface.h projects/clang600-import/contrib/compiler-rt/include/sanitizer/asan_interface.h projects/clang600-import/contrib/compiler-rt/include/sanitizer/common_interface_defs.h projects/clang600-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h projects/clang600-import/contrib/compiler-rt/include/sanitizer/esan_interface.h projects/clang600-import/contrib/compiler-rt/include/sanitizer/hwasan_interface.h projects/clang600-import/contrib/compiler-rt/include/sanitizer/lsan_interface.h projects/clang600-import/contrib/compiler-rt/include/sanitizer/msan_interface.h projects/clang600-import/contrib/compiler-rt/include/sanitizer/scudo_interface.h projects/clang600-import/contrib/compiler-rt/lib/hwasan/hwasan.cc projects/clang600-import/contrib/compiler-rt/lib/hwasan/hwasan_interface_internal.h projects/clang600-import/contrib/compiler-rt/lib/hwasan/hwasan_linux.cc projects/clang600-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc projects/clang600-import/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang.h projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h projects/clang600-import/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc projects/clang600-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc Directory Properties: projects/clang600-import/contrib/compiler-rt/ (props changed) Modified: projects/clang600-import/contrib/compiler-rt/include/sanitizer/allocator_interface.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/include/sanitizer/allocator_interface.h Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/include/sanitizer/allocator_interface.h Sun Dec 24 01:15:12 2017 (r327138) @@ -32,7 +32,7 @@ extern "C" { size_t __sanitizer_get_allocated_size(const volatile void *p); /* Number of bytes, allocated and not yet freed by the application. */ - size_t __sanitizer_get_current_allocated_bytes(); + size_t __sanitizer_get_current_allocated_bytes(void); /* Number of bytes, mmaped by the allocator to fulfill allocation requests. Generally, for request of X bytes, allocator can reserve and add to free @@ -40,17 +40,17 @@ extern "C" { All these chunks count toward the heap size. Currently, allocator never releases memory to OS (instead, it just puts freed chunks to free lists). */ - size_t __sanitizer_get_heap_size(); + size_t __sanitizer_get_heap_size(void); /* Number of bytes, mmaped by the allocator, which can be used to fulfill allocation requests. When a user program frees memory chunk, it can first fall into quarantine and will count toward __sanitizer_get_free_bytes() later. */ - size_t __sanitizer_get_free_bytes(); + size_t __sanitizer_get_free_bytes(void); /* Number of bytes in unmapped pages, that are released to OS. Currently, always returns 0. */ - size_t __sanitizer_get_unmapped_bytes(); + size_t __sanitizer_get_unmapped_bytes(void); /* Malloc hooks that may be optionally provided by user. __sanitizer_malloc_hook(ptr, size) is called immediately after @@ -81,7 +81,7 @@ extern "C" { resources in attempt to reduce process RSS. Currently available with ASan only. */ - void __sanitizer_purge_allocator(); + void __sanitizer_purge_allocator(void); #ifdef __cplusplus } // extern "C" Modified: projects/clang600-import/contrib/compiler-rt/include/sanitizer/asan_interface.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/include/sanitizer/asan_interface.h Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/include/sanitizer/asan_interface.h Sun Dec 24 01:15:12 2017 (r327138) @@ -64,19 +64,19 @@ extern "C" { // Useful for calling from a debugger to get information about an ASan error. // Returns 1 if an error has been (or is being) reported, otherwise returns 0. - int __asan_report_present(); + int __asan_report_present(void); // Useful for calling from a debugger to get information about an ASan error. // If an error has been (or is being) reported, the following functions return // the pc, bp, sp, address, access type (0 = read, 1 = write), access size and // bug description (e.g. "heap-use-after-free"). Otherwise they return 0. - void *__asan_get_report_pc(); - void *__asan_get_report_bp(); - void *__asan_get_report_sp(); - void *__asan_get_report_address(); - int __asan_get_report_access_type(); - size_t __asan_get_report_access_size(); - const char *__asan_get_report_description(); + void *__asan_get_report_pc(void); + void *__asan_get_report_bp(void); + void *__asan_get_report_sp(void); + void *__asan_get_report_address(void); + int __asan_get_report_access_type(void); + size_t __asan_get_report_access_size(void); + const char *__asan_get_report_description(void); // Useful for calling from the debugger to get information about a pointer. // Returns the category of the given pointer as a constant string. @@ -118,21 +118,21 @@ extern "C" { // User may provide function that would be called right when ASan detects // an error. This can be used to notice cases when ASan detects an error, but // the program crashes before ASan report is printed. - void __asan_on_error(); + void __asan_on_error(void); // Prints accumulated stats to stderr. Used for debugging. - void __asan_print_accumulated_stats(); + void __asan_print_accumulated_stats(void); // This function may be optionally provided by user and should return // a string containing ASan runtime options. See asan_flags.h for details. - const char* __asan_default_options(); + const char* __asan_default_options(void); // The following 2 functions facilitate garbage collection in presence of // asan's fake stack. // Returns an opaque handler to be used later in __asan_addr_is_in_fake_stack. // Returns NULL if the current thread does not have a fake stack. - void *__asan_get_current_fake_stack(); + void *__asan_get_current_fake_stack(void); // If fake_stack is non-NULL and addr belongs to a fake frame in // fake_stack, returns the address on real stack that corresponds to Modified: projects/clang600-import/contrib/compiler-rt/include/sanitizer/common_interface_defs.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Sun Dec 24 01:15:12 2017 (r327138) @@ -115,7 +115,7 @@ extern "C" { const void *beg, const void *mid, const void *end); // Print the stack trace leading to this call. Useful for debugging user code. - void __sanitizer_print_stack_trace(); + void __sanitizer_print_stack_trace(void); // Symbolizes the supplied 'pc' using the format string 'fmt'. // Outputs at most 'out_buf_size' bytes into 'out_buf'. Modified: projects/clang600-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/include/sanitizer/coverage_interface.h Sun Dec 24 01:15:12 2017 (r327138) @@ -20,10 +20,10 @@ extern "C" { #endif // Record and dump coverage info. - void __sanitizer_cov_dump(); + void __sanitizer_cov_dump(void); // Clear collected coverage info. - void __sanitizer_cov_reset(); + void __sanitizer_cov_reset(void); // Dump collected coverage info. Sorts pcs by module into individual .sancov // files. Modified: projects/clang600-import/contrib/compiler-rt/include/sanitizer/esan_interface.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/include/sanitizer/esan_interface.h Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/include/sanitizer/esan_interface.h Sun Dec 24 01:15:12 2017 (r327138) @@ -37,11 +37,11 @@ extern "C" { // This function can be called mid-run (or at the end of a run for // a server process that doesn't shut down normally) to request that // data for that point in the run be reported from the tool. -void COMPILER_RT_WEAK __esan_report(); +void COMPILER_RT_WEAK __esan_report(void); // This function returns the number of samples that the esan tool has collected // to this point. This is useful for testing. -unsigned int COMPILER_RT_WEAK __esan_get_sample_count(); +unsigned int COMPILER_RT_WEAK __esan_get_sample_count(void); #ifdef __cplusplus } // extern "C" Modified: projects/clang600-import/contrib/compiler-rt/include/sanitizer/hwasan_interface.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/include/sanitizer/hwasan_interface.h Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/include/sanitizer/hwasan_interface.h Sun Dec 24 01:15:12 2017 (r327138) @@ -21,10 +21,10 @@ extern "C" { #endif // This function may be optionally provided by user and should return // a string containing HWASan runtime options. See asan_flags.h for details. - const char* __hwasan_default_options(); + const char* __hwasan_default_options(void); - void __hwasan_enable_allocator_tagging(); - void __hwasan_disable_allocator_tagging(); + void __hwasan_enable_allocator_tagging(void); + void __hwasan_disable_allocator_tagging(void); #ifdef __cplusplus } // extern "C" Modified: projects/clang600-import/contrib/compiler-rt/include/sanitizer/lsan_interface.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/include/sanitizer/lsan_interface.h Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/include/sanitizer/lsan_interface.h Sun Dec 24 01:15:12 2017 (r327138) @@ -21,8 +21,8 @@ extern "C" { #endif // Allocations made between calls to __lsan_disable() and __lsan_enable() will // be treated as non-leaks. Disable/enable pairs may be nested. - void __lsan_disable(); - void __lsan_enable(); + void __lsan_disable(void); + void __lsan_enable(void); // The heap object into which p points will be treated as a non-leak. void __lsan_ignore_object(const void *p); @@ -49,7 +49,7 @@ extern "C" { // the time of first invocation of this function. // By calling this function early during process shutdown, you can instruct // LSan to ignore shutdown-only leaks which happen later on. - void __lsan_do_leak_check(); + void __lsan_do_leak_check(void); // Check for leaks now. Returns zero if no leaks have been found or if leak // detection is disabled, non-zero otherwise. @@ -58,7 +58,7 @@ extern "C" { // terminate the process. It does not affect the behavior of // __lsan_do_leak_check() or the end-of-process leak check, and is not // affected by them. - int __lsan_do_recoverable_leak_check(); + int __lsan_do_recoverable_leak_check(void); // The user may optionally provide this function to disallow leak checking // for the program it is linked into (if the return value is non-zero). This @@ -66,15 +66,15 @@ extern "C" { // that is unsupported. // To avoid dead stripping, you may need to define this function with // __attribute__((used)) - int __lsan_is_turned_off(); + int __lsan_is_turned_off(void); // This function may be optionally provided by user and should return // a string containing LSan runtime options. See lsan_flags.inc for details. - const char *__lsan_default_options(); + const char *__lsan_default_options(void); // This function may be optionally provided by the user and should return // a string containing LSan suppressions. - const char *__lsan_default_suppressions(); + const char *__lsan_default_suppressions(void); #ifdef __cplusplus } // extern "C" Modified: projects/clang600-import/contrib/compiler-rt/include/sanitizer/msan_interface.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/include/sanitizer/msan_interface.h Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/include/sanitizer/msan_interface.h Sun Dec 24 01:15:12 2017 (r327138) @@ -31,10 +31,10 @@ extern "C" { int __msan_origin_is_descendant_or_same(uint32_t this_id, uint32_t prev_id); /* Returns non-zero if tracking origins. */ - int __msan_get_track_origins(); + int __msan_get_track_origins(void); /* Returns the origin id of the latest UMR in the calling thread. */ - uint32_t __msan_get_umr_origin(); + uint32_t __msan_get_umr_origin(void); /* Make memory region fully initialized (without changing its contents). */ void __msan_unpoison(const volatile void *a, size_t size); @@ -82,7 +82,7 @@ extern "C" { void __msan_dump_shadow(const volatile void *x, size_t size); /* Returns true if running under a dynamic tool (DynamoRio-based). */ - int __msan_has_dynamic_component(); + int __msan_has_dynamic_component(void); /* Tell MSan about newly allocated memory (ex.: custom allocator). Memory will be marked uninitialized, with origin at the call site. */ @@ -93,7 +93,7 @@ extern "C" { /* This function may be optionally provided by user and should return a string containing Msan runtime options. See msan_flags.h for details. */ - const char* __msan_default_options(); + const char* __msan_default_options(void); /* Deprecated. Call __sanitizer_set_death_callback instead. */ void __msan_set_death_callback(void (*callback)(void)); Modified: projects/clang600-import/contrib/compiler-rt/include/sanitizer/scudo_interface.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/include/sanitizer/scudo_interface.h Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/include/sanitizer/scudo_interface.h Sun Dec 24 01:15:12 2017 (r327138) @@ -20,7 +20,7 @@ extern "C" { #endif // This function may be optionally provided by a user and should return // a string containing Scudo runtime options. See scudo_flags.h for details. - const char* __scudo_default_options(); + const char* __scudo_default_options(void); // This function allows to set the RSS limit at runtime. This can be either // the hard limit (HardLimit=1) or the soft limit (HardLimit=0). The limit Modified: projects/clang600-import/contrib/compiler-rt/lib/hwasan/hwasan.cc ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/hwasan/hwasan.cc Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/lib/hwasan/hwasan.cc Sun Dec 24 01:15:12 2017 (r327138) @@ -252,40 +252,112 @@ static void SigIll() { // __builtin_unreachable(); } -template -__attribute__((always_inline, nodebug)) -static void CheckAddress(uptr p) { +enum class ErrorAction { Abort, Recover }; +enum class AccessType { Load, Store }; + +template +__attribute__((always_inline, nodebug)) static void CheckAddress(uptr p) { tag_t ptr_tag = GetTagFromPointer(p); uptr ptr_raw = p & ~kAddressTagMask; tag_t mem_tag = *(tag_t *)MEM_TO_SHADOW(ptr_raw); - if (UNLIKELY(ptr_tag != mem_tag)) SigIll<0x100 + 0x10 * IsStore + LogSize>(); + if (UNLIKELY(ptr_tag != mem_tag)) { + SigIll<0x100 + 0x20 * (EA == ErrorAction::Recover) + + 0x10 * (AT == AccessType::Store) + LogSize>(); + if (EA == ErrorAction::Abort) __builtin_unreachable(); + } } -template -__attribute__((always_inline, nodebug)) -static void CheckAddressSized(uptr p, uptr sz) { +template +__attribute__((always_inline, nodebug)) static void CheckAddressSized(uptr p, + uptr sz) { CHECK_NE(0, sz); tag_t ptr_tag = GetTagFromPointer(p); uptr ptr_raw = p & ~kAddressTagMask; tag_t *shadow_first = (tag_t *)MEM_TO_SHADOW(ptr_raw); tag_t *shadow_last = (tag_t *)MEM_TO_SHADOW(ptr_raw + sz - 1); for (tag_t *t = shadow_first; t <= shadow_last; ++t) - if (UNLIKELY(ptr_tag != *t)) SigIll<0x100 + 0x10 * IsStore + 0xf>(); + if (UNLIKELY(ptr_tag != *t)) { + SigIll<0x100 + 0x20 * (EA == ErrorAction::Recover) + + 0x10 * (AT == AccessType::Store) + 0xf>(); + if (EA == ErrorAction::Abort) __builtin_unreachable(); + } } -void __hwasan_load(uptr p, uptr sz) { CheckAddressSized(p, sz); } -void __hwasan_load1(uptr p) { CheckAddress(p); } -void __hwasan_load2(uptr p) { CheckAddress(p); } -void __hwasan_load4(uptr p) { CheckAddress(p); } -void __hwasan_load8(uptr p) { CheckAddress(p); } -void __hwasan_load16(uptr p) { CheckAddress(p); } +void __hwasan_load(uptr p, uptr sz) { + CheckAddressSized(p, sz); +} +void __hwasan_load1(uptr p) { + CheckAddress(p); +} +void __hwasan_load2(uptr p) { + CheckAddress(p); +} +void __hwasan_load4(uptr p) { + CheckAddress(p); +} +void __hwasan_load8(uptr p) { + CheckAddress(p); +} +void __hwasan_load16(uptr p) { + CheckAddress(p); +} -void __hwasan_store(uptr p, uptr sz) { CheckAddressSized(p, sz); } -void __hwasan_store1(uptr p) { CheckAddress(p); } -void __hwasan_store2(uptr p) { CheckAddress(p); } -void __hwasan_store4(uptr p) { CheckAddress(p); } -void __hwasan_store8(uptr p) { CheckAddress(p); } -void __hwasan_store16(uptr p) { CheckAddress(p); } +void __hwasan_load_noabort(uptr p, uptr sz) { + CheckAddressSized(p, sz); +} +void __hwasan_load1_noabort(uptr p) { + CheckAddress(p); +} +void __hwasan_load2_noabort(uptr p) { + CheckAddress(p); +} +void __hwasan_load4_noabort(uptr p) { + CheckAddress(p); +} +void __hwasan_load8_noabort(uptr p) { + CheckAddress(p); +} +void __hwasan_load16_noabort(uptr p) { + CheckAddress(p); +} + +void __hwasan_store(uptr p, uptr sz) { + CheckAddressSized(p, sz); +} +void __hwasan_store1(uptr p) { + CheckAddress(p); +} +void __hwasan_store2(uptr p) { + CheckAddress(p); +} +void __hwasan_store4(uptr p) { + CheckAddress(p); +} +void __hwasan_store8(uptr p) { + CheckAddress(p); +} +void __hwasan_store16(uptr p) { + CheckAddress(p); +} + +void __hwasan_store_noabort(uptr p, uptr sz) { + CheckAddressSized(p, sz); +} +void __hwasan_store1_noabort(uptr p) { + CheckAddress(p); +} +void __hwasan_store2_noabort(uptr p) { + CheckAddress(p); +} +void __hwasan_store4_noabort(uptr p) { + CheckAddress(p); +} +void __hwasan_store8_noabort(uptr p) { + CheckAddress(p); +} +void __hwasan_store16_noabort(uptr p) { + CheckAddress(p); +} #if !SANITIZER_SUPPORTS_WEAK_HOOKS extern "C" { Modified: projects/clang600-import/contrib/compiler-rt/lib/hwasan/hwasan_interface_internal.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/hwasan/hwasan_interface_internal.h Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/lib/hwasan/hwasan_interface_internal.h Sun Dec 24 01:15:12 2017 (r327138) @@ -45,6 +45,19 @@ SANITIZER_INTERFACE_ATTRIBUTE void __hwasan_load16(uptr); SANITIZER_INTERFACE_ATTRIBUTE +void __hwasan_load_noabort(uptr, uptr); +SANITIZER_INTERFACE_ATTRIBUTE +void __hwasan_load1_noabort(uptr); +SANITIZER_INTERFACE_ATTRIBUTE +void __hwasan_load2_noabort(uptr); +SANITIZER_INTERFACE_ATTRIBUTE +void __hwasan_load4_noabort(uptr); +SANITIZER_INTERFACE_ATTRIBUTE +void __hwasan_load8_noabort(uptr); +SANITIZER_INTERFACE_ATTRIBUTE +void __hwasan_load16_noabort(uptr); + +SANITIZER_INTERFACE_ATTRIBUTE void __hwasan_store(uptr, uptr); SANITIZER_INTERFACE_ATTRIBUTE void __hwasan_store1(uptr); @@ -56,6 +69,19 @@ SANITIZER_INTERFACE_ATTRIBUTE void __hwasan_store8(uptr); SANITIZER_INTERFACE_ATTRIBUTE void __hwasan_store16(uptr); + +SANITIZER_INTERFACE_ATTRIBUTE +void __hwasan_store_noabort(uptr, uptr); +SANITIZER_INTERFACE_ATTRIBUTE +void __hwasan_store1_noabort(uptr); +SANITIZER_INTERFACE_ATTRIBUTE +void __hwasan_store2_noabort(uptr); +SANITIZER_INTERFACE_ATTRIBUTE +void __hwasan_store4_noabort(uptr); +SANITIZER_INTERFACE_ATTRIBUTE +void __hwasan_store8_noabort(uptr); +SANITIZER_INTERFACE_ATTRIBUTE +void __hwasan_store16_noabort(uptr); // Returns the offset of the first tag mismatch or -1 if the whole range is // good. Modified: projects/clang600-import/contrib/compiler-rt/lib/hwasan/hwasan_linux.cc ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/hwasan/hwasan_linux.cc Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/lib/hwasan/hwasan_linux.cc Sun Dec 24 01:15:12 2017 (r327138) @@ -174,12 +174,14 @@ struct AccessInfo { uptr size; bool is_store; bool is_load; + bool recover; }; #if defined(__aarch64__) static AccessInfo GetAccessInfo(siginfo_t *info, ucontext_t *uc) { // Access type is encoded in HLT immediate as 0x1XY, - // where X is 1 for store, 0 for load. + // where X&1 is 1 for store, 0 for load, + // and X&2 is 1 if the error is recoverable. // Valid values of Y are 0 to 4, which are interpreted as log2(access_size), // and 0xF, which means that access size is stored in X1 register. // Access address is always in X0 register. @@ -189,7 +191,8 @@ static AccessInfo GetAccessInfo(siginfo_t *info, ucont if ((code & 0xff00) != 0x100) return AccessInfo{0, 0, false, false}; // Not ours. bool is_store = code & 0x10; - unsigned size_log = code & 0xff; + bool recover = code & 0x20; + unsigned size_log = code & 0xf; if (size_log > 4 && size_log != 0xf) return AccessInfo{0, 0, false, false}; // Not ours. @@ -200,6 +203,7 @@ static AccessInfo GetAccessInfo(siginfo_t *info, ucont ai.size = uc->uc_mcontext.regs[1]; else ai.size = 1U << size_log; + ai.recover = recover; return ai; } #else @@ -223,7 +227,7 @@ static bool HwasanOnSIGILL(int signo, siginfo_t *info, ReportTagMismatch(stack, ai.addr, ai.size, ai.is_store); ++hwasan_report_count; - if (flags()->halt_on_error) + if (flags()->halt_on_error || !ai.recover) Die(); uc->uc_mcontext.pc += 4; Modified: projects/clang600-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/lib/msan/msan_new_delete.cc Sun Dec 24 01:15:12 2017 (r327138) @@ -22,9 +22,10 @@ using namespace __msan; // NOLINT -// Fake std::nothrow_t to avoid including . +// Fake std::nothrow_t and std::align_val_t to avoid including . namespace std { struct nothrow_t {}; + enum class align_val_t: size_t {}; } // namespace std @@ -34,6 +35,11 @@ namespace std { void *res = msan_malloc(size, &stack);\ if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\ return res +#define OPERATOR_NEW_BODY_ALIGN(nothrow) \ + GET_MALLOC_STACK_TRACE;\ + void *res = msan_memalign((uptr)align, size, &stack);\ + if (!nothrow && UNLIKELY(!res)) DieOnFailure::OnOOM();\ + return res; INTERCEPTOR_ATTRIBUTE void *operator new(size_t size) { OPERATOR_NEW_BODY(false /*nothrow*/); } @@ -47,6 +53,18 @@ INTERCEPTOR_ATTRIBUTE void *operator new[](size_t size, std::nothrow_t const&) { OPERATOR_NEW_BODY(true /*nothrow*/); } +INTERCEPTOR_ATTRIBUTE +void *operator new(size_t size, std::align_val_t align) +{ OPERATOR_NEW_BODY_ALIGN(false /*nothrow*/); } +INTERCEPTOR_ATTRIBUTE +void *operator new[](size_t size, std::align_val_t align) +{ OPERATOR_NEW_BODY_ALIGN(false /*nothrow*/); } +INTERCEPTOR_ATTRIBUTE +void *operator new(size_t size, std::align_val_t align, std::nothrow_t const&) +{ OPERATOR_NEW_BODY_ALIGN(true /*nothrow*/); } +INTERCEPTOR_ATTRIBUTE +void *operator new[](size_t size, std::align_val_t align, std::nothrow_t const&) +{ OPERATOR_NEW_BODY_ALIGN(true /*nothrow*/); } #define OPERATOR_DELETE_BODY \ GET_MALLOC_STACK_TRACE; \ @@ -62,5 +80,29 @@ INTERCEPTOR_ATTRIBUTE void operator delete[](void *ptr, std::nothrow_t const&) { OPERATOR_DELETE_BODY; } +INTERCEPTOR_ATTRIBUTE +void operator delete(void *ptr, size_t size) NOEXCEPT { OPERATOR_DELETE_BODY; } +INTERCEPTOR_ATTRIBUTE +void operator delete[](void *ptr, size_t size) NOEXCEPT +{ OPERATOR_DELETE_BODY; } +INTERCEPTOR_ATTRIBUTE +void operator delete(void *ptr, std::align_val_t align) NOEXCEPT +{ OPERATOR_DELETE_BODY; } +INTERCEPTOR_ATTRIBUTE +void operator delete[](void *ptr, std::align_val_t align) NOEXCEPT +{ OPERATOR_DELETE_BODY; } +INTERCEPTOR_ATTRIBUTE +void operator delete(void *ptr, std::align_val_t align, std::nothrow_t const&) +{ OPERATOR_DELETE_BODY; } +INTERCEPTOR_ATTRIBUTE +void operator delete[](void *ptr, std::align_val_t align, std::nothrow_t const&) +{ OPERATOR_DELETE_BODY; } +INTERCEPTOR_ATTRIBUTE +void operator delete(void *ptr, size_t size, std::align_val_t align) NOEXCEPT +{ OPERATOR_DELETE_BODY; } +INTERCEPTOR_ATTRIBUTE +void operator delete[](void *ptr, size_t size, std::align_val_t align) NOEXCEPT +{ OPERATOR_DELETE_BODY; } + #endif // MSAN_REPLACE_OPERATORS_NEW_AND_DELETE Modified: projects/clang600-import/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c Sun Dec 24 01:15:12 2017 (r327138) @@ -9,6 +9,7 @@ #ifdef _WIN32 #include +#include #include #include "WindowsMMap.h" #else Copied: projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sancov_begin.S (from r327137, vendor/compiler-rt/dist/lib/sanitizer_common/sancov_begin.S) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sancov_begin.S Sun Dec 24 01:15:12 2017 (r327138, copy of r327137, vendor/compiler-rt/dist/lib/sanitizer_common/sancov_begin.S) @@ -0,0 +1,5 @@ + .type __start___sancov_guards,@object + .globl __start___sancov_guards + .section __sancov_guards,"aw",@progbits + .p2align 2 +__start___sancov_guards: Copied: projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sancov_end.S (from r327137, vendor/compiler-rt/dist/lib/sanitizer_common/sancov_end.S) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sancov_end.S Sun Dec 24 01:15:12 2017 (r327138, copy of r327137, vendor/compiler-rt/dist/lib/sanitizer_common/sancov_end.S) @@ -0,0 +1,5 @@ + .type __stop___sancov_guards,@object + .globl __stop___sancov_guards + .section __sancov_guards,"aw",@progbits + .p2align 2 +__stop___sancov_guards: Modified: projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang.h Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang.h Sun Dec 24 01:15:12 2017 (r327138) @@ -78,17 +78,7 @@ INLINE bool atomic_compare_exchange_strong(volatile T typedef typename T::Type Type; Type cmpv = *cmp; Type prev; -#if defined(_MIPS_SIM) && _MIPS_SIM == _ABIO32 - if (sizeof(*a) == 8) { - Type volatile *val_ptr = const_cast(&a->val_dont_use); - prev = __mips_sync_val_compare_and_swap( - reinterpret_cast(val_ptr), (u64)cmpv, (u64)xchg); - } else { - prev = __sync_val_compare_and_swap(&a->val_dont_use, cmpv, xchg); - } -#else prev = __sync_val_compare_and_swap(&a->val_dont_use, cmpv, xchg); -#endif if (prev == cmpv) return true; *cmp = prev; return false; @@ -103,6 +93,13 @@ INLINE bool atomic_compare_exchange_weak(volatile T *a } } // namespace __sanitizer + +// This include provides explicit template instantiations for atomic_uint64_t +// on MIPS32, which does not directly support 8 byte atomics. It has to +// proceed the template definitions above. +#if defined(_MIPS_SIM) && defined(_ABIO32) + #include "sanitizer_atomic_clang_mips.h" +#endif #undef ATOMIC_ORDER Copied: projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_mips.h (from r327137, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_atomic_clang_mips.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_mips.h Sun Dec 24 01:15:12 2017 (r327138, copy of r327137, vendor/compiler-rt/dist/lib/sanitizer_common/sanitizer_atomic_clang_mips.h) @@ -0,0 +1,118 @@ +//===-- sanitizer_atomic_clang_mips.h ---------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of ThreadSanitizer/AddressSanitizer runtime. +// Not intended for direct inclusion. Include sanitizer_atomic.h. +// +//===----------------------------------------------------------------------===// + +#ifndef SANITIZER_ATOMIC_CLANG_MIPS_H +#define SANITIZER_ATOMIC_CLANG_MIPS_H + +namespace __sanitizer { + +// MIPS32 does not support atomics > 4 bytes. To address this lack of +// functionality, the sanitizer library provides helper methods which use an +// internal spin lock mechanism to emulate atomic oprations when the size is +// 8 bytes. +static void __spin_lock(volatile int *lock) { + while (__sync_lock_test_and_set(lock, 1)) + while (*lock) { + } +} + +static void __spin_unlock(volatile int *lock) { __sync_lock_release(lock); } + +// Make sure the lock is on its own cache line to prevent false sharing. +// Put it inside a struct that is aligned and padded to the typical MIPS +// cacheline which is 32 bytes. +static struct { + int lock; + char pad[32 - sizeof(int)]; +} __attribute__((aligned(32))) lock = {0, {0}}; + +template <> +INLINE atomic_uint64_t::Type atomic_fetch_add(volatile atomic_uint64_t *ptr, + atomic_uint64_t::Type val, + memory_order mo) { + DCHECK(mo & + (memory_order_relaxed | memory_order_releasae | memory_order_seq_cst)); + DCHECK(!((uptr)ptr % sizeof(*ptr))); + + atomic_uint64_t::Type ret; + + __spin_lock(&lock.lock); + ret = *(const_cast(&ptr->val_dont_use)); + ptr->val_dont_use = ret + val; + __spin_unlock(&lock.lock); + + return ret; +} + +template <> +INLINE atomic_uint64_t::Type atomic_fetch_sub(volatile atomic_uint64_t *ptr, + atomic_uint64_t::Type val, + memory_order mo) { + return atomic_fetch_add(ptr, -val, mo); +} + +template <> +INLINE bool atomic_compare_exchange_strong(volatile atomic_uint64_t *ptr, + atomic_uint64_t::Type *cmp, + atomic_uint64_t::Type xchg, + memory_order mo) { + DCHECK(mo & + (memory_order_relaxed | memory_order_releasae | memory_order_seq_cst)); + DCHECK(!((uptr)ptr % sizeof(*ptr))); + + typedef atomic_uint64_t::Type Type; + Type cmpv = *cmp; + Type prev; + bool ret = false; + + __spin_lock(&lock.lock); + prev = *(const_cast(&ptr->val_dont_use)); + if (prev == cmpv) { + ret = true; + ptr->val_dont_use = xchg; + } + __spin_unlock(&lock.lock); + + return ret; +} + +template <> +INLINE atomic_uint64_t::Type atomic_load(const volatile atomic_uint64_t *ptr, + memory_order mo) { + DCHECK(mo & + (memory_order_relaxed | memory_order_releasae | memory_order_seq_cst)); + DCHECK(!((uptr)ptr % sizeof(*ptr))); + + atomic_uint64_t::Type zero = 0; + volatile atomic_uint64_t *Newptr = + const_cast(ptr); + return atomic_fetch_add(Newptr, zero, mo); +} + +template <> +INLINE void atomic_store(volatile atomic_uint64_t *ptr, atomic_uint64_t::Type v, + memory_order mo) { + DCHECK(mo & + (memory_order_relaxed | memory_order_releasae | memory_order_seq_cst)); + DCHECK(!((uptr)ptr % sizeof(*ptr))); + + __spin_lock(&lock.lock); + ptr->val_dont_use = v; + __spin_unlock(&lock.lock); +} + +} // namespace __sanitizer + +#endif // SANITIZER_ATOMIC_CLANG_MIPS_H + Modified: projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h Sun Dec 24 01:15:12 2017 (r327138) @@ -17,56 +17,7 @@ namespace __sanitizer { -// MIPS32 does not support atomic > 4 bytes. To address this lack of -// functionality, the sanitizer library provides helper methods which use an -// internal spin lock mechanism to emulate atomic oprations when the size is -// 8 bytes. -#if defined(_MIPS_SIM) && _MIPS_SIM == _ABIO32 -static void __spin_lock(volatile int *lock) { - while (__sync_lock_test_and_set(lock, 1)) - while (*lock) { - } -} -static void __spin_unlock(volatile int *lock) { __sync_lock_release(lock); } - - -// Make sure the lock is on its own cache line to prevent false sharing. -// Put it inside a struct that is aligned and padded to the typical MIPS -// cacheline which is 32 bytes. -static struct { - int lock; - char pad[32 - sizeof(int)]; -} __attribute__((aligned(32))) lock = {0}; - -template -T __mips_sync_fetch_and_add(volatile T *ptr, T val) { - T ret; - - __spin_lock(&lock.lock); - - ret = *ptr; - *ptr = ret + val; - - __spin_unlock(&lock.lock); - - return ret; -} - -template -T __mips_sync_val_compare_and_swap(volatile T *ptr, T oldval, T newval) { - T ret; - __spin_lock(&lock.lock); - - ret = *ptr; - if (ret == oldval) *ptr = newval; - - __spin_unlock(&lock.lock); - - return ret; -} -#endif - INLINE void proc_yield(int cnt) { __asm__ __volatile__("" ::: "memory"); } @@ -103,15 +54,8 @@ INLINE typename T::Type atomic_load( // 64-bit load on 32-bit platform. // Gross, but simple and reliable. // Assume that it is not in read-only memory. -#if defined(_MIPS_SIM) && _MIPS_SIM == _ABIO32 - typename T::Type volatile *val_ptr = - const_cast(&a->val_dont_use); - v = __mips_sync_fetch_and_add( - reinterpret_cast(val_ptr), 0); -#else v = __sync_fetch_and_add( const_cast(&a->val_dont_use), 0); -#endif } return v; } @@ -141,14 +85,7 @@ INLINE void atomic_store(volatile T *a, typename T::Ty typename T::Type cmp = a->val_dont_use; typename T::Type cur; for (;;) { -#if defined(_MIPS_SIM) && _MIPS_SIM == _ABIO32 - typename T::Type volatile *val_ptr = - const_cast(&a->val_dont_use); - cur = __mips_sync_val_compare_and_swap( - reinterpret_cast(val_ptr), (u64)cmp, (u64)v); -#else cur = __sync_val_compare_and_swap(&a->val_dont_use, cmp, v); -#endif if (cmp == v) break; cmp = cur; Modified: projects/clang600-import/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc Sun Dec 24 01:15:12 2017 (r327138) @@ -20,6 +20,7 @@ using namespace __tsan; // NOLINT namespace std { struct nothrow_t {}; +enum class align_val_t: __sanitizer::uptr {}; } // namespace std DECLARE_REAL(void *, malloc, uptr size) @@ -38,6 +39,18 @@ DECLARE_REAL(void, free, void *ptr) invoke_malloc_hook(p, size); \ return p; +#define OPERATOR_NEW_BODY_ALIGN(mangled_name, nothrow) \ + if (cur_thread()->in_symbolizer) \ + return InternalAlloc(size, nullptr, (uptr)align); \ + void *p = 0; \ + { \ + SCOPED_INTERCEPTOR_RAW(mangled_name, size); \ + p = user_memalign(thr, pc, (uptr)align, size); \ + if (!nothrow && UNLIKELY(!p)) DieOnFailure::OnOOM(); \ + } \ + invoke_malloc_hook(p, size); \ + return p; + SANITIZER_INTERFACE_ATTRIBUTE void *operator new(__sanitizer::uptr size); void *operator new(__sanitizer::uptr size) { @@ -62,6 +75,36 @@ void *operator new[](__sanitizer::uptr size, std::noth OPERATOR_NEW_BODY(_ZnamRKSt9nothrow_t, true /*nothrow*/); } +SANITIZER_INTERFACE_ATTRIBUTE +void *operator new(__sanitizer::uptr size, std::align_val_t align); +void *operator new(__sanitizer::uptr size, std::align_val_t align) { + OPERATOR_NEW_BODY_ALIGN(_ZnwmSt11align_val_t, false /*nothrow*/); +} + +SANITIZER_INTERFACE_ATTRIBUTE +void *operator new[](__sanitizer::uptr size, std::align_val_t align); +void *operator new[](__sanitizer::uptr size, std::align_val_t align) { + OPERATOR_NEW_BODY_ALIGN(_ZnamSt11align_val_t, false /*nothrow*/); +} + +SANITIZER_INTERFACE_ATTRIBUTE +void *operator new(__sanitizer::uptr size, std::align_val_t align, + std::nothrow_t const&); +void *operator new(__sanitizer::uptr size, std::align_val_t align, + std::nothrow_t const&) { + OPERATOR_NEW_BODY_ALIGN(_ZnwmSt11align_val_tRKSt9nothrow_t, + true /*nothrow*/); +} + +SANITIZER_INTERFACE_ATTRIBUTE +void *operator new[](__sanitizer::uptr size, std::align_val_t align, + std::nothrow_t const&); +void *operator new[](__sanitizer::uptr size, std::align_val_t align, + std::nothrow_t const&) { + OPERATOR_NEW_BODY_ALIGN(_ZnamSt11align_val_tRKSt9nothrow_t, + true /*nothrow*/); +} + #define OPERATOR_DELETE_BODY(mangled_name) \ if (ptr == 0) return; \ if (cur_thread()->in_symbolizer) \ @@ -92,4 +135,58 @@ SANITIZER_INTERFACE_ATTRIBUTE void operator delete[](void *ptr, std::nothrow_t const&); void operator delete[](void *ptr, std::nothrow_t const&) { OPERATOR_DELETE_BODY(_ZdaPvRKSt9nothrow_t); +} + +SANITIZER_INTERFACE_ATTRIBUTE +void operator delete(void *ptr, __sanitizer::uptr size) NOEXCEPT; +void operator delete(void *ptr, __sanitizer::uptr size) NOEXCEPT { + OPERATOR_DELETE_BODY(_ZdlPvm); +} + +SANITIZER_INTERFACE_ATTRIBUTE +void operator delete[](void *ptr, __sanitizer::uptr size) NOEXCEPT; +void operator delete[](void *ptr, __sanitizer::uptr size) NOEXCEPT { + OPERATOR_DELETE_BODY(_ZdaPvm); +} + +SANITIZER_INTERFACE_ATTRIBUTE +void operator delete(void *ptr, std::align_val_t align) NOEXCEPT; +void operator delete(void *ptr, std::align_val_t align) NOEXCEPT { + OPERATOR_DELETE_BODY(_ZdlPvSt11align_val_t); +} + +SANITIZER_INTERFACE_ATTRIBUTE +void operator delete[](void *ptr, std::align_val_t align) NOEXCEPT; +void operator delete[](void *ptr, std::align_val_t align) NOEXCEPT { + OPERATOR_DELETE_BODY(_ZdaPvSt11align_val_t); +} + +SANITIZER_INTERFACE_ATTRIBUTE +void operator delete(void *ptr, std::align_val_t align, std::nothrow_t const&); +void operator delete(void *ptr, std::align_val_t align, std::nothrow_t const&) { + OPERATOR_DELETE_BODY(_ZdlPvSt11align_val_tRKSt9nothrow_t); +} + +SANITIZER_INTERFACE_ATTRIBUTE +void operator delete[](void *ptr, std::align_val_t align, + std::nothrow_t const&); +void operator delete[](void *ptr, std::align_val_t align, + std::nothrow_t const&) { + OPERATOR_DELETE_BODY(_ZdaPvSt11align_val_tRKSt9nothrow_t); +} + +SANITIZER_INTERFACE_ATTRIBUTE +void operator delete(void *ptr, __sanitizer::uptr size, + std::align_val_t align) NOEXCEPT; +void operator delete(void *ptr, __sanitizer::uptr size, + std::align_val_t align) NOEXCEPT { + OPERATOR_DELETE_BODY(_ZdlPvmSt11align_val_t); +} + +SANITIZER_INTERFACE_ATTRIBUTE +void operator delete[](void *ptr, __sanitizer::uptr size, + std::align_val_t align) NOEXCEPT; +void operator delete[](void *ptr, __sanitizer::uptr size, + std::align_val_t align) NOEXCEPT { + OPERATOR_DELETE_BODY(_ZdaPvmSt11align_val_t); } Modified: projects/clang600-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc Sun Dec 24 01:12:46 2017 (r327137) +++ projects/clang600-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc Sun Dec 24 01:15:12 2017 (r327138) @@ -297,7 +297,7 @@ void __ubsan::__ubsan_handle_out_of_bounds_abort(OutOf static void handleBuiltinUnreachableImpl(UnreachableData *Data, ReportOptions Opts) { ScopedReport R(Opts, Data->Loc, ErrorType::UnreachableCall); - Diag(Data->Loc, DL_Error, "execution reached a __builtin_unreachable() call"); + Diag(Data->Loc, DL_Error, "execution reached an unreachable program point"); } void __ubsan::__ubsan_handle_builtin_unreachable(UnreachableData *Data) { From owner-svn-src-projects@freebsd.org Sun Dec 24 01:16:29 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DD1ABE89D8C for ; Sun, 24 Dec 2017 01:16:29 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A4A5980683; Sun, 24 Dec 2017 01:16:29 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBO1GSHc082855; Sun, 24 Dec 2017 01:16:28 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBO1GShe082853; Sun, 24 Dec 2017 01:16:28 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712240116.vBO1GShe082853@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 01:16:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327139 - projects/clang600-import/contrib/libc++/include X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang600-import/contrib/libc++/include X-SVN-Commit-Revision: 327139 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 01:16:30 -0000 Author: dim Date: Sun Dec 24 01:16:28 2017 New Revision: 327139 URL: https://svnweb.freebsd.org/changeset/base/327139 Log: Merge libc++ trunk r321414 to contrib/libc++. Modified: projects/clang600-import/contrib/libc++/include/sstream projects/clang600-import/contrib/libc++/include/string_view Directory Properties: projects/clang600-import/contrib/libc++/ (props changed) Modified: projects/clang600-import/contrib/libc++/include/sstream ============================================================================== --- projects/clang600-import/contrib/libc++/include/sstream Sun Dec 24 01:15:12 2017 (r327138) +++ projects/clang600-import/contrib/libc++/include/sstream Sun Dec 24 01:16:28 2017 (r327139) @@ -577,6 +577,7 @@ basic_stringbuf<_CharT, _Traits, _Allocator>::seekoff( if ((__wch & (ios_base::in | ios_base::out)) == (ios_base::in | ios_base::out) && __way == ios_base::cur) return pos_type(-1); + const ptrdiff_t __hm = __hm_ == nullptr ? 0 : __hm_ - __str_.data(); off_type __noff; switch (__way) { @@ -590,13 +591,13 @@ basic_stringbuf<_CharT, _Traits, _Allocator>::seekoff( __noff = this->pptr() - this->pbase(); break; case ios_base::end: - __noff = __hm_ - __str_.data(); + __noff = __hm; break; default: return pos_type(-1); } __noff += __off; - if (__noff < 0 || __hm_ - __str_.data() < __noff) + if (__noff < 0 || __hm < __noff) return pos_type(-1); if (__noff != 0) { Modified: projects/clang600-import/contrib/libc++/include/string_view ============================================================================== --- projects/clang600-import/contrib/libc++/include/string_view Sun Dec 24 01:15:12 2017 (r327138) +++ projects/clang600-import/contrib/libc++/include/string_view Sun Dec 24 01:16:28 2017 (r327139) @@ -196,9 +196,9 @@ class _LIBCPP_TEMPLATE_VIS basic_string_view { (public // types typedef _Traits traits_type; typedef _CharT value_type; - typedef const _CharT* pointer; + typedef _CharT* pointer; typedef const _CharT* const_pointer; - typedef const _CharT& reference; + typedef _CharT& reference; typedef const _CharT& const_reference; typedef const_pointer const_iterator; // See [string.view.iterators] typedef const_iterator iterator; From owner-svn-src-projects@freebsd.org Sun Dec 24 12:32:57 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 44CF6E8B62B for ; Sun, 24 Dec 2017 12:32:57 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1D1C4774EB; Sun, 24 Dec 2017 12:32:56 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBOCWuhH067783; Sun, 24 Dec 2017 12:32:56 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBOCWt36067778; Sun, 24 Dec 2017 12:32:55 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712241232.vBOCWt36067778@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 12:32:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327143 - in projects/clang600-import: lib/clang/include/clang/Basic lib/clang/include/lld/Common lib/clang/include/llvm/Support lib/clang/libllvm usr.bin/clang/llvm-tblgen X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import: lib/clang/include/clang/Basic lib/clang/include/lld/Common lib/clang/include/llvm/Support lib/clang/libllvm usr.bin/clang/llvm-tblgen X-SVN-Commit-Revision: 327143 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 12:32:57 -0000 Author: dim Date: Sun Dec 24 12:32:55 2017 New Revision: 327143 URL: https://svnweb.freebsd.org/changeset/base/327143 Log: Update clang, lld and llvm version numbers for r321414, and update build glue. Modified: projects/clang600-import/lib/clang/include/clang/Basic/Version.inc projects/clang600-import/lib/clang/include/lld/Common/Version.inc projects/clang600-import/lib/clang/include/llvm/Support/VCSRevision.h projects/clang600-import/lib/clang/libllvm/Makefile projects/clang600-import/usr.bin/clang/llvm-tblgen/Makefile Modified: projects/clang600-import/lib/clang/include/clang/Basic/Version.inc ============================================================================== --- projects/clang600-import/lib/clang/include/clang/Basic/Version.inc Sun Dec 24 02:06:16 2017 (r327142) +++ projects/clang600-import/lib/clang/include/clang/Basic/Version.inc Sun Dec 24 12:32:55 2017 (r327143) @@ -8,4 +8,4 @@ #define CLANG_VENDOR "FreeBSD " -#define SVN_REVISION "321017" +#define SVN_REVISION "321414" Modified: projects/clang600-import/lib/clang/include/lld/Common/Version.inc ============================================================================== --- projects/clang600-import/lib/clang/include/lld/Common/Version.inc Sun Dec 24 02:06:16 2017 (r327142) +++ projects/clang600-import/lib/clang/include/lld/Common/Version.inc Sun Dec 24 12:32:55 2017 (r327143) @@ -4,5 +4,5 @@ #define LLD_VERSION_STRING "6.0.0" #define LLD_VERSION_MAJOR 6 #define LLD_VERSION_MINOR 0 -#define LLD_REVISION_STRING "321017" +#define LLD_REVISION_STRING "321414" #define LLD_REPOSITORY_STRING "FreeBSD" Modified: projects/clang600-import/lib/clang/include/llvm/Support/VCSRevision.h ============================================================================== --- projects/clang600-import/lib/clang/include/llvm/Support/VCSRevision.h Sun Dec 24 02:06:16 2017 (r327142) +++ projects/clang600-import/lib/clang/include/llvm/Support/VCSRevision.h Sun Dec 24 12:32:55 2017 (r327143) @@ -1,2 +1,2 @@ /* $FreeBSD$ */ -#define LLVM_REVISION "svn-r321017" +#define LLVM_REVISION "svn-r321414" Modified: projects/clang600-import/lib/clang/libllvm/Makefile ============================================================================== --- projects/clang600-import/lib/clang/libllvm/Makefile Sun Dec 24 02:06:16 2017 (r327142) +++ projects/clang600-import/lib/clang/libllvm/Makefile Sun Dec 24 12:32:55 2017 (r327143) @@ -202,7 +202,7 @@ SRCS_MIN+= CodeGen/LiveRangeEdit.cpp SRCS_MIN+= CodeGen/LiveRangeShrink.cpp SRCS_MIN+= CodeGen/LiveRegMatrix.cpp SRCS_MIN+= CodeGen/LiveRegUnits.cpp -SRCS_MIN+= CodeGen/LiveStackAnalysis.cpp +SRCS_MIN+= CodeGen/LiveStacks.cpp SRCS_MIN+= CodeGen/LiveVariables.cpp SRCS_MIN+= CodeGen/LocalStackSlotAllocation.cpp SRCS_MIN+= CodeGen/LowLevelType.cpp Modified: projects/clang600-import/usr.bin/clang/llvm-tblgen/Makefile ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-tblgen/Makefile Sun Dec 24 02:06:16 2017 (r327142) +++ projects/clang600-import/usr.bin/clang/llvm-tblgen/Makefile Sun Dec 24 12:32:55 2017 (r327143) @@ -35,6 +35,7 @@ SRCS+= OptParserEmitter.cpp SRCS+= PseudoLoweringEmitter.cpp SRCS+= RegisterBankEmitter.cpp SRCS+= RegisterInfoEmitter.cpp +SRCS+= SDNodeProperties.cpp SRCS+= SearchableTableEmitter.cpp SRCS+= SubtargetEmitter.cpp SRCS+= SubtargetFeatureInfo.cpp From owner-svn-src-projects@freebsd.org Sun Dec 24 12:36:32 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 79EAFE8B87A for ; Sun, 24 Dec 2017 12:36:32 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 444D37763F; Sun, 24 Dec 2017 12:36:32 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBOCaVoq067965; Sun, 24 Dec 2017 12:36:31 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBOCaV8V067962; Sun, 24 Dec 2017 12:36:31 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712241236.vBOCaV8V067962@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 12:36:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327144 - in projects/clang600-import: tools/build/mk usr.bin/clang usr.bin/clang/llvm-objcopy X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import: tools/build/mk usr.bin/clang usr.bin/clang/llvm-objcopy X-SVN-Commit-Revision: 327144 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 12:36:32 -0000 Author: dim Date: Sun Dec 24 12:36:31 2017 New Revision: 327144 URL: https://svnweb.freebsd.org/changeset/base/327144 Log: Add new llvm-objcopy utility, enabled when MK_CLANG_EXTRAS=yes. Added: projects/clang600-import/usr.bin/clang/llvm-objcopy/ projects/clang600-import/usr.bin/clang/llvm-objcopy/Makefile (contents, props changed) Modified: projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc projects/clang600-import/usr.bin/clang/Makefile Modified: projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc Sun Dec 24 12:32:55 2017 (r327143) +++ projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc Sun Dec 24 12:36:31 2017 (r327144) @@ -1480,6 +1480,7 @@ OLD_FILES+=usr/bin/llvm-lto2 OLD_FILES+=usr/bin/llvm-mc OLD_FILES+=usr/bin/llvm-modextract OLD_FILES+=usr/bin/llvm-nm +OLD_FILES+=usr/bin/llvm-objcopy OLD_FILES+=usr/bin/llvm-pdbutil OLD_FILES+=usr/bin/llvm-ranlib OLD_FILES+=usr/bin/llvm-rtdyld Modified: projects/clang600-import/usr.bin/clang/Makefile ============================================================================== --- projects/clang600-import/usr.bin/clang/Makefile Sun Dec 24 12:32:55 2017 (r327143) +++ projects/clang600-import/usr.bin/clang/Makefile Sun Dec 24 12:36:31 2017 (r327144) @@ -30,6 +30,7 @@ SUBDIR+= llvm-lto2 SUBDIR+= llvm-mc SUBDIR+= llvm-modextract SUBDIR+= llvm-nm +SUBDIR+= llvm-objcopy SUBDIR+= llvm-pdbutil SUBDIR+= llvm-profdata SUBDIR+= llvm-rtdyld Added: projects/clang600-import/usr.bin/clang/llvm-objcopy/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang600-import/usr.bin/clang/llvm-objcopy/Makefile Sun Dec 24 12:36:31 2017 (r327144) @@ -0,0 +1,10 @@ +# $FreeBSD$ + +PROG_CXX= llvm-objcopy +MAN= + +SRCDIR= tools/llvm-objcopy +SRCS+= Object.cpp +SRCS+= llvm-objcopy.cpp + +.include "../llvm.prog.mk" From owner-svn-src-projects@freebsd.org Sun Dec 24 12:42:32 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 29B87E8BD94 for ; Sun, 24 Dec 2017 12:42:32 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 03A0377B3B; Sun, 24 Dec 2017 12:42:31 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBOCgV1E072357; Sun, 24 Dec 2017 12:42:31 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBOCgUrA072350; Sun, 24 Dec 2017 12:42:30 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712241242.vBOCgUrA072350@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 12:42:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327145 - in projects/clang600-import/usr.bin/clang: llvm-as llvm-bcanalyzer llvm-cxxdump llvm-cxxfilt llvm-diff llvm-extract llvm-link llvm-modextract X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import/usr.bin/clang: llvm-as llvm-bcanalyzer llvm-cxxdump llvm-cxxfilt llvm-diff llvm-extract llvm-link llvm-modextract X-SVN-Commit-Revision: 327145 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 12:42:32 -0000 Author: dim Date: Sun Dec 24 12:42:30 2017 New Revision: 327145 URL: https://svnweb.freebsd.org/changeset/base/327145 Log: Minimize library dependencies for some llvm tools. Modified: projects/clang600-import/usr.bin/clang/llvm-as/Makefile projects/clang600-import/usr.bin/clang/llvm-bcanalyzer/Makefile projects/clang600-import/usr.bin/clang/llvm-cxxdump/Makefile projects/clang600-import/usr.bin/clang/llvm-cxxfilt/Makefile projects/clang600-import/usr.bin/clang/llvm-diff/Makefile projects/clang600-import/usr.bin/clang/llvm-extract/Makefile projects/clang600-import/usr.bin/clang/llvm-link/Makefile projects/clang600-import/usr.bin/clang/llvm-modextract/Makefile Modified: projects/clang600-import/usr.bin/clang/llvm-as/Makefile ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-as/Makefile Sun Dec 24 12:36:31 2017 (r327144) +++ projects/clang600-import/usr.bin/clang/llvm-as/Makefile Sun Dec 24 12:42:30 2017 (r327145) @@ -5,6 +5,4 @@ PROG_CXX= llvm-as SRCDIR= tools/llvm-as SRCS+= llvm-as.cpp -LIBADD+= z - .include "../llvm.prog.mk" Modified: projects/clang600-import/usr.bin/clang/llvm-bcanalyzer/Makefile ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-bcanalyzer/Makefile Sun Dec 24 12:36:31 2017 (r327144) +++ projects/clang600-import/usr.bin/clang/llvm-bcanalyzer/Makefile Sun Dec 24 12:42:30 2017 (r327145) @@ -5,6 +5,4 @@ PROG_CXX= llvm-bcanalyzer SRCDIR= tools/llvm-bcanalyzer SRCS+= llvm-bcanalyzer.cpp -LIBADD+= z - .include "../llvm.prog.mk" Modified: projects/clang600-import/usr.bin/clang/llvm-cxxdump/Makefile ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-cxxdump/Makefile Sun Dec 24 12:36:31 2017 (r327144) +++ projects/clang600-import/usr.bin/clang/llvm-cxxdump/Makefile Sun Dec 24 12:42:30 2017 (r327145) @@ -7,6 +7,4 @@ SRCDIR= tools/llvm-cxxdump SRCS+= Error.cpp SRCS+= llvm-cxxdump.cpp -LIBADD+= z - .include "../llvm.prog.mk" Modified: projects/clang600-import/usr.bin/clang/llvm-cxxfilt/Makefile ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-cxxfilt/Makefile Sun Dec 24 12:36:31 2017 (r327144) +++ projects/clang600-import/usr.bin/clang/llvm-cxxfilt/Makefile Sun Dec 24 12:42:30 2017 (r327145) @@ -6,6 +6,4 @@ MAN= SRCDIR= tools/llvm-cxxfilt SRCS+= llvm-cxxfilt.cpp -LIBADD+= z - .include "../llvm.prog.mk" Modified: projects/clang600-import/usr.bin/clang/llvm-diff/Makefile ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-diff/Makefile Sun Dec 24 12:36:31 2017 (r327144) +++ projects/clang600-import/usr.bin/clang/llvm-diff/Makefile Sun Dec 24 12:42:30 2017 (r327145) @@ -8,6 +8,4 @@ SRCS+= DiffLog.cpp SRCS+= DifferenceEngine.cpp SRCS+= llvm-diff.cpp -LIBADD+= z - .include "../llvm.prog.mk" Modified: projects/clang600-import/usr.bin/clang/llvm-extract/Makefile ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-extract/Makefile Sun Dec 24 12:36:31 2017 (r327144) +++ projects/clang600-import/usr.bin/clang/llvm-extract/Makefile Sun Dec 24 12:42:30 2017 (r327145) @@ -5,6 +5,4 @@ PROG_CXX= llvm-extract SRCDIR= tools/llvm-extract SRCS+= llvm-extract.cpp -LIBADD+= z - .include "../llvm.prog.mk" Modified: projects/clang600-import/usr.bin/clang/llvm-link/Makefile ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-link/Makefile Sun Dec 24 12:36:31 2017 (r327144) +++ projects/clang600-import/usr.bin/clang/llvm-link/Makefile Sun Dec 24 12:42:30 2017 (r327145) @@ -5,6 +5,4 @@ PROG_CXX= llvm-link SRCDIR= tools/llvm-link SRCS+= llvm-link.cpp -LIBADD+= z - .include "../llvm.prog.mk" Modified: projects/clang600-import/usr.bin/clang/llvm-modextract/Makefile ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-modextract/Makefile Sun Dec 24 12:36:31 2017 (r327144) +++ projects/clang600-import/usr.bin/clang/llvm-modextract/Makefile Sun Dec 24 12:42:30 2017 (r327145) @@ -6,6 +6,4 @@ MAN= SRCDIR= tools/llvm-modextract SRCS= llvm-modextract.cpp -LIBADD+= z - .include "../llvm.prog.mk" From owner-svn-src-projects@freebsd.org Sun Dec 24 12:46:30 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3E34CE8C074 for ; Sun, 24 Dec 2017 12:46:30 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0016977DDD; Sun, 24 Dec 2017 12:46:29 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBOCkTVk072678; Sun, 24 Dec 2017 12:46:29 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBOCkThN072677; Sun, 24 Dec 2017 12:46:29 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712241246.vBOCkThN072677@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 12:46:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327146 - projects/clang600-import/tools/build/mk X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang600-import/tools/build/mk X-SVN-Commit-Revision: 327146 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 12:46:30 -0000 Author: dim Date: Sun Dec 24 12:46:28 2017 New Revision: 327146 URL: https://svnweb.freebsd.org/changeset/base/327146 Log: Update OptionalObsoleteFiles.inc for new headers and libraries under /usr/lib/clang/6.0.0. Modified: projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc Modified: projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc Sun Dec 24 12:42:30 2017 (r327145) +++ projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc Sun Dec 24 12:46:28 2017 (r327146) @@ -1334,9 +1334,11 @@ OLD_FILES+=usr/lib/clang/6.0.0/include/sanitizer/commo OLD_FILES+=usr/lib/clang/6.0.0/include/sanitizer/coverage_interface.h OLD_FILES+=usr/lib/clang/6.0.0/include/sanitizer/dfsan_interface.h OLD_FILES+=usr/lib/clang/6.0.0/include/sanitizer/esan_interface.h +OLD_FILES+=usr/lib/clang/6.0.0/include/sanitizer/hwasan_interface.h OLD_FILES+=usr/lib/clang/6.0.0/include/sanitizer/linux_syscall_hooks.h OLD_FILES+=usr/lib/clang/6.0.0/include/sanitizer/lsan_interface.h OLD_FILES+=usr/lib/clang/6.0.0/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/6.0.0/include/sanitizer/scudo_interface.h OLD_FILES+=usr/lib/clang/6.0.0/include/sanitizer/tsan_interface.h OLD_FILES+=usr/lib/clang/6.0.0/include/sanitizer/tsan_interface_atomic.h OLD_DIRS+=usr/lib/clang/6.0.0/include/sanitizer @@ -1431,6 +1433,8 @@ OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.asan-x86_64.so OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.asan_cxx-i386.a OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.dd-i386.a +OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.dd-x86_64.a OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.profile-arm.a OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.profile-armhf.a OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.profile-i386.a @@ -1441,6 +1445,12 @@ OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.stats-x86_64.a OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.stats_client-i386.a OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.stats_client-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.tsan-i386.a +OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.tsan-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.tsan_cxx-i386.a +OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.ubsan_minimal-i386.a +OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a OLD_FILES+=usr/lib/clang/6.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a From owner-svn-src-projects@freebsd.org Sun Dec 24 13:02:46 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E513E8CF89 for ; Sun, 24 Dec 2017 13:02:46 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C4F3E78A98; Sun, 24 Dec 2017 13:02:45 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBOD2jXB080876; Sun, 24 Dec 2017 13:02:45 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBOD2hRd080860; Sun, 24 Dec 2017 13:02:43 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712241302.vBOD2hRd080860@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 13:02:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327147 - in projects/clang600-import/usr.bin/clang: bugpoint llc lli llvm-ar llvm-as llvm-bcanalyzer llvm-cov llvm-diff llvm-dis llvm-dwarfdump llvm-extract llvm-link llvm-nm llvm-pdbu... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import/usr.bin/clang: bugpoint llc lli llvm-ar llvm-as llvm-bcanalyzer llvm-cov llvm-diff llvm-dis llvm-dwarfdump llvm-extract llvm-link llvm-nm llvm-pdbutil llvm-profdata llvm-sy... X-SVN-Commit-Revision: 327147 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 13:02:46 -0000 Author: dim Date: Sun Dec 24 13:02:43 2017 New Revision: 327147 URL: https://svnweb.freebsd.org/changeset/base/327147 Log: Regenerate llvm tools manpages, and add one for llvm-pbdutil. Added: projects/clang600-import/usr.bin/clang/llvm-pdbutil/llvm-pdbutil.1 (contents, props changed) Modified: projects/clang600-import/usr.bin/clang/bugpoint/bugpoint.1 projects/clang600-import/usr.bin/clang/llc/llc.1 projects/clang600-import/usr.bin/clang/lli/lli.1 projects/clang600-import/usr.bin/clang/llvm-ar/llvm-ar.1 projects/clang600-import/usr.bin/clang/llvm-as/llvm-as.1 projects/clang600-import/usr.bin/clang/llvm-bcanalyzer/llvm-bcanalyzer.1 projects/clang600-import/usr.bin/clang/llvm-cov/llvm-cov.1 projects/clang600-import/usr.bin/clang/llvm-diff/llvm-diff.1 projects/clang600-import/usr.bin/clang/llvm-dis/llvm-dis.1 projects/clang600-import/usr.bin/clang/llvm-dwarfdump/llvm-dwarfdump.1 projects/clang600-import/usr.bin/clang/llvm-extract/llvm-extract.1 projects/clang600-import/usr.bin/clang/llvm-link/llvm-link.1 projects/clang600-import/usr.bin/clang/llvm-nm/llvm-nm.1 projects/clang600-import/usr.bin/clang/llvm-pdbutil/Makefile projects/clang600-import/usr.bin/clang/llvm-profdata/llvm-profdata.1 projects/clang600-import/usr.bin/clang/llvm-symbolizer/llvm-symbolizer.1 projects/clang600-import/usr.bin/clang/opt/opt.1 Modified: projects/clang600-import/usr.bin/clang/bugpoint/bugpoint.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/bugpoint/bugpoint.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/bugpoint/bugpoint.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "BUGPOINT" "1" "2016-03-03" "3.8" "LLVM" +.TH "BUGPOINT" "1" "2017-12-24" "6" "LLVM" .SH NAME bugpoint \- automatic test case reduction tool . @@ -42,7 +42,7 @@ can be used to debug three types of failures: optimize by optimizers, or bad native code generation (including problems in the static and JIT compilers). It aims to reduce large test cases to small, useful ones. For more information on the design and inner workings of \fBbugpoint\fP, as well as -advice for using bugpoint, see \fIllvm/docs/Bugpoint.html\fP in the LLVM +advice for using bugpoint, see /Bugpoint in the LLVM distribution. .SH OPTIONS .sp @@ -248,7 +248,12 @@ be useful for cross\-compilation. .INDENT 0.0 .INDENT 3.5 This option defines the command to use with the \fB\-\-compile\-custom\fP -option to compile the bitcode testcase. This can be useful for +option to compile the bitcode testcase. The command should exit with a +failure exit code if the file is "interesting" and should exit with a +success exit code (i.e. 0) otherwise (this is the same as if it crashed on +"interesting" inputs). +.sp +This can be useful for testing compiler output without running any link or execute stages. To generate a reduced unit test, you may add CHECK directives to the testcase and pass the name of an executable compile\-command script in this form: @@ -278,6 +283,17 @@ This option defines the path to the command to execute option. .UNINDENT .UNINDENT +.sp +\fB\-\-verbose\-errors\fP=\fI{true,false}\fP +.INDENT 0.0 +.INDENT 3.5 +The default behavior of bugpoint is to print "" when it finds a reduced +test that crashes compilation. This flag prints the output of the crashing +program to stderr. This is useful to make sure it is the same error being +tracked down and not a different error that happens to crash the compiler as +well. Defaults to false. +.UNINDENT +.UNINDENT .SH EXIT STATUS .sp If \fBbugpoint\fP succeeds in finding a problem, it will exit with 0. Otherwise, @@ -288,6 +304,6 @@ opt|opt .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/llc/llc.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/llc/llc.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/llc/llc.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "LLC" "1" "2016-03-03" "3.8" "LLVM" +.TH "LLC" "1" "2017-12-24" "6" "LLVM" .SH NAME llc \- LLVM static compiler . @@ -182,6 +182,15 @@ the \fB\-march\fP option so that code can be generated Specify which EABI version should conform to. Valid EABI versions are \fIgnu\fP, \fI4\fP and \fI5\fP\&. Default value (\fIdefault\fP) depends on the triple. .UNINDENT +.INDENT 0.0 +.TP +.B \-stack\-size\-section +Emit the .stack_sizes section which contains stack size metadata. The section +contains an array of pairs of function symbol references (8 byte) and stack +sizes (unsigned LEB128). The stack size values only include the space allocated +in the function prologue. Functions with dynamic stack allocations are not +included. +.UNINDENT .SS Tuning/Configuration Options .INDENT 0.0 .TP @@ -260,6 +269,6 @@ lli .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/lli/lli.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/lli/lli.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/lli/lli.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "LLI" "1" "2016-03-03" "3.8" "LLVM" +.TH "LLI" "1" "2017-12-24" "6" "LLVM" .SH NAME lli \- directly execute programs from LLVM bitcode . @@ -293,6 +293,6 @@ Otherwise, it will return the exit code of the program .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/llvm-ar/llvm-ar.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-ar/llvm-ar.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/llvm-ar/llvm-ar.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "LLVM-AR" "1" "2016-03-03" "3.8" "LLVM" +.TH "LLVM-AR" "1" "2017-12-24" "6" "LLVM" .SH NAME llvm-ar \- LLVM archiver . @@ -385,6 +385,6 @@ ar(1) .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/llvm-as/llvm-as.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-as/llvm-as.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/llvm-as/llvm-as.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "LLVM-AS" "1" "2016-03-03" "3.8" "LLVM" +.TH "LLVM-AS" "1" "2017-12-24" "6" "LLVM" .SH NAME llvm-as \- LLVM assembler . @@ -60,15 +60,15 @@ suffix is appended. .SH OPTIONS .INDENT 0.0 .TP -.B \fB\-f\fP +\fB\-f\fP Enable binary output on terminals. Normally, \fBllvm\-as\fP will refuse to write raw bitcode output if the output stream is a terminal. With this option, \fBllvm\-as\fP will write raw bitcode regardless of the output device. .TP -.B \fB\-help\fP +\fB\-help\fP Print a summary of command line options. .TP -.B \fB\-o\fP \fIfilename\fP +\fB\-o\fP \fIfilename\fP Specify the output file name. If \fIfilename\fP is \fB\-\fP, then \fBllvm\-as\fP sends its output to standard output. .UNINDENT @@ -82,6 +82,6 @@ llvm\-dis|llvm\-dis, gccas|gccas .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/llvm-bcanalyzer/llvm-bcanalyzer.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-bcanalyzer/llvm-bcanalyzer.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/llvm-bcanalyzer/llvm-bcanalyzer.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "LLVM-BCANALYZER" "1" "2016-03-03" "3.8" "LLVM" +.TH "LLVM-BCANALYZER" "1" "2017-12-24" "6" "LLVM" .SH NAME llvm-bcanalyzer \- LLVM bitcode analyzer . @@ -467,10 +467,10 @@ Rate encoding scheme. The percentage is relative to # .UNINDENT .SH SEE ALSO .sp -\fB/CommandGuide/llvm\-dis\fP, \fB/BitCodeFormat\fP +/CommandGuide/llvm\-dis, /BitCodeFormat .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/llvm-cov/llvm-cov.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-cov/llvm-cov.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/llvm-cov/llvm-cov.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "LLVM-COV" "1" "2016-03-03" "3.8" "LLVM" +.TH "LLVM-COV" "1" "2017-12-24" "6" "LLVM" .SH NAME llvm-cov \- emit coverage information . @@ -52,6 +52,8 @@ be provided. \fI\%show\fP .IP \(bu 2 \fI\%report\fP +.IP \(bu 2 +\fI\%export\fP .UNINDENT .SH GCOV COMMAND .SS SYNOPSIS @@ -183,12 +185,12 @@ it exits with zero. .SH SHOW COMMAND .SS SYNOPSIS .sp -\fBllvm\-cov show\fP [\fIoptions\fP] \-instr\-profile \fIPROFILE\fP \fIBIN\fP [\fISOURCES\fP] +\fBllvm\-cov show\fP [\fIoptions\fP] \-instr\-profile \fIPROFILE\fP \fIBIN\fP [\fI\-object BIN,...\fP] [[\fI\-object BIN\fP]] [\fISOURCES\fP] .SS DESCRIPTION .sp -The \fBllvm\-cov show\fP command shows line by line coverage of a binary -\fIBIN\fP using the profile data \fIPROFILE\fP\&. It can optionally be filtered to only -show the coverage for the files listed in \fISOURCES\fP\&. +The \fBllvm\-cov show\fP command shows line by line coverage of the +binaries \fIBIN\fP,... using the profile data \fIPROFILE\fP\&. It can optionally be +filtered to only show the coverage for the files listed in \fISOURCES\fP\&. .sp To use \fBllvm\-cov show\fP, you need a program that is compiled with instrumentation to emit profile and coverage data. To build such a program with @@ -197,7 +199,7 @@ flags. If linking with the \fBclang\fP driver, pass \f to the link stage to make sure the necessary runtime libraries are linked in. .sp The coverage information is stored in the built executable or library itself, -and this is what you should pass to \fBllvm\-cov show\fP as the \fIBIN\fP +and this is what you should pass to \fBllvm\-cov show\fP as a \fIBIN\fP argument. The profile data is generated by running this instrumented program normally. When the program exits it will write out a raw profile file, typically called \fBdefault.profraw\fP, which can be converted to a format that @@ -207,45 +209,48 @@ tool. .INDENT 0.0 .TP .B \-show\-line\-counts -Show the execution counts for each line. This is enabled by default, unless -another \fB\-show\fP option is used. +Show the execution counts for each line. Defaults to true, unless another +\fB\-show\fP option is used. .UNINDENT .INDENT 0.0 .TP .B \-show\-expansions Expand inclusions, such as preprocessor macros or textual inclusions, inline -in the display of the source file. +in the display of the source file. Defaults to false. .UNINDENT .INDENT 0.0 .TP .B \-show\-instantiations For source regions that are instantiated multiple times, such as templates in \fBC++\fP, show each instantiation separately as well as the combined summary. +Defaults to true. .UNINDENT .INDENT 0.0 .TP .B \-show\-regions Show the execution counts for each region by displaying a caret that points to -the character where the region starts. +the character where the region starts. Defaults to false. .UNINDENT .INDENT 0.0 .TP .B \-show\-line\-counts\-or\-regions Show the execution counts for each line if there is only one region on the line, but show the individual regions if there are multiple on the line. +Defaults to false. .UNINDENT .INDENT 0.0 .TP -.B \-use\-color[=VALUE] +.B \-use\-color Enable or disable color output. By default this is autodetected. .UNINDENT .INDENT 0.0 .TP -.B \-arch= -If the covered binary is a universal binary, select the architecture to use. -It is an error to specify an architecture that is not included in the -universal binary or to use an architecture that does not match a -non\-universal binary. +.B \-arch=[*NAMES*] +Specify a list of architectures such that the Nth entry in the list +corresponds to the Nth specified binary. If the covered object is a universal +binary, this specifies the architecture to use. It is an error to specify an +architecture that is not included in the universal binary or to use an +architecture that does not match a non\-universal binary. .UNINDENT .INDENT 0.0 .TP @@ -254,11 +259,54 @@ Show code coverage only for functions with the given n .UNINDENT .INDENT 0.0 .TP +.B \-name\-whitelist= +Show code coverage only for functions listed in the given file. Each line in +the file should start with \fIwhitelist_fun:\fP, immediately followed by the name +of the function to accept. This name can be a wildcard expression. +.UNINDENT +.INDENT 0.0 +.TP .B \-name\-regex= Show code coverage only for functions that match the given regular expression. .UNINDENT .INDENT 0.0 .TP +.B \-format= +Use the specified output format. The supported formats are: "text", "html". +.UNINDENT +.INDENT 0.0 +.TP +.B \-tab\-size= +Replace tabs with spaces when preparing reports. Currently, this is +only supported for the html format. +.UNINDENT +.INDENT 0.0 +.TP +.B \-output\-dir=PATH +Specify a directory to write coverage reports into. If the directory does not +exist, it is created. When used in function view mode (i.e when \-name or +\-name\-regex are used to select specific functions), the report is written to +PATH/functions.EXTENSION. When used in file view mode, a report for each file +is written to PATH/REL_PATH_TO_FILE.EXTENSION. +.UNINDENT +.INDENT 0.0 +.TP +.B \-Xdemangler=| +Specify a symbol demangler. This can be used to make reports more +human\-readable. This option can be specified multiple times to supply +arguments to the demangler (e.g \fI\-Xdemangler c++filt \-Xdemangler \-n\fP for C++). +The demangler is expected to read a newline\-separated list of symbols from +stdin and write a newline\-separated list of the same length to stdout. +.UNINDENT +.INDENT 0.0 +.TP +.B \-num\-threads=N, \-j=N +Use N threads to write file reports (only applicable when \-output\-dir is +specified). When N=0, llvm\-cov auto\-detects an appropriate number of threads to +use. This is the default. +.UNINDENT +.INDENT 0.0 +.TP .B \-line\-coverage\-gt= Show code coverage only for functions with line coverage greater than the given threshold. @@ -281,15 +329,22 @@ given threshold. Show code coverage only for functions with region coverage less than the given threshold. .UNINDENT +.INDENT 0.0 +.TP +.B \-path\-equivalence=, +Map the paths in the coverage data to local source file paths. This allows you +to generate the coverage data on one machine, and then use llvm\-cov on a +different machine where you have the same files on a different path. +.UNINDENT .SH REPORT COMMAND .SS SYNOPSIS .sp -\fBllvm\-cov report\fP [\fIoptions\fP] \-instr\-profile \fIPROFILE\fP \fIBIN\fP [\fISOURCES\fP] +\fBllvm\-cov report\fP [\fIoptions\fP] \-instr\-profile \fIPROFILE\fP \fIBIN\fP [\fI\-object BIN,...\fP] [[\fI\-object BIN\fP]] [\fISOURCES\fP] .SS DESCRIPTION .sp -The \fBllvm\-cov report\fP command displays a summary of the coverage of a -binary \fIBIN\fP using the profile data \fIPROFILE\fP\&. It can optionally be filtered to -only show the coverage for the files listed in \fISOURCES\fP\&. +The \fBllvm\-cov report\fP command displays a summary of the coverage of +the binaries \fIBIN\fP,... using the profile data \fIPROFILE\fP\&. It can optionally be +filtered to only show the coverage for the files listed in \fISOURCES\fP\&. .sp If no source files are provided, a summary line is printed for each file in the coverage data. If any files are provided, summaries are shown for each function @@ -311,9 +366,48 @@ It is an error to specify an architecture that is not universal binary or to use an architecture that does not match a non\-universal binary. .UNINDENT +.INDENT 0.0 +.TP +.B \-show\-functions +Show coverage summaries for each function. Defaults to false. +.UNINDENT +.INDENT 0.0 +.TP +.B \-show\-instantiation\-summary +Show statistics for all function instantiations. Defaults to false. +.UNINDENT +.SH EXPORT COMMAND +.SS SYNOPSIS +.sp +\fBllvm\-cov export\fP [\fIoptions\fP] \-instr\-profile \fIPROFILE\fP \fIBIN\fP [\fI\-object BIN,...\fP] [[\fI\-object BIN\fP]] +.SS DESCRIPTION +.sp +The \fBllvm\-cov export\fP command exports regions, functions, expansions, +and summaries of the coverage of the binaries \fIBIN\fP,... using the profile data +\fIPROFILE\fP as JSON. +.sp +For information on compiling programs for coverage and generating profile data, +see \fI\%SHOW COMMAND\fP\&. +.SS OPTIONS +.INDENT 0.0 +.TP +.B \-arch= +If the covered binary is a universal binary, select the architecture to use. +It is an error to specify an architecture that is not included in the +universal binary or to use an architecture that does not match a +non\-universal binary. +.UNINDENT +.INDENT 0.0 +.TP +.B \-summary\-only +Export only summary information for each file in the coverage data. This mode +will not export coverage information for smaller units such as individual +functions or regions. The result will be the same as produced by :program: +\fIllvm\-cov report\fP command, but presented in JSON format rather than text. +.UNINDENT .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/llvm-diff/llvm-diff.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-diff/llvm-diff.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/llvm-diff/llvm-diff.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "LLVM-DIFF" "1" "2016-03-03" "3.8" "LLVM" +.TH "LLVM-DIFF" "1" "2017-12-24" "6" "LLVM" .SH NAME llvm-diff \- LLVM structural 'diff' . @@ -72,6 +72,6 @@ massive detected differences in blocks. .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/llvm-dis/llvm-dis.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-dis/llvm-dis.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/llvm-dis/llvm-dis.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "LLVM-DIS" "1" "2016-03-03" "3.8" "LLVM" +.TH "LLVM-DIS" "1" "2017-12-24" "6" "LLVM" .SH NAME llvm-dis \- LLVM disassembler . @@ -83,6 +83,6 @@ llvm\-as|llvm\-as .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/llvm-dwarfdump/llvm-dwarfdump.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-dwarfdump/llvm-dwarfdump.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/llvm-dwarfdump/llvm-dwarfdump.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,9 +1,9 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "LLVM-DWARFDUMP" "1" "2016-03-03" "3.8" "LLVM" +.TH "LLVM-DWARFDUMP" "1" "2017-12-24" "6" "LLVM" .SH NAME -llvm-dwarfdump \- print contents of DWARF sections +llvm-dwarfdump \- dump and verify DWARF debug information . .nr rst2man-indent-level 0 . @@ -33,28 +33,157 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-lev .. .SH SYNOPSIS .sp -\fBllvm\-dwarfdump\fP [\fIoptions\fP] [\fIfilenames...\fP] +\fBllvm\-dwarfdump\fP [\fIoptions\fP] [\fIfilename ...\fP] .SH DESCRIPTION .sp -\fBllvm\-dwarfdump\fP parses DWARF sections in the object files -and prints their contents in human\-readable form. +\fBllvm\-dwarfdump\fP parses DWARF sections in object files, +archives, and \fI\&.dSYM\fP bundles and prints their contents in +human\-readable form. Only the .debug_info section is printed unless one of +the section\-specific options or \fI\%\-\-all\fP is specified. .SH OPTIONS .INDENT 0.0 .TP -.B \-debug\-dump=section -Specify the DWARF section to dump. -For example, use \fBabbrev\fP to dump the contents of \fB\&.debug_abbrev\fP section, -\fBloc.dwo\fP to dump the contents of \fB\&.debug_loc.dwo\fP etc. -See \fBllvm\-dwarfdump \-\-help\fP for the complete list of supported sections. -Use \fBall\fP to dump all DWARF sections. It is the default. +.B \-a, \-\-all +Disassemble all supported DWARF sections. .UNINDENT +.INDENT 0.0 +.TP +.B \-\-arch= +Dump DWARF debug information for the specified CPU architecture. +Architectures may be specified by name or by number. This +option can be specified multiple times, once for each desired +architecture. All CPU architectures will be printed by +default. +.UNINDENT +.INDENT 0.0 +.TP +.B \-c, \-\-show\-children +Show a debug info entry\(aqs children when using +the \fI\%\-\-debug\-info\fP, \fI\%\-\-find\fP, +and \fI\%\-\-name\fP options. +.UNINDENT +.INDENT 0.0 +.TP +.B \-f , \-\-find= +Search for the exact text in the accelerator tables +and print the matching debug information entries. +When there is no accelerator tables or the name of the DIE +you are looking for is not found in the accelerator tables, +try using the slower but more complete \fI\%\-\-name\fP option. +.UNINDENT +.INDENT 0.0 +.TP +.B \-F, \-\-show\-form +Show DWARF form types after the DWARF attribute types. +.UNINDENT +.INDENT 0.0 +.TP +.B \-h, \-\-help +Show help and usage for this command. +.UNINDENT +.INDENT 0.0 +.TP +.B \-i, \-\-ignore\-case +Ignore case distinctions in when searching entries by name +or by regular expression. +.UNINDENT +.INDENT 0.0 +.TP +.B \-n , \-\-name= +Find and print all debug info entries whose name +(\fIDW_AT_name\fP attribute) matches the exact text in +. Use the \fI\%\-\-regex\fP option to have + become a regular expression for more flexible +pattern matching. +.UNINDENT +.INDENT 0.0 +.TP +.B \-\-lookup=
+Lookup
in the debug information and print out the file, +function, block, and line table details. +.UNINDENT +.INDENT 0.0 +.TP +.B \-o , \-\-out\-file= +Redirect output to a file specified by . +.UNINDENT +.INDENT 0.0 +.TP +.B \-p, \-\-show\-parents +Show a debug info entry\(aqs parent objects when using the +\fI\%\-\-debug\-info\fP, \fI\%\-\-find\fP, and +\fI\%\-\-name\fP options. +.UNINDENT +.INDENT 0.0 +.TP +.B \-r , \-\-recurse\-depth= +Only recurse to a maximum depth of when dumping debug info +entries. +.UNINDENT +.INDENT 0.0 +.TP +.B \-\-statistics +Collect debug info quality metrics and print the results +as machine\-readable single\-line JSON output. +.UNINDENT +.INDENT 0.0 +.TP +.B \-x, \-\-regex +Treat any strings as regular expressions when searching +instead of just as an exact string match. +.UNINDENT +.INDENT 0.0 +.TP +.B \-u, \-\-uuid +Show the UUID for each architecture. +.UNINDENT +.INDENT 0.0 +.TP +.B \-\-diff +Dump the output in a format that is more friendly for comparing +DWARF output from two different files. +.UNINDENT +.INDENT 0.0 +.TP +.B \-v, \-\-verbose +Display verbose information when dumping. This can help to debug +DWARF issues. +.UNINDENT +.INDENT 0.0 +.TP +.B \-\-verify +Verify the structure of the DWARF information by verifying the +compile unit chains, DIE relationships graph, address +ranges, and more. +.UNINDENT +.INDENT 0.0 +.TP +.B \-\-version +Display the version of the tool. +.UNINDENT +.INDENT 0.0 +.TP +.B \-\-debug\-abbrev, \-\-debug\-aranges, \-\-debug\-cu\-index, \-\-debug\-frame [=], \-\-debug\-gnu\-pubnames, \-\-debug\-gnu\-pubtypes, \-\-debug\-info [=], \-\-debug\-line [=], \-\-debug\-loc [=], \-\-debug\-macro, \-\-debug\-pubnames, \-\-debug\-pubtypes, \-\-debug\-ranges, \-\-debug\-str, \-\-debug\-str\-offsets, \-\-debug\-tu\-index, \-\-debug\-types, \-\-eh\-frame, \-\-gdb\-index, \-\-apple\-names, \-\-apple\-types, \-\-apple\-namespaces, \-\-apple\-objc +Dump the specified DWARF section by name. Only the +\fI\&.debug_info\fP section is shown by default. Some entries +support adding an \fI=\fP as a way to provide an +optional offset of the exact entry to dump within the +respective section. When an offset is provided, only the +entry at that offset will be dumped, else the entire +section will be dumped. Children of items at a specific +offset can be dumped by also using the +\fI\%\-\-show\-children\fP option where applicable. +.UNINDENT .SH EXIT STATUS .sp \fBllvm\-dwarfdump\fP returns 0 if the input files were parsed and dumped successfully. Otherwise, it returns 1. +.SH SEE ALSO +.sp +\fBdsymutil(1)\fP .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/llvm-extract/llvm-extract.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-extract/llvm-extract.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/llvm-extract/llvm-extract.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "LLVM-EXTRACT" "1" "2016-03-03" "3.8" "LLVM" +.TH "LLVM-EXTRACT" "1" "2017-12-24" "6" "LLVM" .SH NAME llvm-extract \- extract a function from an LLVM module . @@ -124,6 +124,6 @@ bugpoint .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/llvm-link/llvm-link.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-link/llvm-link.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/llvm-link/llvm-link.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "LLVM-LINK" "1" "2016-03-03" "3.8" "LLVM" +.TH "LLVM-LINK" "1" "2017-12-24" "6" "LLVM" .SH NAME llvm-link \- LLVM bitcode linker . @@ -84,6 +84,6 @@ occurs, it will exit with a non\-zero value. .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/llvm-nm/llvm-nm.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-nm/llvm-nm.1 Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/llvm-nm/llvm-nm.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "LLVM-NM" "1" "2016-03-03" "3.8" "LLVM" +.TH "LLVM-NM" "1" "2017-12-24" "6" "LLVM" .SH NAME llvm-nm \- list LLVM bitcode and object file's symbol table . @@ -115,12 +115,12 @@ file. .INDENT 0.0 .TP .B \-B (default) -Use BSD output format. Alias for \fB\-\-format=bsd\fP\&. +Use BSD output format. Alias for \fI\-\-format=bsd\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-P -Use POSIX.2 output format. Alias for \fB\-\-format=posix\fP\&. +Use POSIX.2 output format. Alias for \fI\-\-format=posix\fP\&. .UNINDENT .INDENT 0.0 .TP @@ -186,14 +186,17 @@ Sort symbols by size. .B \-\-undefined\-only, \-u Print only symbols referenced but not defined in this file. .UNINDENT +.INDENT 0.0 +.TP +.B \-\-radix=RADIX, \-t +Specify the radix of the symbol address(es). Values accepted d(decimal), +x(hexadecomal) and o(octal). +.UNINDENT .SH BUGS .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 -\fBllvm\-nm\fP cannot demangle C++ mangled names, like GNU \fBnm\fP -can. -.IP \(bu 2 \fBllvm\-nm\fP does not support the full set of arguments that GNU \fBnm\fP does. .UNINDENT @@ -208,6 +211,6 @@ llvm\-dis, ar(1), nm(1) .SH AUTHOR Maintained by The LLVM Team (http://llvm.org/). .SH COPYRIGHT -2003-2016, LLVM Project +2003-2017, LLVM Project .\" Generated by docutils manpage writer. . Modified: projects/clang600-import/usr.bin/clang/llvm-pdbutil/Makefile ============================================================================== --- projects/clang600-import/usr.bin/clang/llvm-pdbutil/Makefile Sun Dec 24 12:46:28 2017 (r327146) +++ projects/clang600-import/usr.bin/clang/llvm-pdbutil/Makefile Sun Dec 24 13:02:43 2017 (r327147) @@ -1,7 +1,6 @@ # $FreeBSD$ PROG_CXX= llvm-pdbutil -MAN= SRCDIR= tools/llvm-pdbutil SRCS+= Analyze.cpp Added: projects/clang600-import/usr.bin/clang/llvm-pdbutil/llvm-pdbutil.1 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang600-import/usr.bin/clang/llvm-pdbutil/llvm-pdbutil.1 Sun Dec 24 13:02:43 2017 (r327147) @@ -0,0 +1,745 @@ +.\" $FreeBSD$ +.\" Man page generated from reStructuredText. +. +.TH "LLVM-PDBUTIL" "1" "2017-12-24" "6" "LLVM" +.SH NAME +llvm-pdbutil \- PDB File forensics and diagnostics +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.INDENT 0.0 +.IP \(bu 2 +\fI\%Synopsis\fP +.IP \(bu 2 +\fI\%Description\fP +.IP \(bu 2 +\fI\%Subcommands\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%pretty\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Summary\fP +.IP \(bu 2 +\fI\%Options\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Filtering and Sorting Options\fP +.IP \(bu 2 +\fI\%Symbol Type Options\fP +.IP \(bu 2 +\fI\%Other Options\fP +.UNINDENT +.UNINDENT +.IP \(bu 2 +\fI\%dump\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Summary\fP +.IP \(bu 2 +\fI\%Options\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%MSF Container Options\fP +.IP \(bu 2 +\fI\%Module & File Options\fP +.IP \(bu 2 +\fI\%Symbol Options\fP +.IP \(bu 2 +\fI\%Type Record Options\fP +.IP \(bu 2 +\fI\%Miscellaneous Options\fP +.UNINDENT +.UNINDENT +.IP \(bu 2 +\fI\%bytes\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Summary\fP +.IP \(bu 2 +\fI\%Options\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%MSF File Options\fP +.IP \(bu 2 +\fI\%PDB Stream Options\fP +.IP \(bu 2 +\fI\%DBI Stream Options\fP +.IP \(bu 2 +\fI\%Module Options\fP +.IP \(bu 2 +\fI\%Type Record Options\fP +.UNINDENT +.UNINDENT +.IP \(bu 2 +\fI\%pdb2yaml\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Summary\fP +.IP \(bu 2 +\fI\%Options\fP +.UNINDENT +.IP \(bu 2 +\fI\%yaml2pdb\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Summary\fP +.IP \(bu 2 +\fI\%Options\fP +.UNINDENT +.IP \(bu 2 +\fI\%merge\fP +.INDENT 2.0 +.IP \(bu 2 +\fI\%Summary\fP +.IP \(bu 2 +\fI\%Options\fP +.UNINDENT +.UNINDENT +.UNINDENT +.SH SYNOPSIS +.sp +\fBllvm\-pdbutil\fP [\fIsubcommand\fP] [\fIoptions\fP] +.SH DESCRIPTION +.sp +Display types, symbols, CodeView records, and other information from a +PDB file, as well as manipulate and create PDB files. \fBllvm\-pdbutil\fP +is normally used by FileCheck\-based tests to test LLVM\(aqs PDB reading and +writing functionality, but can also be used for general PDB file investigation +and forensics, or as a replacement for cvdump. +.SH SUBCOMMANDS +.sp +\fBllvm\-pdbutil\fP is separated into several subcommands each tailored to +a different purpose. A brief summary of each command follows, with more detail +in the sections that follow. +.INDENT 0.0 +.INDENT 3.5 +.INDENT 0.0 +.IP \(bu 2 +\fI\%pretty\fP \- Dump symbol and type information in a format that +tries to look as much like the original source code as possible. +.IP \(bu 2 +\fI\%dump\fP \- Dump low level types and structures from the PDB +file, including CodeView records, hash tables, PDB streams, etc. +.IP \(bu 2 +\fI\%bytes\fP \- Dump data from the PDB file\(aqs streams, records, +types, symbols, etc as raw bytes. +.IP \(bu 2 +\fI\%yaml2pdb\fP \- Given a yaml description of a PDB file, produce +a valid PDB file that matches that description. +.IP \(bu 2 +\fI\%pdb2yaml\fP \- For a given PDB file, produce a YAML +description of some or all of the file in a way that the PDB can be +reconstructed. +.IP \(bu 2 +\fI\%merge\fP \- Given two PDBs, produce a third PDB that is the +result of merging the two input PDBs. +.UNINDENT +.UNINDENT +.UNINDENT +.SS pretty +.sp +\fBIMPORTANT:\fP +.INDENT 0.0 +.INDENT 3.5 +The \fBpretty\fP subcommand is built on the Windows DIA SDK, and as such is not +supported on non\-Windows platforms. +.UNINDENT +.UNINDENT +.sp +USAGE: \fBllvm\-pdbutil\fP pretty [\fIoptions\fP] +.SS Summary +.sp +The \fIpretty\fP subcommand displays a very high level representation of your +program\(aqs debug info. Since it is built on the Windows DIA SDK which is the +standard API that Windows tools and debuggers query debug information, it +presents a more authoritative view of how a debugger is going to interpret your +debug information than a mode which displays low\-level CodeView records. +.SS Options +.SS Filtering and Sorting Options +.sp +\fBNOTE:\fP +.INDENT 0.0 +.INDENT 3.5 +\fIexclude\fP filters take priority over \fIinclude\fP filters. So if a filter +matches both an include and an exclude rule, then it is excluded. +.UNINDENT +.UNINDENT +.INDENT 0.0 +.TP +.B \-exclude\-compilands= +When dumping compilands, compiland source\-file contributions, or per\-compiland +symbols, this option instructs \fBllvm\-pdbutil\fP to omit any compilands that +match the specified regular expression. +.UNINDENT +.INDENT 0.0 +.TP +.B \-exclude\-symbols= +When dumping global, public, or per\-compiland symbols, this option instructs +\fBllvm\-pdbutil\fP to omit any symbols that match the specified regular +expression. +.UNINDENT +.INDENT 0.0 +.TP +.B \-exclude\-types= +When dumping types, this option instructs \fBllvm\-pdbutil\fP to omit any types +that match the specified regular expression. +.UNINDENT +.INDENT 0.0 +.TP +.B \-include\-compilands= +When dumping compilands, compiland source\-file contributions, or per\-compiland +symbols, limit the initial search to only those compilands that match the +specified regular expression. +.UNINDENT +.INDENT 0.0 +.TP +.B \-include\-symbols= +When dumping global, public, or per\-compiland symbols, limit the initial +search to only those symbols that match the specified regular expression. +.UNINDENT +.INDENT 0.0 +.TP +.B \-include\-types= +When dumping types, limit the initial search to only those types that match +the specified regular expression. +.UNINDENT +.INDENT 0.0 +.TP +.B \-min\-class\-padding= +Only display types that have at least the specified amount of alignment +padding, accounting for padding in base classes and aggregate field members. +.UNINDENT +.INDENT 0.0 +.TP +.B \-min\-class\-padding\-imm= +Only display types that have at least the specified amount of alignment +padding, ignoring padding in base classes and aggregate field members. +.UNINDENT *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Dec 24 13:06:39 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 068D1E8D257 for ; Sun, 24 Dec 2017 13:06:39 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D269678BFA; Sun, 24 Dec 2017 13:06:38 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBOD6c7P081039; Sun, 24 Dec 2017 13:06:38 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBOD6cEM081038; Sun, 24 Dec 2017 13:06:38 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712241306.vBOD6cEM081038@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 13:06:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327148 - projects/clang600-import/usr.bin/clang/clang X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang600-import/usr.bin/clang/clang X-SVN-Commit-Revision: 327148 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 13:06:39 -0000 Author: dim Date: Sun Dec 24 13:06:37 2017 New Revision: 327148 URL: https://svnweb.freebsd.org/changeset/base/327148 Log: Regenerate clang manpage. Modified: projects/clang600-import/usr.bin/clang/clang/clang.1 Modified: projects/clang600-import/usr.bin/clang/clang/clang.1 ============================================================================== --- projects/clang600-import/usr.bin/clang/clang/clang.1 Sun Dec 24 13:02:43 2017 (r327147) +++ projects/clang600-import/usr.bin/clang/clang/clang.1 Sun Dec 24 13:06:37 2017 (r327148) @@ -1,7 +1,7 @@ .\" $FreeBSD$ .\" Man page generated from reStructuredText. . -.TH "CLANG" "1" "March 04, 2016" "3.8" "Clang" +.TH "CLANG" "1" "Dec 24, 2017" "6" "Clang" .SH NAME clang \- the Clang C, C++, and Objective-C compiler . @@ -135,10 +135,16 @@ Specify the language standard to compile for. .TP .B \-stdlib= Specify the C++ standard library to use; supported options are libstdc++ and -libc++. +libc++. If not specified, platform default will be used. .UNINDENT .INDENT 0.0 .TP +.B \-rtlib= +Specify the compiler runtime library to use; supported options are libgcc and +compiler\-rt. If not specified, platform default will be used. +.UNINDENT +.INDENT 0.0 +.TP .B \-ansi Same as \-std=c89. .UNINDENT @@ -207,18 +213,6 @@ Enable the "Blocks" language feature. .UNINDENT .INDENT 0.0 .TP -.B \-fobjc\-gc\-only -Indicate that Objective\-C code should be compiled in GC\-only mode, which only -works when Objective\-C Garbage Collection is enabled. -.UNINDENT -.INDENT 0.0 -.TP -.B \-fobjc\-gc -Indicate that Objective\-C code should be compiled in hybrid\-GC mode, which -works with both GC and non\-GC mode. -.UNINDENT -.INDENT 0.0 -.TP .B \-fobjc\-abi\-version=version Select the Objective\-C ABI version to use. Available versions are 1 (legacy "fragile" ABI), 2 (non\-fragile ABI 1), and 3 (non\-fragile ABI 2). @@ -233,9 +227,9 @@ default). .UNINDENT .INDENT 0.0 .TP -.B \-fobjc\-nonfragile\-abi +.B \-fobjc\-nonfragile\-abi, \-fno\-objc\-nonfragile\-abi Enable use of the Objective\-C non\-fragile ABI. On platforms for which this is -the default ABI, it can be disabled with \fB\-fno\-objc\-nonfragile\-abi\fP\&. +the default ABI, it can be disabled with \fI\%\-fno\-objc\-nonfragile\-abi\fP\&. .UNINDENT .SS Target Selection Options .sp @@ -270,7 +264,7 @@ but which may not exist on earlier ones. .SS Code Generation Options .INDENT 0.0 .TP -.B \-O0, \-O1, \-O2, \-O3, \-Ofast, \-Os, \-Oz, \-O, \-O4 +.B \-O0, \-O1, \-O2, \-O3, \-Ofast, \-Os, \-Oz, \-Og, \-O, \-O4 Specify which optimization level to use: .INDENT 7.0 .INDENT 3.5 @@ -296,6 +290,9 @@ size. \fI\%\-Oz\fP Like \fI\%\-Os\fP (and thus \fI\%\-O2\fP), but reduces code size further. .sp +\fI\%\-Og\fP Like \fI\%\-O1\fP\&. In future versions, this option might +disable different optimizations in order to improve debuggability. +.sp \fI\%\-O\fP Equivalent to \fI\%\-O2\fP\&. .sp \fI\%\-O4\fP and higher @@ -309,22 +306,34 @@ Currently equivalent to \fI\%\-O3\fP .UNINDENT .INDENT 0.0 .TP -.B \-g -Generate debug information. Note that Clang debug information works best at \-O0. -.UNINDENT -.INDENT 0.0 -.TP -.B \-gmodules -Generate debug information that contains external references to -types defined in clang modules or precompiled headers instead of -emitting redundant debug type information into every object file. -This option implies \fB\-fmodule\-format=obj\fP\&. +.B \-g, \-gline\-tables\-only, \-gmodules +Control debug information output. Note that Clang debug information works +best at \fI\%\-O0\fP\&. When more than one option starting with \fI\-g\fP is +specified, the last one wins: +.INDENT 7.0 +.INDENT 3.5 +\fB\-g\fP Generate debug information. .sp +\fB\-gline\-tables\-only\fP Generate only line table debug information. This +allows for symbolicated backtraces with inlining information, but does not +include any information about variables, their locations or types. +.sp +\fI\%\-gmodules\fP Generate debug information that contains external +references to types defined in Clang modules or precompiled headers instead +of emitting redundant debug type information into every object file. This +option transparently switches the Clang module format to object file +containers that hold the Clang module together with the debug information. +When compiling a program that uses Clang modules or precompiled headers, +this option produces complete debug information with faster compile +times and much smaller object files. +.sp This option should not be used when building static libraries for distribution to other machines because the debug info will contain -references to the module cache on the machine the object files in -the library were built on. +references to the module cache on the machine the object files in the +library were built on. .UNINDENT +.UNINDENT +.UNINDENT .INDENT 0.0 .TP .B \-fstandalone\-debug \-fno\-standalone\-debug @@ -362,9 +371,9 @@ This flag sets the default visibility level. .UNINDENT .INDENT 0.0 .TP -.B \-fcommon +.B \-fcommon, \-fno\-common This flag specifies that variables without initializers get common linkage. -It can be disabled with \fB\-fno\-common\fP\&. +It can be disabled with \fI\%\-fno\-common\fP\&. .UNINDENT .INDENT 0.0 .TP @@ -377,11 +386,17 @@ to choose a more efficient model if possible. .UNINDENT .INDENT 0.0 .TP -.B \-flto, \-emit\-llvm +.B \-flto, \-flto=full, \-flto=thin, \-emit\-llvm Generate output files in LLVM formats, suitable for link time optimization. When used with \fI\%\-S\fP this generates LLVM intermediate language assembly files, otherwise this generates LLVM bitcode format object files (which may be passed to the linker depending on the stage selection options). +.sp +The default for \fI\%\-flto\fP is "full", in which the +LLVM bitcode is suitable for monolithic Link Time Optimization (LTO), where +the linker merges all such modules into a single combined module for +optimization. With "thin", ThinLTO +compilation is invoked instead. .UNINDENT .SS Driver Options .INDENT 0.0 @@ -447,7 +462,8 @@ Print the full library path of file. .INDENT 0.0 .TP .B \-print\-libgcc\-file\-name -Print the library path for "libgcc.a". +Print the library path for the currently used compiler runtime library +("libgcc.a" or "libclang_rt.builtins.*.a"). .UNINDENT .INDENT 0.0 .TP @@ -466,6 +482,13 @@ Save intermediate compilation results. .UNINDENT .INDENT 0.0 .TP +.B \-save\-stats, \-save\-stats=cwd, \-save\-stats=obj +Save internal code generation (LLVM) statistics to a file in the current +directory (\fI\%\-save\-stats\fP/"\-save\-stats=cwd") or the directory +of the output file ("\-save\-state=obj"). +.UNINDENT +.INDENT 0.0 +.TP .B \-integrated\-as, \-no\-integrated\-as Used to enable and disable, respectively, the use of the integrated assembler. Whether the integrated assembler is on by default is target @@ -575,10 +598,10 @@ include preprocessed source files (use the \fI\%\-E\fP output of the compiler, along with information to reproduce. .SH SEE ALSO .sp -\fIas(1)\fP, \fIld(1)\fP +\fBas(1)\fP, \fBld(1)\fP .SH AUTHOR Maintained by the Clang / LLVM Team () .SH COPYRIGHT -2007-2016, The Clang Team +2007-2017, The Clang Team .\" Generated by docutils manpage writer. . From owner-svn-src-projects@freebsd.org Sun Dec 24 13:19:04 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 029F3E8DDD1 for ; Sun, 24 Dec 2017 13:19:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C4262793C9; Sun, 24 Dec 2017 13:19:03 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBODJ27L085786; Sun, 24 Dec 2017 13:19:02 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBODJ23V085785; Sun, 24 Dec 2017 13:19:02 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712241319.vBODJ23V085785@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 13:19:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327149 - projects/clang600-import/tools/build/mk X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang600-import/tools/build/mk X-SVN-Commit-Revision: 327149 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 13:19:04 -0000 Author: dim Date: Sun Dec 24 13:19:02 2017 New Revision: 327149 URL: https://svnweb.freebsd.org/changeset/base/327149 Log: Update OptionalObsoleteFiles.inc again. Modified: projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc Modified: projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc Sun Dec 24 13:06:37 2017 (r327148) +++ projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc Sun Dec 24 13:19:02 2017 (r327149) @@ -1509,6 +1509,7 @@ OLD_FILES+=usr/share/man/man1/llvm-dwarfdump.1 OLD_FILES+=usr/share/man/man1/llvm-extract.1.gz OLD_FILES+=usr/share/man/man1/llvm-link.1.gz OLD_FILES+=usr/share/man/man1/llvm-nm.1.gz +OLD_FILES+=usr/share/man/man1/llvm-pdbutil.1.gz OLD_FILES+=usr/share/man/man1/llvm-symbolizer.1.gz OLD_FILES+=usr/share/man/man1/opt.1.gz .endif From owner-svn-src-projects@freebsd.org Sun Dec 24 13:23:02 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 527B1E8E287 for ; Sun, 24 Dec 2017 13:23:02 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BE385797D9; Sun, 24 Dec 2017 13:23:01 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBODN0kA089840; Sun, 24 Dec 2017 13:23:00 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBODMwnY089807; Sun, 24 Dec 2017 13:22:58 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712241322.vBODMwnY089807@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 13:22:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327150 - in projects/clang600-import: . bin/sh etc/rc.d include lib/libc/gen lib/libc/net lib/libc/stdio lib/libdevinfo sbin/ipfw sbin/reboot share/man/man4 share/man/man9 share/misc s... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import: . bin/sh etc/rc.d include lib/libc/gen lib/libc/net lib/libc/stdio lib/libdevinfo sbin/ipfw sbin/reboot share/man/man4 share/man/man9 share/misc stand/common stand/efi/boo... X-SVN-Commit-Revision: 327150 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 13:23:02 -0000 Author: dim Date: Sun Dec 24 13:22:57 2017 New Revision: 327150 URL: https://svnweb.freebsd.org/changeset/base/327150 Log: Merge ^/head r326936 through r327149. Added: projects/clang600-import/share/man/man4/nda.4 - copied unchanged from r327149, head/share/man/man4/nda.4 projects/clang600-import/sys/dev/extres/syscon/ - copied from r327149, head/sys/dev/extres/syscon/ projects/clang600-import/sys/sys/atomic_common.h - copied unchanged from r327149, head/sys/sys/atomic_common.h projects/clang600-import/usr.bin/truss/aarch64-cloudabi32.c - copied unchanged from r327149, head/usr.bin/truss/aarch64-cloudabi32.c projects/clang600-import/usr.bin/truss/i386-cloudabi32.c - copied unchanged from r327149, head/usr.bin/truss/i386-cloudabi32.c Deleted: projects/clang600-import/sys/dev/ixgbe/ixgbe_netmap.c projects/clang600-import/sys/dev/ixgbe/ixgbe_netmap.h projects/clang600-import/sys/dev/syscon/ Modified: projects/clang600-import/.arclint projects/clang600-import/bin/sh/sh.1 projects/clang600-import/etc/rc.d/ldconfig projects/clang600-import/include/stdlib.h projects/clang600-import/lib/libc/gen/Symbol.map projects/clang600-import/lib/libc/gen/daemon.3 projects/clang600-import/lib/libc/gen/daemon.c projects/clang600-import/lib/libc/net/getaddrinfo.c projects/clang600-import/lib/libc/stdio/fopen.3 projects/clang600-import/lib/libdevinfo/devinfo.c projects/clang600-import/sbin/ipfw/altq.c projects/clang600-import/sbin/ipfw/dummynet.c projects/clang600-import/sbin/ipfw/ipfw2.c projects/clang600-import/sbin/ipfw/ipfw2.h projects/clang600-import/sbin/ipfw/ipv6.c projects/clang600-import/sbin/ipfw/main.c projects/clang600-import/sbin/ipfw/nat.c projects/clang600-import/sbin/reboot/reboot.8 projects/clang600-import/share/man/man4/Makefile projects/clang600-import/share/man/man4/ada.4 projects/clang600-import/share/man/man4/da.4 projects/clang600-import/share/man/man4/em.4 projects/clang600-import/share/man/man4/md.4 projects/clang600-import/share/man/man4/pci.4 projects/clang600-import/share/man/man4/scsi.4 projects/clang600-import/share/man/man9/atomic.9 projects/clang600-import/share/misc/bsd-family-tree projects/clang600-import/stand/common/bootstrap.h projects/clang600-import/stand/common/interp.c projects/clang600-import/stand/common/interp_forth.c projects/clang600-import/stand/efi/boot1/boot1.c projects/clang600-import/stand/efi/loader/main.c projects/clang600-import/stand/i386/Makefile.inc projects/clang600-import/stand/i386/boot2/Makefile projects/clang600-import/stand/i386/gptboot/Makefile projects/clang600-import/stand/i386/libfirewire/Makefile projects/clang600-import/stand/i386/libi386/Makefile projects/clang600-import/stand/i386/libi386/multiboot.c projects/clang600-import/stand/i386/loader/Makefile projects/clang600-import/stand/i386/loader/main.c projects/clang600-import/stand/i386/zfsboot/Makefile projects/clang600-import/stand/mips/beri/loader/main.c projects/clang600-import/stand/ofw/common/main.c projects/clang600-import/stand/powerpc/kboot/main.c projects/clang600-import/stand/powerpc/ps3/main.c projects/clang600-import/stand/sparc64/loader/main.c projects/clang600-import/stand/uboot/common/main.c projects/clang600-import/stand/userboot/userboot/main.c projects/clang600-import/sys/amd64/include/atomic.h projects/clang600-import/sys/amd64/vmm/intel/vmx.c projects/clang600-import/sys/arm/arm/machdep.c projects/clang600-import/sys/arm/arm/pmap-v6.c projects/clang600-import/sys/arm/include/atomic.h projects/clang600-import/sys/arm64/include/atomic.h projects/clang600-import/sys/cam/cam_ccb.h projects/clang600-import/sys/cam/cam_periph.c projects/clang600-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h projects/clang600-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c projects/clang600-import/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/clang600-import/sys/compat/linuxkpi/common/src/linux_page.c projects/clang600-import/sys/compat/linuxkpi/common/src/linux_rcu.c projects/clang600-import/sys/conf/NOTES projects/clang600-import/sys/conf/files projects/clang600-import/sys/conf/ldscript.powerpc64 projects/clang600-import/sys/conf/options projects/clang600-import/sys/dev/acpica/acpi.c projects/clang600-import/sys/dev/acpica/acpi_cpu.c projects/clang600-import/sys/dev/aha/aha_isa.c projects/clang600-import/sys/dev/ahci/ahci_pci.c projects/clang600-import/sys/dev/aic/aic_isa.c projects/clang600-import/sys/dev/an/if_an_isa.c projects/clang600-import/sys/dev/atkbdc/atkbdc_isa.c projects/clang600-import/sys/dev/bnxt/bnxt.h projects/clang600-import/sys/dev/bnxt/bnxt_hwrm.c projects/clang600-import/sys/dev/bnxt/bnxt_hwrm.h projects/clang600-import/sys/dev/bnxt/bnxt_sysctl.c projects/clang600-import/sys/dev/bnxt/if_bnxt.c projects/clang600-import/sys/dev/cs/if_cs_isa.c projects/clang600-import/sys/dev/cxgbe/adapter.h projects/clang600-import/sys/dev/cxgbe/common/common.h projects/clang600-import/sys/dev/cxgbe/common/t4_hw.c projects/clang600-import/sys/dev/cxgbe/t4_main.c projects/clang600-import/sys/dev/cxgbe/t4_netmap.c projects/clang600-import/sys/dev/cxgbe/t4_sge.c projects/clang600-import/sys/dev/cxgbe/t4_vf.c projects/clang600-import/sys/dev/drm2/i915/i915_drv.c projects/clang600-import/sys/dev/drm2/radeon/radeon_drv.c projects/clang600-import/sys/dev/e1000/em_txrx.c projects/clang600-import/sys/dev/e1000/if_em.c projects/clang600-import/sys/dev/e1000/if_em.h projects/clang600-import/sys/dev/e1000/igb_txrx.c projects/clang600-import/sys/dev/ed/if_ed_isa.c projects/clang600-import/sys/dev/ed/if_ed_pci.c projects/clang600-import/sys/dev/ep/if_ep_isa.c projects/clang600-import/sys/dev/ex/if_ex_isa.c projects/clang600-import/sys/dev/fdc/fdc_isa.c projects/clang600-import/sys/dev/fdc/fdc_pccard.c projects/clang600-import/sys/dev/fe/if_fe_isa.c projects/clang600-import/sys/dev/intpm/intpm.c projects/clang600-import/sys/dev/ioat/ioat.c projects/clang600-import/sys/dev/ixgbe/if_bypass.c projects/clang600-import/sys/dev/ixgbe/if_fdir.c projects/clang600-import/sys/dev/ixgbe/if_ix.c projects/clang600-import/sys/dev/ixgbe/if_ixv.c projects/clang600-import/sys/dev/ixgbe/if_sriov.c projects/clang600-import/sys/dev/ixgbe/ix_txrx.c projects/clang600-import/sys/dev/ixgbe/ixgbe.h projects/clang600-import/sys/dev/ixgbe/ixgbe_common.c projects/clang600-import/sys/dev/ixgbe/ixgbe_fdir.h projects/clang600-import/sys/dev/ixgbe/ixgbe_osdep.c projects/clang600-import/sys/dev/ixgbe/ixgbe_osdep.h projects/clang600-import/sys/dev/ixgbe/ixgbe_phy.c projects/clang600-import/sys/dev/ixgbe/ixgbe_sriov.h projects/clang600-import/sys/dev/ixgbe/ixgbe_type.h projects/clang600-import/sys/dev/ixgbe/ixgbe_vf.h projects/clang600-import/sys/dev/joy/joy_isa.c projects/clang600-import/sys/dev/le/if_le_isa.c projects/clang600-import/sys/dev/lmc/if_lmc.c projects/clang600-import/sys/dev/lmc/if_lmc.h projects/clang600-import/sys/dev/md/md.c projects/clang600-import/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c projects/clang600-import/sys/dev/mse/mse_isa.c projects/clang600-import/sys/dev/ntb/ntb_hw/ntb_hw_intel.c projects/clang600-import/sys/dev/nvme/nvme.c projects/clang600-import/sys/dev/nvme/nvme_ctrlr.c projects/clang600-import/sys/dev/nvme/nvme_private.h projects/clang600-import/sys/dev/nvme/nvme_sim.c projects/clang600-import/sys/dev/pccard/pccardvar.h projects/clang600-import/sys/dev/pccbb/pccbb_isa.c projects/clang600-import/sys/dev/pci/pci.c projects/clang600-import/sys/dev/ppc/ppc_isa.c projects/clang600-import/sys/dev/sbni/if_sbni_isa.c projects/clang600-import/sys/dev/sio/sio_isa.c projects/clang600-import/sys/dev/uart/uart_bus_isa.c projects/clang600-import/sys/dev/usb/controller/xhci_pci.c projects/clang600-import/sys/fs/devfs/devfs_vnops.c projects/clang600-import/sys/fs/ext2fs/ext2_vnops.c projects/clang600-import/sys/fs/fdescfs/fdesc_vnops.c projects/clang600-import/sys/fs/fifofs/fifo_vnops.c projects/clang600-import/sys/fs/fuse/fuse_param.h projects/clang600-import/sys/fs/fuse/fuse_vnops.c projects/clang600-import/sys/fs/msdosfs/msdosfs_vnops.c projects/clang600-import/sys/fs/nandfs/nandfs_vnops.c projects/clang600-import/sys/fs/nfs/nfs_commonport.c projects/clang600-import/sys/fs/nfs/nfs_commonsubs.c projects/clang600-import/sys/fs/nfs/nfsproto.h projects/clang600-import/sys/fs/nfsclient/nfs_clcomsubs.c projects/clang600-import/sys/fs/nfsclient/nfs_clvnops.c projects/clang600-import/sys/fs/smbfs/smbfs_vnops.c projects/clang600-import/sys/fs/tmpfs/tmpfs.h projects/clang600-import/sys/fs/tmpfs/tmpfs_fifoops.c projects/clang600-import/sys/fs/tmpfs/tmpfs_subr.c projects/clang600-import/sys/fs/tmpfs/tmpfs_vnops.c projects/clang600-import/sys/fs/tmpfs/tmpfs_vnops.h projects/clang600-import/sys/fs/udf/udf_vnops.c projects/clang600-import/sys/geom/mirror/g_mirror.c projects/clang600-import/sys/geom/mirror/g_mirror.h projects/clang600-import/sys/i386/include/atomic.h projects/clang600-import/sys/isa/isa_common.c projects/clang600-import/sys/isa/isavar.h projects/clang600-import/sys/isa/pnp.c projects/clang600-import/sys/isa/vga_isa.c projects/clang600-import/sys/kern/kern_descrip.c projects/clang600-import/sys/kern/kern_shutdown.c projects/clang600-import/sys/kern/kern_tc.c projects/clang600-import/sys/kern/subr_smp.c projects/clang600-import/sys/kern/vfs_default.c projects/clang600-import/sys/kern/vfs_export.c projects/clang600-import/sys/mips/include/atomic.h projects/clang600-import/sys/mips/mips/db_interface.c projects/clang600-import/sys/mips/mips/support.S projects/clang600-import/sys/modules/ix/Makefile projects/clang600-import/sys/modules/ixv/Makefile projects/clang600-import/sys/net/if_clone.c projects/clang600-import/sys/net/ifdi_if.m projects/clang600-import/sys/net/iflib.c projects/clang600-import/sys/net/iflib.h projects/clang600-import/sys/netinet6/nd6_nbr.c projects/clang600-import/sys/powerpc/booke/booke_machdep.c projects/clang600-import/sys/powerpc/include/atomic.h projects/clang600-import/sys/powerpc/include/vmparam.h projects/clang600-import/sys/powerpc/powerpc/machdep.c projects/clang600-import/sys/riscv/include/atomic.h projects/clang600-import/sys/sparc64/include/atomic.h projects/clang600-import/sys/sys/gtaskqueue.h projects/clang600-import/sys/sys/msg.h projects/clang600-import/sys/sys/smp.h projects/clang600-import/sys/sys/snoop.h projects/clang600-import/sys/sys/syscallsubr.h projects/clang600-import/sys/tools/embed_mfs.sh projects/clang600-import/sys/ufs/ffs/ffs_snapshot.c projects/clang600-import/sys/ufs/ufs/ufs_vnops.c projects/clang600-import/sys/vm/uma_core.c projects/clang600-import/sys/x86/acpica/acpi_wakeup.c projects/clang600-import/sys/x86/include/specialreg.h projects/clang600-import/sys/x86/isa/orm.c projects/clang600-import/sys/x86/x86/identcpu.c projects/clang600-import/sys/x86/x86/mp_x86.c projects/clang600-import/tests/sys/kern/ptrace_test.c projects/clang600-import/tools/boot/rootgen.sh projects/clang600-import/usr.bin/calendar/io.c projects/clang600-import/usr.bin/ldd/ldd.1 projects/clang600-import/usr.bin/patch/patch.c projects/clang600-import/usr.bin/patch/pch.c projects/clang600-import/usr.bin/truss/Makefile projects/clang600-import/usr.sbin/devinfo/devinfo.8 projects/clang600-import/usr.sbin/devinfo/devinfo.c projects/clang600-import/usr.sbin/watch/watch.c Directory Properties: projects/clang600-import/ (props changed) projects/clang600-import/contrib/llvm/ (props changed) projects/clang600-import/contrib/llvm/tools/lld/ (props changed) projects/clang600-import/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/clang600-import/.arclint ============================================================================== --- projects/clang600-import/.arclint Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/.arclint Sun Dec 24 13:22:57 2017 (r327150) @@ -24,4 +24,3 @@ } } } - Modified: projects/clang600-import/bin/sh/sh.1 ============================================================================== --- projects/clang600-import/bin/sh/sh.1 Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/bin/sh/sh.1 Sun Dec 24 13:22:57 2017 (r327150) @@ -343,7 +343,7 @@ Write each command variable subjected to parameter expansion and arithmetic expansion) to standard error before it is executed. Useful for debugging. -.It nolog +.It Li nolog Another do-nothing option for .Tn POSIX compliance. @@ -2739,7 +2739,7 @@ were a known job that exited with exit status 127. If no operands are given, wait for all jobs to complete and return an exit status of zero. .El -.Ss Commandline Editing +.Ss Command Line Editing When .Nm is being used interactively from a terminal, the current command Modified: projects/clang600-import/etc/rc.d/ldconfig ============================================================================== --- projects/clang600-import/etc/rc.d/ldconfig Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/etc/rc.d/ldconfig Sun Dec 24 13:22:57 2017 (r327150) @@ -63,7 +63,7 @@ ldconfig_start() esac case `sysctl -n hw.machine_arch` in - armv6) + armv[67]) for i in ${ldconfig_localsoft_dirs}; do if [ -d "${i}" ]; then _files=`find ${i} -type f` Modified: projects/clang600-import/include/stdlib.h ============================================================================== --- projects/clang600-import/include/stdlib.h Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/include/stdlib.h Sun Dec 24 13:22:57 2017 (r327150) @@ -274,6 +274,7 @@ int cgetstr(char *, const char *, char **); int cgetustr(char *, const char *, char **); int daemon(int, int); +int daemonfd(int, int); char *devname(__dev_t, __mode_t); char *devname_r(__dev_t, __mode_t, char *, int); char *fdevname(int); Modified: projects/clang600-import/lib/libc/gen/Symbol.map ============================================================================== --- projects/clang600-import/lib/libc/gen/Symbol.map Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/lib/libc/gen/Symbol.map Sun Dec 24 13:22:57 2017 (r327150) @@ -394,6 +394,7 @@ FBSD_1.4 { FBSD_1.5 { alphasort; basename; + daemonfd; devname; devname_r; dirname; Modified: projects/clang600-import/lib/libc/gen/daemon.3 ============================================================================== --- projects/clang600-import/lib/libc/gen/daemon.3 Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/lib/libc/gen/daemon.3 Sun Dec 24 13:22:57 2017 (r327150) @@ -28,7 +28,7 @@ .\" @(#)daemon.3 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd June 9, 1993 +.Dd December 23, 2017 .Dt DAEMON 3 .Os .Sh NAME @@ -40,6 +40,8 @@ .In stdlib.h .Ft int .Fn daemon "int nochdir" "int noclose" +.Ft int +.Fn daemonfd "int chdirfd" "int nullfd" .Sh DESCRIPTION The .Fn daemon @@ -59,15 +61,39 @@ is non-zero, .Fn daemon will redirect standard input, standard output, and standard error to .Pa /dev/null . +.Pp +The +.Fn daemonfd +function is equivalent to the +.Fn daemon +function except that arguments are the descriptors for the current working +directory and to the descriptor to +.Pa /dev/null . +.Pp +If +.Fa chdirfd +is equal to +.Pq -1 +the current working directory is not changed. +.Pp +If +.Fa nullfd +is equals to +.Pq -1 +the redirection of standard input, standard output, and standard error is not +closed. .Sh RETURN VALUES -.Rv -std daemon +.Rv -std daemon daemonfd .Sh ERRORS The .Fn daemon +and +.Fn daemonfd function may fail and set .Va errno for any of the errors specified for the library functions .Xr fork 2 +.Xr open 2, and .Xr setsid 2 . .Sh SEE ALSO @@ -79,6 +105,10 @@ The .Fn daemon function first appeared in .Bx 4.4 . +The +.Fn daemonfd +function first appeared in +.Fx 12.0 . .Sh CAVEATS Unless the .Fa noclose Modified: projects/clang600-import/lib/libc/gen/daemon.c ============================================================================== --- projects/clang600-import/lib/libc/gen/daemon.c Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/lib/libc/gen/daemon.c Sun Dec 24 13:22:57 2017 (r327150) @@ -1,8 +1,9 @@ /*- * SPDX-License-Identifier: BSD-3-Clause * - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. + * Copyright (c) 1990, 1993 The Regents of the University of California. + * Copyright (c) 2017 Mariusz Zaborski + * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -46,10 +47,9 @@ __FBSDID("$FreeBSD$"); #include "libc_private.h" int -daemon(int nochdir, int noclose) +daemonfd(int chdirfd, int nullfd) { struct sigaction osa, sa; - int fd; pid_t newgrp; int oerrno; int osa_ok; @@ -83,15 +83,39 @@ daemon(int nochdir, int noclose) return (-1); } - if (!nochdir) - (void)chdir("/"); + if (chdirfd != -1) + (void)fchdir(chdirfd); - if (!noclose && (fd = _open(_PATH_DEVNULL, O_RDWR, 0)) != -1) { - (void)_dup2(fd, STDIN_FILENO); - (void)_dup2(fd, STDOUT_FILENO); - (void)_dup2(fd, STDERR_FILENO); - if (fd > 2) - (void)_close(fd); + if (nullfd != -1) { + (void)_dup2(nullfd, STDIN_FILENO); + (void)_dup2(nullfd, STDOUT_FILENO); + (void)_dup2(nullfd, STDERR_FILENO); } return (0); +} + +int +daemon(int nochdir, int noclose) +{ + int chdirfd, nullfd, ret; + + if (!noclose) + nullfd = _open(_PATH_DEVNULL, O_RDWR, 0); + else + nullfd = -1; + + if (!nochdir) + chdirfd = _open("/", O_EXEC); + else + chdirfd = -1; + + ret = daemonfd(chdirfd, nullfd); + + if (chdirfd != -1) + _close(chdirfd); + + if (nullfd > 2) + _close(nullfd); + + return (ret); } Modified: projects/clang600-import/lib/libc/net/getaddrinfo.c ============================================================================== --- projects/clang600-import/lib/libc/net/getaddrinfo.c Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/lib/libc/net/getaddrinfo.c Sun Dec 24 13:22:57 2017 (r327150) @@ -1277,7 +1277,8 @@ explore_numeric(const struct addrinfo *pai, const char * does not accept. So we need to separate the case for * AF_INET. */ - if (inet_aton(hostname, (struct in_addr *)pton) != 1) + if (inet_aton(hostname, (struct in_addr *)pton) != 1 || + hostname[strspn(hostname, "0123456789.xabcdefXABCDEF")] != '\0') return 0; p = pton; break; Modified: projects/clang600-import/lib/libc/stdio/fopen.3 ============================================================================== --- projects/clang600-import/lib/libc/stdio/fopen.3 Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/lib/libc/stdio/fopen.3 Sun Dec 24 13:22:57 2017 (r327150) @@ -72,7 +72,7 @@ Fail if the file does not exist. .It Dq Li w Open for writing. The stream is positioned at the beginning of the file. -Create the file if it does not exist. +Truncate the file to zero length if it exists or create the file if it does not exist. .It Dq Li a Open for writing. The stream is positioned at the end of the file. Modified: projects/clang600-import/lib/libdevinfo/devinfo.c ============================================================================== --- projects/clang600-import/lib/libdevinfo/devinfo.c Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/lib/libdevinfo/devinfo.c Sun Dec 24 13:22:57 2017 (r327150) @@ -204,7 +204,7 @@ devinfo_init_devices(int generation) * Stop after a fairly insane number to avoid death in the case * of kernel corruption. */ - for (dev_idx = 0; dev_idx < 1000; dev_idx++) { + for (dev_idx = 0; dev_idx < 10000; dev_idx++) { /* * Get the device information. Modified: projects/clang600-import/sbin/ipfw/altq.c ============================================================================== --- projects/clang600-import/sbin/ipfw/altq.c Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/sbin/ipfw/altq.c Sun Dec 24 13:22:57 2017 (r327150) @@ -1,4 +1,4 @@ -/* +/*- * Copyright (c) 2002-2003 Luigi Rizzo * Copyright (c) 1996 Alex Nash, Paul Traina, Poul-Henning Kamp * Copyright (c) 1994 Ugen J.S.Antsilevich Modified: projects/clang600-import/sbin/ipfw/dummynet.c ============================================================================== --- projects/clang600-import/sbin/ipfw/dummynet.c Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/sbin/ipfw/dummynet.c Sun Dec 24 13:22:57 2017 (r327150) @@ -1,4 +1,4 @@ -/* +/*- * Codel/FQ_Codel and PIE/FQ_PIE Code: * Copyright (C) 2016 Centre for Advanced Internet Architectures, * Swinburne University of Technology, Melbourne, Australia. Modified: projects/clang600-import/sbin/ipfw/ipfw2.c ============================================================================== --- projects/clang600-import/sbin/ipfw/ipfw2.c Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/sbin/ipfw/ipfw2.c Sun Dec 24 13:22:57 2017 (r327150) @@ -1,4 +1,4 @@ -/* +/*- * Copyright (c) 2002-2003 Luigi Rizzo * Copyright (c) 1996 Alex Nash, Paul Traina, Poul-Henning Kamp * Copyright (c) 1994 Ugen J.S.Antsilevich @@ -2256,12 +2256,13 @@ do_range_cmd(int cmd, ipfw_range_tlv *rt) void ipfw_sets_handler(char *av[]) { - uint32_t masks[2]; - int i; - uint8_t cmd, rulenum; ipfw_range_tlv rt; char *msg; size_t size; + uint32_t masks[2]; + int i; + uint16_t rulenum; + uint8_t cmd; av++; memset(&rt, 0, sizeof(rt)); Modified: projects/clang600-import/sbin/ipfw/ipfw2.h ============================================================================== --- projects/clang600-import/sbin/ipfw/ipfw2.h Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/sbin/ipfw/ipfw2.h Sun Dec 24 13:22:57 2017 (r327150) @@ -1,4 +1,4 @@ -/* +/*- * Copyright (c) 2002-2003 Luigi Rizzo * Copyright (c) 1996 Alex Nash, Paul Traina, Poul-Henning Kamp * Copyright (c) 1994 Ugen J.S.Antsilevich Modified: projects/clang600-import/sbin/ipfw/ipv6.c ============================================================================== --- projects/clang600-import/sbin/ipfw/ipv6.c Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/sbin/ipfw/ipv6.c Sun Dec 24 13:22:57 2017 (r327150) @@ -1,4 +1,4 @@ -/* +/*- * Copyright (c) 2002-2003 Luigi Rizzo * Copyright (c) 1996 Alex Nash, Paul Traina, Poul-Henning Kamp * Copyright (c) 1994 Ugen J.S.Antsilevich Modified: projects/clang600-import/sbin/ipfw/main.c ============================================================================== --- projects/clang600-import/sbin/ipfw/main.c Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/sbin/ipfw/main.c Sun Dec 24 13:22:57 2017 (r327150) @@ -1,4 +1,4 @@ -/* +/*- * Copyright (c) 2002-2003,2010 Luigi Rizzo * Copyright (c) 1996 Alex Nash, Paul Traina, Poul-Henning Kamp * Copyright (c) 1994 Ugen J.S.Antsilevich Modified: projects/clang600-import/sbin/ipfw/nat.c ============================================================================== --- projects/clang600-import/sbin/ipfw/nat.c Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/sbin/ipfw/nat.c Sun Dec 24 13:22:57 2017 (r327150) @@ -1,4 +1,4 @@ -/* +/*- * Copyright (c) 2002-2003 Luigi Rizzo * Copyright (c) 1996 Alex Nash, Paul Traina, Poul-Henning Kamp * Copyright (c) 1994 Ugen J.S.Antsilevich Modified: projects/clang600-import/sbin/reboot/reboot.8 ============================================================================== --- projects/clang600-import/sbin/reboot/reboot.8 Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/sbin/reboot/reboot.8 Sun Dec 24 13:22:57 2017 (r327150) @@ -28,7 +28,7 @@ .\" @(#)reboot.8 8.1 (Berkeley) 6/9/93 .\" $FreeBSD$ .\" -.Dd October 23, 2017 +.Dd December 20, 2017 .Dt REBOOT 8 .Os .Sh NAME @@ -142,6 +142,12 @@ After changing vfs.root.mountfrom with .Xr kenv 1 , .Nm Fl r can be used to change the root filesystem while preserving kernel state. +This requires the +.Xr tmpfs 5 +kernel module to be loaded because +.Xr init 8 +needs a place to store itself after the old root is unmounted, but +before the new root is in place. .El .Pp The Modified: projects/clang600-import/share/man/man4/Makefile ============================================================================== --- projects/clang600-import/share/man/man4/Makefile Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/share/man/man4/Makefile Sun Dec 24 13:22:57 2017 (r327150) @@ -382,6 +382,7 @@ MAN= aac.4 \ ${_ntb_hw_intel.4} \ ${_ntb_hw_plx.4} \ ${_ntb_transport.4} \ + ${_nda.4} \ ${_if_ntb.4} \ null.4 \ numa.4 \ @@ -808,6 +809,7 @@ _if_wpi.4= if_wpi.4 _ipmi.4= ipmi.4 _io.4= io.4 _linux.4= linux.4 +_nda.4= nda.4 _ndis.4= ndis.4 _nfe.4= nfe.4 _nfsmb.4= nfsmb.4 Modified: projects/clang600-import/share/man/man4/ada.4 ============================================================================== --- projects/clang600-import/share/man/man4/ada.4 Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/share/man/man4/ada.4 Sun Dec 24 13:22:57 2017 (r327150) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 19, 2015 +.Dd December 20, 2017 .Dt ADA 4 .Os .Sh NAME @@ -157,6 +157,7 @@ ATA device nodes .Xr cam 4 , .Xr da 4 , .Xr mvs 4 , +.Xr nda 4 , .Xr siis 4 .Sh HISTORY The Modified: projects/clang600-import/share/man/man4/da.4 ============================================================================== --- projects/clang600-import/share/man/man4/da.4 Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/share/man/man4/da.4 Sun Dec 24 13:22:57 2017 (r327150) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 11, 2015 +.Dd December 20, 2017 .Dt DA 4 .Os .Sh NAME @@ -214,6 +214,7 @@ None. .Xr ada 4 , .Xr cam 4 , .Xr geom 4 , +.Xr nda 4 , .Xr gpart 8 .Sh HISTORY The Modified: projects/clang600-import/share/man/man4/em.4 ============================================================================== --- projects/clang600-import/share/man/man4/em.4 Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/share/man/man4/em.4 Sun Dec 24 13:22:57 2017 (r327150) @@ -319,6 +319,6 @@ The driver was originally written by .An Intel Corporation Aq Mt freebsd@intel.com . It was merged with igb driver and converted to the iflib framework by -.An Matthew Macy Aq Mt mmacy@nextbsd.org +.An Matthew Macy Aq Mt mmacy@mattmacy.io and .An Sean Bruno Aq Mt sbruno@FreeBSD.org . Modified: projects/clang600-import/share/man/man4/md.4 ============================================================================== --- projects/clang600-import/share/man/man4/md.4 Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/share/man/man4/md.4 Sun Dec 24 13:22:57 2017 (r327150) @@ -7,7 +7,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 5, 2017 +.Dd December 7, 2017 .Dt MD 4 .Os .Sh NAME @@ -79,7 +79,8 @@ To create a kernel with a ramdisk or MD file system, y needs the following options: .Bd -literal -offset indent options MD_ROOT # MD is a potential root device -options MD_ROOT_SIZE=8192 # 8MB ram disk +options MD_ROOT_READONLY # disallow mounting root writeable +options MD_ROOT_SIZE=8192 # 8MB ram disk makeoptions MFS_IMAGE=/h/foo/ARM-MD options ROOTDEVNAME=\\"ufs:md0\\" .Ed Copied: projects/clang600-import/share/man/man4/nda.4 (from r327149, head/share/man/man4/nda.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang600-import/share/man/man4/nda.4 Sun Dec 24 13:22:57 2017 (r327150, copy of r327149, head/share/man/man4/nda.4) @@ -0,0 +1,87 @@ +.\" Copyright (c) 2017 Netflix, Inc +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd December 20, 2017 +.Dt NDA 4 +.Os +.Sh NAME +.Nm nda +.Nd NVMe Direct Access device driver +.Sh SYNOPSIS +.Cd device nvme +.Cd device scbus +.Sh DESCRIPTION +The +.Nm +driver provides support for direct access devices, implementing the +.Tn NVMe +command protocol, that are attached to the system through a host adapter +supported by the CAM subsystem. +.Sh SYSCTL VARIABLES +The following variables are available as both +.Xr sysctl 8 +variables and +.Xr loader 8 +tunables: +.Bl -tag -width 12 +.It Va kern.cam.nda.sort_io_queue +.Pp +This variable determines whether the software queued entries are +sorted in LBA order or not. +Sorting is almost always a waste of time. +The default is to not sort. +.El +.Pp +The following report per-device settings, and are read-only unless +otherwise indicated. Replace +.Va N +with the device unit number. +.Bl -tag -width 12 +.It Va kern.cam.nda.N.rotating +.Pp +This variable reports whether the storage volume is spinning or +flash. +It's value is hard coded to 0 indicating flash. +.It Va kern.cam.nda.N.unmapped_io +This variable reports whether the +.Nm +driver accepts unmapped I/O for this unit. +.Sh FILES +.Bl -tag -width ".Pa /dev/nda*" -compact +.It Pa /dev/nda* +NVMe storage device nodes +.El +.Sh SEE ALSO +.Xr nvme 4 , +.Xr nvd 4 +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 12.0 . +.Sh AUTHORS +.An Warner Losh Aq Mt imp@FreeBSD.org Modified: projects/clang600-import/share/man/man4/pci.4 ============================================================================== --- projects/clang600-import/share/man/man4/pci.4 Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/share/man/man4/pci.4 Sun Dec 24 13:22:57 2017 (r327150) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 8, 2016 +.Dd December 20, 2017 .Dt PCI 4 .Os .Sh NAME @@ -492,6 +492,59 @@ The value of the tunable is the raw IRQ value to use f pin identified by the tunable name. Mapping of IRQ values to platform interrupt sources is machine dependent. .El +.Sh DEVICE WIRING +You can wire the device unit at a given location with device.hints. +Entries of the form +.Va hints...at="pci::" +or +.Va hints...at="pci:::" +will force the driver +.Va name +to probe and attach at unit +.Va unit +for any PCI device found to match the specification, where: +.Bl -tag -width -indent +.It +The domain +.Pq or segment +of the PCI device in decimal. +Defaults to 0 if unspecified +.It +The bus address of the PCI device in decimal. +.It +The slot of the PCI device in decimal. +.It +The function of the PCI device in decimal. +.El +.Pp +The code to do the matching requires an exact string match. +Do not specify the angle brackets +.Pq < > +in the hints file. +Wiring multiple devices to the same +.Va name +and +.Va unit +produces undefined results. +.Ss Examples +Given the following lines in +.Pa /boot/device.hints : +.Cd hint.nvme.3.at="pci6:0:0" +.Cd hint.igb.8.at="pci14:0:0" +If there is a device that supports +.Xr igb 4 +at PCI bus 14 slot 0 function 0, +then it will be assigned igb8 for probe and attach. +Likewise, if there is an +.Xr nvme 4 +card at PCI bus 6 slot 0 function 0, +then it will be assigned nvme3 for probe and attach. +If another type of card is in either of these locations, the name and +unit of that card will be the default names and will be unaffected by +these hints. +If other igb or nvme cards are located elsewhere, they will be +assigned their unit numbers sequentially, skipping the unit numbers +that have 'at' hints. .Sh FILES .Bl -tag -width /dev/pci -compact .It Pa /dev/pci Modified: projects/clang600-import/share/man/man4/scsi.4 ============================================================================== --- projects/clang600-import/share/man/man4/scsi.4 Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/share/man/man4/scsi.4 Sun Dec 24 13:22:57 2017 (r327150) @@ -24,12 +24,12 @@ .\" SUCH DAMAGE. .\" .\" $FreeBSD$ -.Dd January 15, 2017 +.Dd December 20, 2017 .Dt CAM 4 .Os .Sh NAME .Nm CAM -.Nd Common Access Method SCSI/ATA subsystem +.Nd Common Access Method Storage subsystem .Sh SYNOPSIS .Cd "device scbus" .Cd "device ada" @@ -54,13 +54,17 @@ The .Nm subsystem provides a uniform and modular system for the implementation of drivers to control various -.Tn SCSI +.Tn SCSI , +.Tn ATA , +.Tn NMVe , and -.Tn ATA +.Tn MMC / SD devices, and to utilize different -.Tn SCSI +.Tn SCSI , +.Tn ATA , +.Tn NVMe , and -.Tn ATA +.Tn MMC / SD host adapters through host adapter drivers. When the system probes buses, it attaches any devices it finds to the appropriate drivers. @@ -213,6 +217,31 @@ and use the first respective counted instances. These examples can be combined together to allow a peripheral device to be wired to any particular controller, bus, target, and/or unit instance. .Pp +This also works with +.Xr nvme 4 +drives as well. +.Bd -literal -offset indent +hint.nvme.4.at="pci7:0:0" +hint.scbus.10.at="nvme4" +hint.nda.10.at="scbus10" +hint.nda.10.target="1" +hint.nda.10.unit="12" +hint.nda.11.at="scbus10" +hint.nda.11.target="1" +hint.nda.11.unit="2" +.Ed +.Pp +This assigns the NVMe card living at PCI bus 7 to scbus 10 (in PCIe, +slot and function are rarely used and usually 0). +The target for +.Xr nda 4 +devices is always 1. +The unit is the namespace identifier from the drive. +The namespace id 1 is exported as +.Tn nda10 +and namespace id 2 is exported as +.Tn nda11 . +.Pp When you have a mixture of wired down and counted devices then the counting begins with the first non-wired down unit for a particular type. @@ -225,9 +254,11 @@ The system allows common device drivers to work throug types of adapters. The adapters take requests from the upper layers and do all IO between the -.Tn SCSI +.Tn SCSI , +.Tn ATA , +.Tn NVMe , or -.Tn ATA +.Tn MMC / SD bus and the system. The maximum size of a transfer is governed by the adapter. @@ -322,6 +353,8 @@ for details. .Xr cd 4 , .Xr ch 4 , .Xr da 4 , +.Xr nda 4 , +.Xr nvme 4 , .Xr pass 4 , .Xr pt 4 , .Xr sa 4 , @@ -351,3 +384,8 @@ The .Tn ATA support was added by .An Alexander Motin Aq Mt mav@FreeBSD.org . +The +.Nm +.Tn NVMe +support was added by +.An Warner Losh Aq Mt imp@FreeBSD.org . Modified: projects/clang600-import/share/man/man9/atomic.9 ============================================================================== --- projects/clang600-import/share/man/man9/atomic.9 Sun Dec 24 13:19:02 2017 (r327149) +++ projects/clang600-import/share/man/man9/atomic.9 Sun Dec 24 13:22:57 2017 (r327150) @@ -23,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 23, 2017 +.Dd December 22, 2017 .Dt ATOMIC 9 .Os .Sh NAME @@ -36,7 +36,8 @@ .Nm atomic_readandclear , .Nm atomic_set , .Nm atomic_subtract , -.Nm atomic_store +.Nm atomic_store , +.Nm atomic_thread_fence .Nd atomic operations .Sh SYNOPSIS .In sys/types.h @@ -60,7 +61,7 @@ .Ft .Fn atomic_fetchadd_ "volatile *p" " v" .Ft -.Fn atomic_load_acq_ "volatile *p" +.Fn atomic_load_[acq_] "volatile *p" .Ft .Fn atomic_readandclear_ "volatile *p" .Ft void @@ -68,19 +69,33 @@ .Ft void .Fn atomic_subtract_[acq_|rel_] "volatile *p" " v" .Ft void -.Fn atomic_store_rel_ "volatile *p" " v" +.Fn atomic_store_[rel_] "volatile *p" " v" .Ft .Fn atomic_swap_ "volatile *p" " v" .Ft int .Fn atomic_testandclear_ "volatile *p" "u_int v" .Ft int .Fn atomic_testandset_ "volatile *p" "u_int v" +.Ft void +.Fn atomic_thread_fence_[acq|acq_rel|rel|seq_cst] "void" .Sh DESCRIPTION -All of these operations are performed atomically across multiple -threads and in the presence of interrupts, meaning that they are -performed in an indivisible manner from the perspective of concurrently +Atomic operations are commonly used to implement reference counts and as +building blocks for synchronization primitives, such as mutexes. +.Pp +All of these operations are performed +.Em atomically +across multiple threads and in the presence of interrupts, meaning that they +are performed in an indivisible manner from the perspective of concurrently running threads and interrupt handlers. .Pp +On all architectures supported by +.Fx , +ordinary loads and stores of integers in cache-coherent memory are +inherently atomic if the integer is naturally aligned and its size does not +exceed the processor's word size. +However, such loads and stores may be elided from the program by +the compiler, whereas atomic operations are always performed. +.Pp When atomic operations are performed on cache-coherent memory, all operations on the same location are totally ordered. .Pp @@ -93,29 +108,16 @@ interrupt handler will observe a .Em torn write , or partial modification of the location. .Pp -On all architectures supported by -.Fx , -ordinary loads and stores of naturally aligned integer types -are atomic, as executed by the processor. -.Pp -Atomic operations can be used to implement reference counts or as -building blocks for synchronization primitives such as mutexes. -.Pp -The semantics of -.Fx Ns 's -atomic operations are almost identical to those of the similarly named -C11 operations. -The one important difference is that the C11 standard does not -require ordinary loads and stores to ever be atomic. -This is is why the -.Fn atomic_load_explicit memory_order_relaxed -operation exists in the C11 standard, but is not provided by -.In machine/atomic.h . +Except as noted below, the semantics of these operations are almost +identical to the semantics of similarly named C11 atomic operations. .Ss Types -Each atomic operation operates on a specific +Most atomic operations act upon a specific .Fa type . -The type to use is indicated in the function name. -The available types that can be used are: +That type is indicated in the function name. +In contrast to C11 atomic operations, +.Fx Ns 's +atomic operations are performed on ordinary integer types. +The available types are: .Pp .Bl -tag -offset indent -width short -compact .It Li int @@ -147,8 +149,7 @@ unsigned 8-bit integer unsigned 16-bit integer .El .Pp -These must not be used in MI code because the instructions to implement them -efficiently might not be available. +These types must not be used in machine-independent code. .Ss Acquire and Release Operations By default, a thread's accesses to different memory locations might not be performed in @@ -167,52 +168,67 @@ Moreover, in some cases, such as the implementation of threads, arbitrary reordering might result in the incorrect execution of the program. To constrain the reordering that both the compiler and processor might perform -on a thread's accesses, the thread should use atomic operations with +on a thread's accesses, a programmer can use atomic operations with .Em acquire and .Em release semantics. .Pp -Most of the atomic operations on memory have three variants. -The first variant performs the operation without imposing any ordering -constraints on memory accesses to other locations. +Atomic operations on memory have up to three variants. +The first, or +.Em relaxed +variant, performs the operation without imposing any ordering constraints on +accesses to other memory locations. +This variant is the default. The second variant has acquire semantics, and the third variant has release semantics. -In effect, operations with acquire and release semantics establish one-way -barriers to reordering. .Pp -When an atomic operation has acquire semantics, the effects of the operation -must have completed before any subsequent load or store (by program order) is +When an atomic operation has acquire semantics, the operation must have +completed before any subsequent load or store (by program order) is performed. Conversely, acquire semantics do not require that prior loads or stores have completed before the atomic operation is performed. +An atomic operation can only have acquire semantics if it performs a load +from memory. To denote acquire semantics, the suffix .Dq Li _acq is inserted into the function name immediately prior to the .Dq Li _ Ns Aq Fa type suffix. -For example, to subtract two integers ensuring that subsequent loads and -stores happen after the subtraction is performed, use +For example, to subtract two integers ensuring that the subtraction is +completed before any subsequent loads and stores are performed, use .Fn atomic_subtract_acq_int . .Pp -When an atomic operation has release semantics, the effects of all prior -loads or stores (by program order) must have completed before the operation -is performed. -Conversely, release semantics do not require that the effects of the -atomic operation must have completed before any subsequent load or store is -performed. +When an atomic operation has release semantics, all prior loads or stores +(by program order) must have completed before the operation is performed. +Conversely, release semantics do not require that the atomic operation must +have completed before any subsequent load or store is performed. +An atomic operation can only have release semantics if it performs a store +to memory. To denote release semantics, the suffix .Dq Li _rel is inserted into the function name immediately prior to the .Dq Li _ Ns Aq Fa type suffix. For example, to add two long integers ensuring that all prior loads and -stores happen before the addition, use +stores are completed before the addition is performed, use .Fn atomic_add_rel_long . .Pp -The one-way barriers provided by acquire and release operations allow the -implementations of common synchronization primitives to express their -ordering requirements without also imposing unnecessary ordering. +When a release operation by one thread +.Em synchronizes with +an acquire operation by another thread, usually meaning that the acquire +operation reads the value written by the release operation, then the effects +of all prior stores by the releasing thread must become visible to +subsequent loads by the acquiring thread. +Moreover, the effects of all stores (by other threads) that were visible to +the releasing thread must also become visible to the acquiring thread. +These rules only apply to the synchronizing threads. +Other threads might observe these stores in a different order. +.Pp +In effect, atomic operations with acquire and release semantics establish +one-way barriers to reordering that enable the implementations of +synchronization primitives to express their ordering requirements without +also imposing unnecessary ordering. For example, for a critical section guarded by a mutex, an acquire operation when the mutex is locked and a release operation when the mutex is unlocked will prevent any loads or stores from moving outside of the critical @@ -220,6 +236,61 @@ section. However, they will not prevent the compiler or processor from moving loads or stores into the critical section, which does not violate the semantics of a mutex. +.Ss Thread Fence Operations +Alternatively, a programmer can use atomic thread fence operations to +constrain the reordering of accesses. +In contrast to other atomic operations, fences do not, themselves, access +memory. +.Pp +When a fence has acquire semantics, all prior loads (by program order) must +have completed before any subsequent load or store is performed. +Thus, an acquire fence is a two-way barrier for load operations. +To denote acquire semantics, the suffix +.Dq Li _acq +is appended to the function name, for example, +.Fn atomic_thread_fence_acq . +.Pp +When a fence has release semantics, all prior loads or stores (by program +order) must have completed before any subsequent store operation is +performed. +Thus, a release fence is a two-way barrier for store operations. +To denote release semantics, the suffix +.Dq Li _rel +is appended to the function name, for example, +.Fn atomic_thread_fence_rel . +.Pp +Although +.Fn atomic_thread_fence_acq_rel +implements both acquire and release semantics, it is not a full barrier. +For example, a store prior to the fence (in program order) may be completed +after a load subsequent to the fence. +In contrast, +.Fn atomic_thread_fence_seq_cst +implements a full barrier. +Neither loads nor stores may cross this barrier in either direction. +.Pp +In C11, a release fence by one thread synchronizes with an acquire fence by +another thread when an atomic load that is prior to the acquire fence (by +program order) reads the value written by an atomic store that is subsequent +to the release fence. +In constrast, in FreeBSD, because of the atomicity of ordinary, naturally +aligned loads and stores, fences can also be synchronized by ordinary loads +and stores. +This simplifies the implementation and use of some synchronization +primitives in +.Fx . +.Pp +Since neither a compiler nor a processor can foresee which (atomic) load +will read the value written by an (atomic) store, the ordering constraints +imposed by fences must be more restrictive than acquire loads and release +stores. +Essentially, this is why fences are two-way barriers. +.Pp +Although fences impose more restrictive ordering than acquire loads and +release stores, by separating access from ordering, they can sometimes +facilitate more efficient implementations of synchronization primitives. +For example, they can be used to avoid executing a memory barrier until a +memory access shows that some condition is satisfied. .Ss Multiple Processors In multiprocessor systems, the atomicity of the atomic operations on memory depends on support for cache coherence in the underlying architecture. @@ -326,12 +397,6 @@ and do not have any variants with memory barriers at t .Bd -literal -compact return (*p); .Ed -.El -.Pp -The -.Fn atomic_load -functions are only provided with acquire memory barriers. -.Bl -hang .It Fn atomic_readandclear p .Bd -literal -compact tmp = *p; @@ -363,12 +428,6 @@ and do not have any variants with memory barriers at t .Bd -literal -compact *p = v; .Ed -.El -.Pp -The -.Fn atomic_store -functions are only provided with release memory barriers. -.Bl -hang .It Fn atomic_swap p v .Bd -literal -compact tmp = *p; @@ -490,43 +549,54 @@ The .Fn atomic_set , and .Fn atomic_subtract -operations were first introduced in +operations were introduced in .Fx 3.0 . -This first set only supported the types +Initially, these operations were defined on the types .Dq Li char , .Dq Li short , .Dq Li int , and .Dq Li long . +.Pp The .Fn atomic_cmpset , -.Fn atomic_load , +.Fn atomic_load_acq , .Fn atomic_readandclear , and -.Fn atomic_store *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Sun Dec 24 13:39:33 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB3EBE8F095 for ; Sun, 24 Dec 2017 13:39:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 94F367A026; Sun, 24 Dec 2017 13:39:33 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBODdW2J094396; Sun, 24 Dec 2017 13:39:32 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBODdWlC094392; Sun, 24 Dec 2017 13:39:32 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712241339.vBODdWlC094392@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 13:39:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327151 - in projects/clang600-import/contrib/llvm/tools/lldb: include/lldb/Symbol source/Initialization source/Plugins/Process/gdb-remote source/Symbol X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import/contrib/llvm/tools/lldb: include/lldb/Symbol source/Initialization source/Plugins/Process/gdb-remote source/Symbol X-SVN-Commit-Revision: 327151 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 13:39:33 -0000 Author: dim Date: Sun Dec 24 13:39:32 2017 New Revision: 327151 URL: https://svnweb.freebsd.org/changeset/base/327151 Log: For our lldb customizations, instead of commenting out lines, use #ifdef LLDB_ENABLE_ALL / #endif preprocess directives instead, so our diffs against upstream only consist of added lines. Modified: projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h projects/clang600-import/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp projects/clang600-import/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp Modified: projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h Sun Dec 24 13:22:57 2017 (r327150) +++ projects/clang600-import/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h Sun Dec 24 13:39:32 2017 (r327151) @@ -38,7 +38,9 @@ #include "lldb/lldb-enumerations.h" class DWARFASTParserClang; -//class PDBASTParser; +#ifdef LLDB_ENABLE_ALL +class PDBASTParser; +#endif // LLDB_ENABLE_ALL namespace lldb_private { @@ -425,7 +427,9 @@ class ClangASTContext : public TypeSystem { (public) // TypeSystem methods //------------------------------------------------------------------ DWARFASTParser *GetDWARFParser() override; - //PDBASTParser *GetPDBParser(); +#ifdef LLDB_ENABLE_ALL + PDBASTParser *GetPDBParser(); +#endif // LLDB_ENABLE_ALL //------------------------------------------------------------------ // ClangASTContext callbacks for external source lookups. @@ -997,7 +1001,9 @@ class ClangASTContext : public TypeSystem { (public) std::unique_ptr m_selector_table_ap; std::unique_ptr m_builtins_ap; std::unique_ptr m_dwarf_ast_parser_ap; -// std::unique_ptr m_pdb_ast_parser_ap; +#ifdef LLDB_ENABLE_ALL + std::unique_ptr m_pdb_ast_parser_ap; +#endif // LLDB_ENABLE_ALL std::unique_ptr m_scratch_ast_source_ap; std::unique_ptr m_mangle_ctx_ap; CompleteTagDeclCallback m_callback_tag_decl; Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp Sun Dec 24 13:22:57 2017 (r327150) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp Sun Dec 24 13:39:32 2017 (r327151) @@ -13,9 +13,13 @@ #include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h" #include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h" #include "Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h" -//#include "Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.h" +#ifdef LLDB_ENABLE_ALL +#include "Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.h" +#endif // LLDB_ENABLE_ALL #include "Plugins/ObjectFile/ELF/ObjectFileELF.h" -//#include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h" +#ifdef LLDB_ENABLE_ALL +#include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h" +#endif // LLDB_ENABLE_ALL #include "Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h" #include "lldb/Host/Host.h" #include "lldb/Host/HostInfo.h" @@ -82,7 +86,9 @@ void SystemInitializerCommon::Initialize() { // Initialize plug-ins ObjectContainerBSDArchive::Initialize(); ObjectFileELF::Initialize(); -//ObjectFilePECOFF::Initialize(); +#ifdef LLDB_ENABLE_ALL + ObjectFilePECOFF::Initialize(); +#endif // LLDB_ENABLE_ALL EmulateInstructionARM::Initialize(); EmulateInstructionMIPS::Initialize(); @@ -91,7 +97,9 @@ void SystemInitializerCommon::Initialize() { //---------------------------------------------------------------------- // Apple/Darwin hosted plugins //---------------------------------------------------------------------- -//ObjectContainerUniversalMachO::Initialize(); +#ifdef LLDB_ENABLE_ALL + ObjectContainerUniversalMachO::Initialize(); +#endif // LLDB_ENABLE_ALL #if defined(__APPLE__) ObjectFileMachO::Initialize(); @@ -109,13 +117,17 @@ void SystemInitializerCommon::Terminate() { Timer scoped_timer(func_cat, LLVM_PRETTY_FUNCTION); ObjectContainerBSDArchive::Terminate(); ObjectFileELF::Terminate(); -//ObjectFilePECOFF::Terminate(); +#ifdef LLDB_ENABLE_ALL + ObjectFilePECOFF::Terminate(); +#endif // LLDB_ENABLE_ALL EmulateInstructionARM::Terminate(); EmulateInstructionMIPS::Terminate(); EmulateInstructionMIPS64::Terminate(); -//ObjectContainerUniversalMachO::Terminate(); +#ifdef LLDB_ENABLE_ALL + ObjectContainerUniversalMachO::Terminate(); +#endif // LLDB_ENABLE_ALL #if defined(__APPLE__) ObjectFileMachO::Terminate(); #endif Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp Sun Dec 24 13:22:57 2017 (r327150) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp Sun Dec 24 13:39:32 2017 (r327151) @@ -70,7 +70,9 @@ // Project includes #include "GDBRemoteRegisterContext.h" -//#include "Plugins/Platform/MacOSX/PlatformRemoteiOS.h" +#ifdef LLDB_ENABLE_ALL +#include "Plugins/Platform/MacOSX/PlatformRemoteiOS.h" +#endif // LLDB_ENABLE_ALL #include "Plugins/Process/Utility/GDBRemoteSignals.h" #include "Plugins/Process/Utility/InferiorCallPOSIX.h" #include "Plugins/Process/Utility/StopInfoMachException.h" @@ -2474,7 +2476,7 @@ Status ProcessGDBRemote::DoDestroy() { if (log) log->Printf("ProcessGDBRemote::DoDestroy()"); -#if 0 // XXX Currently no iOS target support on FreeBSD +#ifdef LLDB_ENABLE_ALL // XXX Currently no iOS target support on FreeBSD // There is a bug in older iOS debugservers where they don't shut down the // process // they are debugging properly. If the process is sitting at a breakpoint or @@ -2587,7 +2589,7 @@ Status ProcessGDBRemote::DoDestroy() { } } } -#endif +#endif // LLDB_ENABLE_ALL // Interrupt if our inferior is running... int exit_status = SIGABRT; Modified: projects/clang600-import/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp Sun Dec 24 13:22:57 2017 (r327150) +++ projects/clang600-import/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp Sun Dec 24 13:39:32 2017 (r327151) @@ -99,7 +99,9 @@ #include "lldb/Utility/RegularExpression.h" #include "Plugins/SymbolFile/DWARF/DWARFASTParserClang.h" -//#include "Plugins/SymbolFile/PDB/PDBASTParser.h" +#ifdef LLDB_ENABLE_ALL +#include "Plugins/SymbolFile/PDB/PDBASTParser.h" +#endif // LLDB_ENABLE_ALL #include @@ -9603,13 +9605,13 @@ DWARFASTParser *ClangASTContext::GetDWARFParser() { return m_dwarf_ast_parser_ap.get(); } -#if 0 +#ifdef LLDB_ENABLE_ALL PDBASTParser *ClangASTContext::GetPDBParser() { if (!m_pdb_ast_parser_ap) m_pdb_ast_parser_ap.reset(new PDBASTParser(*this)); return m_pdb_ast_parser_ap.get(); } -#endif +#endif // LLDB_ENABLE_ALL bool ClangASTContext::LayoutRecordType( void *baton, const clang::RecordDecl *record_decl, uint64_t &bit_size, From owner-svn-src-projects@freebsd.org Sun Dec 24 16:53:57 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2BE1DE9DAFB for ; Sun, 24 Dec 2017 16:53:57 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 030BD1E21; Sun, 24 Dec 2017 16:53:56 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBOGruGS079293; Sun, 24 Dec 2017 16:53:56 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBOGrt3C079288; Sun, 24 Dec 2017 16:53:55 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712241653.vBOGrt3C079288@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 16:53:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327165 - in projects/clang600-import: contrib/binutils/bfd contrib/binutils/include share/mk sys/x86/isa usr.sbin/efibootmgr X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import: contrib/binutils/bfd contrib/binutils/include share/mk sys/x86/isa usr.sbin/efibootmgr X-SVN-Commit-Revision: 327165 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 16:53:57 -0000 Author: dim Date: Sun Dec 24 16:53:55 2017 New Revision: 327165 URL: https://svnweb.freebsd.org/changeset/base/327165 Log: Merge ^/head r327150 through r327164. Modified: projects/clang600-import/contrib/binutils/bfd/elflink.c projects/clang600-import/contrib/binutils/include/obstack.h projects/clang600-import/share/mk/bsd.sys.mk projects/clang600-import/sys/x86/isa/orm.c projects/clang600-import/usr.sbin/efibootmgr/efibootmgr.c Directory Properties: projects/clang600-import/ (props changed) projects/clang600-import/contrib/binutils/ (props changed) Modified: projects/clang600-import/contrib/binutils/bfd/elflink.c ============================================================================== --- projects/clang600-import/contrib/binutils/bfd/elflink.c Sun Dec 24 16:51:59 2017 (r327164) +++ projects/clang600-import/contrib/binutils/bfd/elflink.c Sun Dec 24 16:53:55 2017 (r327165) @@ -4815,7 +4815,7 @@ _bfd_elf_archive_symbol_lookup (bfd *abfd, len = strlen (name); copy = bfd_alloc (abfd, len); if (copy == NULL) - return (struct elf_link_hash_entry *) 0 - 1; + return (struct elf_link_hash_entry *)(intptr_t)-1; first = p - name + 1; memcpy (copy, name, first); @@ -4927,7 +4927,7 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_li } h = archive_symbol_lookup (abfd, info, symdef->name); - if (h == (struct elf_link_hash_entry *) 0 - 1) + if (h == (struct elf_link_hash_entry *)(intptr_t)-1) goto error_return; if (h == NULL) Modified: projects/clang600-import/contrib/binutils/include/obstack.h ============================================================================== --- projects/clang600-import/contrib/binutils/include/obstack.h Sun Dec 24 16:51:59 2017 (r327164) +++ projects/clang600-import/contrib/binutils/include/obstack.h Sun Dec 24 16:53:55 2017 (r327165) @@ -119,11 +119,11 @@ extern "C" { may ignore the byte-within-word field of the pointer. */ #ifndef __PTR_TO_INT -# define __PTR_TO_INT(P) ((P) - (char *) 0) +# define __PTR_TO_INT(P) ((intptr_t)(P)) #endif #ifndef __INT_TO_PTR -# define __INT_TO_PTR(P) ((P) + (char *) 0) +# define __INT_TO_PTR(P) ((void*)(intptr_t)(P)) #endif /* We need the type of the resulting object. If __PTRDIFF_TYPE__ is @@ -427,7 +427,7 @@ __extension__ \ __o1->maybe_empty_object = 1; \ __o1->next_free \ = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\ - & ~ (__o1->alignment_mask)); \ + & ~(intptr_t)(__o1->alignment_mask)); \ if (__o1->next_free - (char *)__o1->chunk \ > __o1->chunk_limit - (char *)__o1->chunk) \ __o1->next_free = __o1->chunk_limit; \ Modified: projects/clang600-import/share/mk/bsd.sys.mk ============================================================================== --- projects/clang600-import/share/mk/bsd.sys.mk Sun Dec 24 16:51:59 2017 (r327164) +++ projects/clang600-import/share/mk/bsd.sys.mk Sun Dec 24 16:53:55 2017 (r327165) @@ -69,8 +69,11 @@ CWARNFLAGS+= -Wno-pointer-sign .if ${WARNS} <= 6 CWARNFLAGS.clang+= -Wno-empty-body -Wno-string-plus-int .if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 30400 -CWARNFLAGS.clang+= -Wno-unused-const-variable +CWARNFLAGS.clang+= -Wno-unused-const-variable .endif +.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 60000 +CWARNFLAGS.clang+= -Wno-error=tautological-constant-compare +.endif .endif # WARNS <= 6 .if ${WARNS} <= 3 CWARNFLAGS.clang+= -Wno-tautological-compare -Wno-unused-value\ @@ -80,9 +83,6 @@ CWARNFLAGS.clang+= -Wno-unused-local-typedef .endif .if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 40000 CWARNFLAGS.clang+= -Wno-address-of-packed-member -.endif -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 60000 -CWARNFLAGS.clang+= -Wno-error=tautological-constant-compare .endif .endif # WARNS <= 3 .if ${WARNS} <= 2 Modified: projects/clang600-import/sys/x86/isa/orm.c ============================================================================== --- projects/clang600-import/sys/x86/isa/orm.c Sun Dec 24 16:51:59 2017 (r327164) +++ projects/clang600-import/sys/x86/isa/orm.c Sun Dec 24 16:53:55 2017 (r327165) @@ -156,7 +156,7 @@ orm_identify(driver_t* driver, device_t parent) device_set_desc(child, "ISA Option ROM"); else device_set_desc(child, "ISA Option ROMs"); - isa_set_vendorid(child, PNP_EISAID("PNP0C80")); +// isa_set_vendorid(child, PNP_EISAID("PNP0C80")); } static int Modified: projects/clang600-import/usr.sbin/efibootmgr/efibootmgr.c ============================================================================== --- projects/clang600-import/usr.sbin/efibootmgr/efibootmgr.c Sun Dec 24 16:51:59 2017 (r327164) +++ projects/clang600-import/usr.sbin/efibootmgr/efibootmgr.c Sun Dec 24 16:53:55 2017 (r327165) @@ -707,10 +707,8 @@ print_loadopt_str(uint8_t *data, size_t datalen) uint8_t *ep = data + datalen; uint8_t *walker = data; efidp dp, edp; - void *opt; char buf[1024]; int len; - int optlen; int rv; int indent; @@ -734,10 +732,11 @@ print_loadopt_str(uint8_t *data, size_t datalen) if (walker > ep) return; edp = (efidp)walker; - // Everything left is the binary option args - opt = walker; - optlen = ep - walker; - + /* + * Everything left is the binary option args + * opt = walker; + * optlen = ep - walker; + */ indent = 1; while (dp < edp) { efidp_format_device_path(buf, sizeof(buf), dp, @@ -753,8 +752,6 @@ print_loadopt_str(uint8_t *data, size_t datalen) } dp = (efidp)((char *)dp + efidp_size(dp)); } - if (optlen == 0) - return; } static char * From owner-svn-src-projects@freebsd.org Sun Dec 24 20:17:38 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 051FBEA8797 for ; Sun, 24 Dec 2017 20:17:38 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CD9FA683B8; Sun, 24 Dec 2017 20:17:37 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBOKHafK064395; Sun, 24 Dec 2017 20:17:36 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBOKHakQ064389; Sun, 24 Dec 2017 20:17:36 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712242017.vBOKHakQ064389@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sun, 24 Dec 2017 20:17:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327169 - in projects/clang600-import/sys: cddl/contrib/opensolaris/uts/common/sys vm x86/isa X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import/sys: cddl/contrib/opensolaris/uts/common/sys vm x86/isa X-SVN-Commit-Revision: 327169 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Dec 2017 20:17:38 -0000 Author: dim Date: Sun Dec 24 20:17:36 2017 New Revision: 327169 URL: https://svnweb.freebsd.org/changeset/base/327169 Log: Merge ^/head r327165 through r327168. Modified: projects/clang600-import/sys/cddl/contrib/opensolaris/uts/common/sys/sysmacros.h projects/clang600-import/sys/vm/vm_page.c projects/clang600-import/sys/vm/vm_pageout.c projects/clang600-import/sys/vm/vm_pageout.h projects/clang600-import/sys/x86/isa/orm.c Directory Properties: projects/clang600-import/ (props changed) projects/clang600-import/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/clang600-import/sys/cddl/contrib/opensolaris/uts/common/sys/sysmacros.h ============================================================================== --- projects/clang600-import/sys/cddl/contrib/opensolaris/uts/common/sys/sysmacros.h Sun Dec 24 19:45:16 2017 (r327168) +++ projects/clang600-import/sys/cddl/contrib/opensolaris/uts/common/sys/sysmacros.h Sun Dec 24 20:17:36 2017 (r327169) @@ -388,7 +388,7 @@ highbit(ulong_t i) #if defined(__FreeBSD__) && defined(_KERNEL) && defined(HAVE_INLINE_FLSL) return (flsl(i)); #else - register int h = 1; + int h = 1; if (i == 0) return (0); Modified: projects/clang600-import/sys/vm/vm_page.c ============================================================================== --- projects/clang600-import/sys/vm/vm_page.c Sun Dec 24 19:45:16 2017 (r327168) +++ projects/clang600-import/sys/vm/vm_page.c Sun Dec 24 20:17:36 2017 (r327169) @@ -2661,15 +2661,9 @@ _vm_wait(void) msleep(&vm_pageout_pages_needed, &vm_page_queue_free_mtx, PDROP | PSWP, "VMWait", 0); } else { - if (__predict_false(pageproc == NULL)) + if (pageproc == NULL) panic("vm_wait in early boot"); - if (!vm_pageout_wanted) { - vm_pageout_wanted = true; - wakeup(&vm_pageout_wanted); - } - vm_pages_needed = true; - msleep(&vm_cnt.v_free_count, &vm_page_queue_free_mtx, PDROP | PVM, - "vmwait", 0); + pagedaemon_wait(PVM, "vmwait"); } } @@ -2699,7 +2693,6 @@ vm_page_alloc_fail(vm_object_t object, int req) atomic_add_int(&vm_pageout_deficit, max((u_int)req >> VM_ALLOC_COUNT_SHIFT, 1)); - pagedaemon_wakeup(); if (req & (VM_ALLOC_WAITOK | VM_ALLOC_WAITFAIL)) { if (object != NULL) VM_OBJECT_WUNLOCK(object); @@ -2708,8 +2701,10 @@ vm_page_alloc_fail(vm_object_t object, int req) VM_OBJECT_WLOCK(object); if (req & VM_ALLOC_WAITOK) return (EAGAIN); - } else + } else { mtx_unlock(&vm_page_queue_free_mtx); + pagedaemon_wakeup(); + } return (0); } @@ -2728,13 +2723,7 @@ vm_waitpfault(void) { mtx_lock(&vm_page_queue_free_mtx); - if (!vm_pageout_wanted) { - vm_pageout_wanted = true; - wakeup(&vm_pageout_wanted); - } - vm_pages_needed = true; - msleep(&vm_cnt.v_free_count, &vm_page_queue_free_mtx, PDROP | PUSER, - "pfault", 0); + pagedaemon_wait(PUSER, "pfault"); } struct vm_pagequeue * Modified: projects/clang600-import/sys/vm/vm_pageout.c ============================================================================== --- projects/clang600-import/sys/vm/vm_pageout.c Sun Dec 24 19:45:16 2017 (r327168) +++ projects/clang600-import/sys/vm/vm_pageout.c Sun Dec 24 20:17:36 2017 (r327169) @@ -1829,10 +1829,14 @@ vm_pageout_worker(void *arg) pass++; } else { /* - * Yes. Sleep until pages need to be reclaimed or + * Yes. If threads are still sleeping in VM_WAIT + * then we immediately start a new scan. Otherwise, + * sleep until the next wakeup or until pages need to * have their reference stats updated. */ - if (mtx_sleep(&vm_pageout_wanted, + if (vm_pages_needed) { + mtx_unlock(&vm_page_queue_free_mtx); + } else if (mtx_sleep(&vm_pageout_wanted, &vm_page_queue_free_mtx, PDROP | PVM, "psleep", hz) == 0) { VM_CNT_INC(v_pdwakeups); @@ -1940,17 +1944,42 @@ vm_pageout(void) } /* - * Unless the free page queue lock is held by the caller, this function - * should be regarded as advisory. Specifically, the caller should - * not msleep() on &vm_cnt.v_free_count following this function unless - * the free page queue lock is held until the msleep() is performed. + * Perform an advisory wakeup of the page daemon. */ void pagedaemon_wakeup(void) { + mtx_assert(&vm_page_queue_free_mtx, MA_NOTOWNED); + if (!vm_pageout_wanted && curthread->td_proc != pageproc) { vm_pageout_wanted = true; wakeup(&vm_pageout_wanted); } +} + +/* + * Wake up the page daemon and wait for it to reclaim free pages. + * + * This function returns with the free queues mutex unlocked. + */ +void +pagedaemon_wait(int pri, const char *wmesg) +{ + + mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + + /* + * vm_pageout_wanted may have been set by an advisory wakeup, but if the + * page daemon is running on a CPU, the wakeup will have been lost. + * Thus, deliver a potentially spurious wakeup to ensure that the page + * daemon has been notified of the shortage. + */ + if (!vm_pageout_wanted || !vm_pages_needed) { + vm_pageout_wanted = true; + wakeup(&vm_pageout_wanted); + } + vm_pages_needed = true; + msleep(&vm_cnt.v_free_count, &vm_page_queue_free_mtx, PDROP | pri, + wmesg, 0); } Modified: projects/clang600-import/sys/vm/vm_pageout.h ============================================================================== --- projects/clang600-import/sys/vm/vm_pageout.h Sun Dec 24 19:45:16 2017 (r327168) +++ projects/clang600-import/sys/vm/vm_pageout.h Sun Dec 24 20:17:36 2017 (r327169) @@ -96,11 +96,12 @@ extern bool vm_pages_needed; * Signal pageout-daemon and wait for it. */ -extern void pagedaemon_wakeup(void); +void pagedaemon_wait(int pri, const char *wmesg); +void pagedaemon_wakeup(void); #define VM_WAIT vm_wait() #define VM_WAITPFAULT vm_waitpfault() -extern void vm_wait(void); -extern void vm_waitpfault(void); +void vm_wait(void); +void vm_waitpfault(void); #ifdef _KERNEL int vm_pageout_flush(vm_page_t *, int, int, int, int *, boolean_t *); Modified: projects/clang600-import/sys/x86/isa/orm.c ============================================================================== --- projects/clang600-import/sys/x86/isa/orm.c Sun Dec 24 19:45:16 2017 (r327168) +++ projects/clang600-import/sys/x86/isa/orm.c Sun Dec 24 20:17:36 2017 (r327169) @@ -156,7 +156,6 @@ orm_identify(driver_t* driver, device_t parent) device_set_desc(child, "ISA Option ROM"); else device_set_desc(child, "ISA Option ROMs"); -// isa_set_vendorid(child, PNP_EISAID("PNP0C80")); } static int From owner-svn-src-projects@freebsd.org Mon Dec 25 13:17:30 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7C73CE8AABF for ; Mon, 25 Dec 2017 13:17:30 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4676D63FFA; Mon, 25 Dec 2017 13:17:30 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBPDHTC6089689; Mon, 25 Dec 2017 13:17:29 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBPDHTPe089688; Mon, 25 Dec 2017 13:17:29 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712251317.vBPDHTPe089688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 25 Dec 2017 13:17:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327174 - projects/clang600-import/lib/libclang_rt X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang600-import/lib/libclang_rt X-SVN-Commit-Revision: 327174 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Dec 2017 13:17:30 -0000 Author: dim Date: Mon Dec 25 13:17:29 2017 New Revision: 327174 URL: https://svnweb.freebsd.org/changeset/base/327174 Log: Only build tsan and tsan_cxx for amd64, as 32 bit is unsupported. Modified: projects/clang600-import/lib/libclang_rt/Makefile Modified: projects/clang600-import/lib/libclang_rt/Makefile ============================================================================== --- projects/clang600-import/lib/libclang_rt/Makefile Mon Dec 25 04:48:39 2017 (r327173) +++ projects/clang600-import/lib/libclang_rt/Makefile Mon Dec 25 13:17:29 2017 (r327174) @@ -9,8 +9,10 @@ SUBDIR+= asan_dynamic SUBDIR+= safestack SUBDIR+= stats SUBDIR+= stats_client +.if ${MACHINE_CPUARCH} == "amd64" SUBDIR+= tsan SUBDIR+= tsan_cxx +.endif SUBDIR+= ubsan_minimal SUBDIR+= ubsan_standalone SUBDIR+= ubsan_standalone_cxx From owner-svn-src-projects@freebsd.org Fri Dec 29 00:21:52 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 10C6DE8BD06 for ; Fri, 29 Dec 2017 00:21:52 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CF5187391D; Fri, 29 Dec 2017 00:21:51 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBT0LoEE099623; Fri, 29 Dec 2017 00:21:50 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBT0LoQK099622; Fri, 29 Dec 2017 00:21:50 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712290021.vBT0LoQK099622@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 29 Dec 2017 00:21:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327328 - projects/clang600-import/lib/clang/libllvm X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang600-import/lib/clang/libllvm X-SVN-Commit-Revision: 327328 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Dec 2017 00:21:52 -0000 Author: dim Date: Fri Dec 29 00:21:50 2017 New Revision: 327328 URL: https://svnweb.freebsd.org/changeset/base/327328 Log: Add one more file to libllvm's SRCS_MIN, since this one is required for MK_SHARED_TOOLCHAIN=yes. Modified: projects/clang600-import/lib/clang/libllvm/Makefile Modified: projects/clang600-import/lib/clang/libllvm/Makefile ============================================================================== --- projects/clang600-import/lib/clang/libllvm/Makefile Thu Dec 28 23:58:52 2017 (r327327) +++ projects/clang600-import/lib/clang/libllvm/Makefile Fri Dec 29 00:21:50 2017 (r327328) @@ -646,7 +646,7 @@ SRCS_MIN+= Object/RecordStreamer.cpp SRCS_MIW+= Object/SymbolSize.cpp SRCS_MIN+= Object/SymbolicFile.cpp SRCS_MIN+= Object/WasmObjectFile.cpp -SRCS_MIW+= Object/WindowsResource.cpp +SRCS_MIN+= Object/WindowsResource.cpp SRCS_MIN+= ObjectYAML/COFFYAML.cpp SRCS_EXT+= ObjectYAML/CodeViewYAMLDebugSections.cpp SRCS_EXT+= ObjectYAML/CodeViewYAMLSymbols.cpp From owner-svn-src-projects@freebsd.org Fri Dec 29 00:56:20 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 09B29E9E7A2 for ; Fri, 29 Dec 2017 00:56:20 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7496774984; Fri, 29 Dec 2017 00:56:19 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBT0uIUT013228; Fri, 29 Dec 2017 00:56:18 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBT0uFVp013200; Fri, 29 Dec 2017 00:56:15 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712290056.vBT0uFVp013200@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 29 Dec 2017 00:56:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327330 - in projects/clang600-import: contrib/compiler-rt/lib/sanitizer_common contrib/compiler-rt/lib/tsan/rtl contrib/compiler-rt/lib/ubsan contrib/libc++/src/experimental/filesystem... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import: contrib/compiler-rt/lib/sanitizer_common contrib/compiler-rt/lib/tsan/rtl contrib/compiler-rt/lib/ubsan contrib/libc++/src/experimental/filesystem contrib/llvm/include/llv... X-SVN-Commit-Revision: 327330 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Dec 2017 00:56:20 -0000 Author: dim Date: Fri Dec 29 00:56:15 2017 New Revision: 327330 URL: https://svnweb.freebsd.org/changeset/base/327330 Log: Merge llvm, clang, lld, lldb, compiler-rt and libc++ trunk r321545, update build glue and version numbers, add new intrinsics headers, and update OptionalObsoleteFiles.inc. Added: projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/avx512bitalgintrin.h - copied unchanged from r327329, vendor/clang/dist/lib/Headers/avx512bitalgintrin.h projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/avx512vbmi2intrin.h - copied unchanged from r327329, vendor/clang/dist/lib/Headers/avx512vbmi2intrin.h projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/avx512vlbitalgintrin.h - copied unchanged from r327329, vendor/clang/dist/lib/Headers/avx512vlbitalgintrin.h projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/avx512vlvbmi2intrin.h - copied unchanged from r327329, vendor/clang/dist/lib/Headers/avx512vlvbmi2intrin.h projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/avx512vlvnniintrin.h - copied unchanged from r327329, vendor/clang/dist/lib/Headers/avx512vlvnniintrin.h projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/avx512vnniintrin.h - copied unchanged from r327329, vendor/clang/dist/lib/Headers/avx512vnniintrin.h projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/gfniintrin.h - copied unchanged from r327329, vendor/clang/dist/lib/Headers/gfniintrin.h projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/vaesintrin.h - copied unchanged from r327329, vendor/clang/dist/lib/Headers/vaesintrin.h projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/vpclmulqdqintrin.h - copied unchanged from r327329, vendor/clang/dist/lib/Headers/vpclmulqdqintrin.h Modified: projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h projects/clang600-import/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc projects/clang600-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc projects/clang600-import/contrib/libc++/src/experimental/filesystem/operations.cpp projects/clang600-import/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h projects/clang600-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h projects/clang600-import/contrib/llvm/include/llvm/BinaryFormat/COFF.h projects/clang600-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h projects/clang600-import/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td projects/clang600-import/contrib/llvm/include/llvm/ProfileData/SampleProf.h projects/clang600-import/contrib/llvm/include/llvm/Support/KnownBits.h projects/clang600-import/contrib/llvm/lib/Analysis/DemandedBits.cpp projects/clang600-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp projects/clang600-import/contrib/llvm/lib/Analysis/Lint.cpp projects/clang600-import/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp projects/clang600-import/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp projects/clang600-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp projects/clang600-import/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp projects/clang600-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp projects/clang600-import/contrib/llvm/lib/Analysis/ValueTracking.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp projects/clang600-import/contrib/llvm/lib/IR/SafepointIRVerifier.cpp projects/clang600-import/contrib/llvm/lib/LTO/LTOModule.cpp projects/clang600-import/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp projects/clang600-import/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp projects/clang600-import/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp projects/clang600-import/contrib/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp projects/clang600-import/contrib/llvm/lib/Support/ARMAttributeParser.cpp projects/clang600-import/contrib/llvm/lib/Support/CommandLine.cpp projects/clang600-import/contrib/llvm/lib/TableGen/Main.cpp projects/clang600-import/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp projects/clang600-import/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp projects/clang600-import/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp projects/clang600-import/contrib/llvm/lib/Target/NVPTX/NVPTXMCExpr.cpp projects/clang600-import/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp projects/clang600-import/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp projects/clang600-import/contrib/llvm/lib/Target/X86/X86.td projects/clang600-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/clang600-import/contrib/llvm/lib/Target/X86/X86ISelLowering.h projects/clang600-import/contrib/llvm/lib/Target/X86/X86InstrAVX512.td projects/clang600-import/contrib/llvm/lib/Target/X86/X86InstrFPStack.td projects/clang600-import/contrib/llvm/lib/Target/X86/X86InstrInfo.td projects/clang600-import/contrib/llvm/lib/Target/X86/X86InstrSSE.td projects/clang600-import/contrib/llvm/lib/Target/X86/X86WinEHState.cpp projects/clang600-import/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp projects/clang600-import/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp projects/clang600-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp projects/clang600-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp projects/clang600-import/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp projects/clang600-import/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp projects/clang600-import/contrib/llvm/tools/clang/include/clang/AST/Stmt.h projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def projects/clang600-import/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td projects/clang600-import/contrib/llvm/tools/clang/include/clang/Driver/Options.td projects/clang600-import/contrib/llvm/tools/clang/include/clang/Parse/Parser.h projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/AST/Decl.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/AST/Stmt.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Basic/Targets/AArch64.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Basic/Targets/ARM.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Basic/Targets/X86.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Basic/Targets/X86.h projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h projects/clang600-import/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Headers/immintrin.h projects/clang600-import/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Parse/Parser.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp projects/clang600-import/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp projects/clang600-import/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp projects/clang600-import/contrib/llvm/tools/lld/COFF/Config.h projects/clang600-import/contrib/llvm/tools/lld/COFF/Driver.cpp projects/clang600-import/contrib/llvm/tools/lld/COFF/Driver.h projects/clang600-import/contrib/llvm/tools/lld/COFF/DriverUtils.cpp projects/clang600-import/contrib/llvm/tools/lld/COFF/Options.td projects/clang600-import/contrib/llvm/tools/lld/COFF/SymbolTable.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/Arch/X86.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/LinkerScript.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/Relocations.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/ScriptLexer.cpp projects/clang600-import/contrib/llvm/tools/lld/ELF/ScriptParser.cpp projects/clang600-import/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h projects/clang600-import/contrib/llvm/tools/llvm-cov/CodeCoverage.cpp projects/clang600-import/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp projects/clang600-import/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp projects/clang600-import/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp projects/clang600-import/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp projects/clang600-import/contrib/llvm/utils/TableGen/DFAPacketizerEmitter.cpp projects/clang600-import/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp projects/clang600-import/lib/clang/headers/Makefile projects/clang600-import/lib/clang/include/clang/Basic/Version.inc projects/clang600-import/lib/clang/include/lld/Common/Version.inc projects/clang600-import/lib/clang/include/llvm/Support/VCSRevision.h projects/clang600-import/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: projects/clang600-import/contrib/compiler-rt/ (props changed) projects/clang600-import/contrib/libc++/ (props changed) projects/clang600-import/contrib/llvm/ (props changed) projects/clang600-import/contrib/llvm/tools/clang/ (props changed) projects/clang600-import/contrib/llvm/tools/lld/ (props changed) projects/clang600-import/contrib/llvm/tools/lldb/ (props changed) Modified: projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc Fri Dec 29 00:56:15 2017 (r327330) @@ -4551,6 +4551,20 @@ INTERCEPTOR(int, pthread_setname_np, uptr thread, cons #define INIT_PTHREAD_SETNAME_NP #endif +#if SANITIZER_INTERCEPT_PTHREAD_GETNAME_NP +INTERCEPTOR(int, pthread_getname_np, uptr thread, char *name, SIZE_T len) { + void *ctx; + COMMON_INTERCEPTOR_ENTER(ctx, pthread_getname_np, thread, name, len); + int res = REAL(pthread_getname_np)(thread, name, len); + if (!res) + COMMON_INTERCEPTOR_WRITE_RANGE(ctx, name, internal_strnlen(name, len) + 1); + return res; +} +#define INIT_PTHREAD_GETNAME_NP COMMON_INTERCEPT_FUNCTION(pthread_getname_np); +#else +#define INIT_PTHREAD_GETNAME_NP +#endif + #if SANITIZER_INTERCEPT_SINCOS INTERCEPTOR(void, sincos, double x, double *sin, double *cos) { void *ctx; @@ -6541,6 +6555,7 @@ static void InitializeCommonInterceptors() { INIT_TTYNAME_R; INIT_TEMPNAM; INIT_PTHREAD_SETNAME_NP; + INIT_PTHREAD_GETNAME_NP; INIT_SINCOS; INIT_REMQUO; INIT_LGAMMA; Modified: projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h Fri Dec 29 00:56:15 2017 (r327330) @@ -343,6 +343,8 @@ #define SANITIZER_INTERCEPT_PHTREAD_MUTEX SI_POSIX #define SANITIZER_INTERCEPT_PTHREAD_SETNAME_NP \ (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID || SI_SOLARIS) +#define SANITIZER_INTERCEPT_PTHREAD_GETNAME_NP \ + (SI_FREEBSD || SI_LINUX_NOT_ANDROID || SI_SOLARIS) #define SANITIZER_INTERCEPT_TLS_GET_ADDR \ (SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID || SI_SOLARIS) Modified: projects/clang600-import/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc Fri Dec 29 00:56:15 2017 (r327330) @@ -25,6 +25,11 @@ #include #include +// DISPATCH_NOESCAPE is not defined prior to XCode 8. +#ifndef DISPATCH_NOESCAPE +#define DISPATCH_NOESCAPE +#endif + typedef long long_t; // NOLINT namespace __tsan { Modified: projects/clang600-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc ============================================================================== --- projects/clang600-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc Fri Dec 29 00:56:15 2017 (r327330) @@ -38,7 +38,8 @@ bool ignoreReport(SourceLocation SLoc, ReportOptions O const char *TypeCheckKinds[] = { "load of", "store to", "reference binding to", "member access within", "member call on", "constructor call on", "downcast of", "downcast of", - "upcast of", "cast to virtual base of", "_Nonnull binding to"}; + "upcast of", "cast to virtual base of", "_Nonnull binding to", + "dynamic operation on"}; } static void handleTypeMismatchImpl(TypeMismatchData *Data, ValueHandle Pointer, Modified: projects/clang600-import/contrib/libc++/src/experimental/filesystem/operations.cpp ============================================================================== --- projects/clang600-import/contrib/libc++/src/experimental/filesystem/operations.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/libc++/src/experimental/filesystem/operations.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -512,6 +512,7 @@ using StatT = struct stat; #if defined(__APPLE__) TimeSpec extract_mtime(StatT const& st) { return st.st_mtimespec; } +__attribute__((unused)) // Suppress warning TimeSpec extract_atime(StatT const& st) { return st.st_atimespec; } #else TimeSpec extract_mtime(StatT const& st) { return st.st_mtim; } Modified: projects/clang600-import/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h Fri Dec 29 00:56:15 2017 (r327330) @@ -197,6 +197,9 @@ Value *SimplifyBinOp(unsigned Opcode, Value *LHS, Valu Value *SimplifyFPBinOp(unsigned Opcode, Value *LHS, Value *RHS, FastMathFlags FMF, const SimplifyQuery &Q); +/// Given a callsite, fold the result or return null. +Value *SimplifyCall(ImmutableCallSite CS, const SimplifyQuery &Q); + /// Given a function and iterators over arguments, fold the result or return /// null. Value *SimplifyCall(ImmutableCallSite CS, Value *V, User::op_iterator ArgBegin, Modified: projects/clang600-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h Fri Dec 29 00:56:15 2017 (r327330) @@ -407,12 +407,6 @@ class MemoryDependenceResults { (public) void getNonLocalPointerDependency(Instruction *QueryInst, SmallVectorImpl &Result); - /// Perform a dependency query specifically for QueryInst's access to Loc. - /// The other comments for getNonLocalPointerDependency apply here as well. - void getNonLocalPointerDependencyFrom(Instruction *QueryInst, - const MemoryLocation &Loc, bool isLoad, - SmallVectorImpl &Result); - /// Removes an instruction from the dependence analysis, updating the /// dependence of instructions that previously depended on it. void removeInstruction(Instruction *InstToRemove); Modified: projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h Fri Dec 29 00:56:15 2017 (r327330) @@ -646,9 +646,6 @@ class TargetTransformInfo { (public) /// \brief Additional properties of an operand's values. enum OperandValueProperties { OP_None = 0, OP_PowerOf2 = 1 }; - /// \return True if target can execute instructions out of order. - bool isOutOfOrder() const; - /// \return The number of scalar or vector registers that the target has. /// If 'Vectors' is true, it returns the number of vector registers. If it is /// set to false, it returns the number of scalar registers. @@ -1021,7 +1018,6 @@ class TargetTransformInfo::Concept { (public) Type *Ty) = 0; virtual int getIntImmCost(Intrinsic::ID IID, unsigned Idx, const APInt &Imm, Type *Ty) = 0; - virtual bool isOutOfOrder() const = 0; virtual unsigned getNumberOfRegisters(bool Vector) = 0; virtual unsigned getRegisterBitWidth(bool Vector) const = 0; virtual unsigned getMinVectorRegisterBitWidth() = 0; @@ -1298,9 +1294,6 @@ class TargetTransformInfo::Model final : public Target int getIntImmCost(Intrinsic::ID IID, unsigned Idx, const APInt &Imm, Type *Ty) override { return Impl.getIntImmCost(IID, Idx, Imm, Ty); - } - bool isOutOfOrder() const override { - return Impl.isOutOfOrder(); } unsigned getNumberOfRegisters(bool Vector) override { return Impl.getNumberOfRegisters(Vector); Modified: projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h Fri Dec 29 00:56:15 2017 (r327330) @@ -337,8 +337,6 @@ class TargetTransformInfoImplBase { (public) return TTI::TCC_Free; } - bool isOutOfOrder() const { return false; } - unsigned getNumberOfRegisters(bool Vector) { return 8; } unsigned getRegisterBitWidth(bool Vector) const { return 32; } Modified: projects/clang600-import/contrib/llvm/include/llvm/BinaryFormat/COFF.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/BinaryFormat/COFF.h Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/include/llvm/BinaryFormat/COFF.h Fri Dec 29 00:56:15 2017 (r327330) @@ -95,7 +95,7 @@ enum MachineTypes : unsigned { MT_Invalid = 0xffff, IMAGE_FILE_MACHINE_UNKNOWN = 0x0, - IMAGE_FILE_MACHINE_AM33 = 0x13, + IMAGE_FILE_MACHINE_AM33 = 0x1D3, IMAGE_FILE_MACHINE_AMD64 = 0x8664, IMAGE_FILE_MACHINE_ARM = 0x1C0, IMAGE_FILE_MACHINE_ARMNT = 0x1C4, Modified: projects/clang600-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h Fri Dec 29 00:56:15 2017 (r327330) @@ -402,10 +402,6 @@ class BasicTTIImplBase : public TargetTransformInfoImp return BaseT::getInstructionLatency(I); } - bool isOutOfOrder() const { - return getST()->getSchedModel().isOutOfOrder(); - } - /// @} /// \name Vector TTI Implementations Modified: projects/clang600-import/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td Fri Dec 29 00:56:15 2017 (r327330) @@ -288,7 +288,8 @@ class AMDGPUAtomicIncIntrin : Intrinsic<[llvm_anyint_t llvm_i32_ty, // ordering llvm_i32_ty, // scope llvm_i1_ty], // isVolatile - [IntrArgMemOnly, NoCapture<0>] + [IntrArgMemOnly, NoCapture<0>], "", + [SDNPMemOperand] >; def int_amdgcn_atomic_inc : AMDGPUAtomicIncIntrin; Modified: projects/clang600-import/contrib/llvm/include/llvm/ProfileData/SampleProf.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/ProfileData/SampleProf.h Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/include/llvm/ProfileData/SampleProf.h Fri Dec 29 00:56:15 2017 (r327330) @@ -226,8 +226,8 @@ class FunctionSamples { (public) sampleprof_error addCalledTargetSamples(uint32_t LineOffset, uint32_t Discriminator, - const std::string &FName, - uint64_t Num, uint64_t Weight = 1) { + StringRef FName, uint64_t Num, + uint64_t Weight = 1) { return BodySamples[LineLocation(LineOffset, Discriminator)].addCalledTarget( FName, Num, Weight); } Modified: projects/clang600-import/contrib/llvm/include/llvm/Support/KnownBits.h ============================================================================== --- projects/clang600-import/contrib/llvm/include/llvm/Support/KnownBits.h Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/include/llvm/Support/KnownBits.h Fri Dec 29 00:56:15 2017 (r327330) @@ -100,13 +100,11 @@ struct KnownBits { (public) /// Make this value negative. void makeNegative() { - assert(!isNonNegative() && "Can't make a non-negative value negative"); One.setSignBit(); } /// Make this value negative. void makeNonNegative() { - assert(!isNegative() && "Can't make a negative value non-negative"); Zero.setSignBit(); } Modified: projects/clang600-import/contrib/llvm/lib/Analysis/DemandedBits.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/Analysis/DemandedBits.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/Analysis/DemandedBits.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -385,8 +385,8 @@ bool DemandedBits::isInstructionDead(Instruction *I) { void DemandedBits::print(raw_ostream &OS) { performAnalysis(); for (auto &KV : AliveBits) { - OS << "DemandedBits: 0x" << utohexstr(KV.second.getLimitedValue()) << " for " - << *KV.first << "\n"; + OS << "DemandedBits: 0x" << Twine::utohexstr(KV.second.getLimitedValue()) + << " for " << *KV.first << '\n'; } } Modified: projects/clang600-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/Analysis/InstructionSimplify.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -3897,8 +3897,9 @@ static Value *SimplifyExtractElementInst(Value *Vec, V // If extracting a specified index from the vector, see if we can recursively // find a previously computed scalar that was inserted into the vector. if (auto *IdxC = dyn_cast(Idx)) - if (Value *Elt = findScalarElement(Vec, IdxC->getZExtValue())) - return Elt; + if (IdxC->getValue().ule(Vec->getType()->getVectorNumElements())) + if (Value *Elt = findScalarElement(Vec, IdxC->getZExtValue())) + return Elt; // An undef extract index can be arbitrarily chosen to be an out-of-range // index value, which would result in the instruction being undef. @@ -4494,6 +4495,22 @@ static Value *SimplifyIntrinsic(Function *F, IterTy Ar return *ArgBegin; return nullptr; } + case Intrinsic::bswap: { + Value *IIOperand = *ArgBegin; + Value *X = nullptr; + // bswap(bswap(x)) -> x + if (match(IIOperand, m_BSwap(m_Value(X)))) + return X; + return nullptr; + } + case Intrinsic::bitreverse: { + Value *IIOperand = *ArgBegin; + Value *X = nullptr; + // bitreverse(bitreverse(x)) -> x + if (match(IIOperand, m_BitReverse(m_Value(X)))) + return X; + return nullptr; + } default: return nullptr; } @@ -4548,6 +4565,16 @@ static Value *SimplifyIntrinsic(Function *F, IterTy Ar return SimplifyRelativeLoad(C0, C1, Q.DL); return nullptr; } + case Intrinsic::powi: + if (ConstantInt *Power = dyn_cast(RHS)) { + // powi(x, 0) -> 1.0 + if (Power->isZero()) + return ConstantFP::get(LHS->getType(), 1.0); + // powi(x, 1) -> x + if (Power->isOne()) + return LHS; + } + return nullptr; default: return nullptr; } @@ -4616,6 +4643,12 @@ Value *llvm::SimplifyCall(ImmutableCallSite CS, Value return ::SimplifyCall(CS, V, Args.begin(), Args.end(), Q, RecursionLimit); } +Value *llvm::SimplifyCall(ImmutableCallSite ICS, const SimplifyQuery &Q) { + CallSite CS(const_cast(ICS.getInstruction())); + return ::SimplifyCall(CS, CS.getCalledValue(), CS.arg_begin(), CS.arg_end(), + Q, RecursionLimit); +} + /// See if we can compute a simplified version of this instruction. /// If not, this returns null. @@ -4750,8 +4783,7 @@ Value *llvm::SimplifyInstruction(Instruction *I, const break; case Instruction::Call: { CallSite CS(cast(I)); - Result = SimplifyCall(CS, CS.getCalledValue(), CS.arg_begin(), CS.arg_end(), - Q); + Result = SimplifyCall(CS, Q); break; } #define HANDLE_CAST_INST(num, opc, clas) case Instruction::opc: Modified: projects/clang600-import/contrib/llvm/lib/Analysis/Lint.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/Analysis/Lint.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/Analysis/Lint.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -265,13 +265,21 @@ void Lint::visitCallSite(CallSite CS) { // Check that noalias arguments don't alias other arguments. This is // not fully precise because we don't know the sizes of the dereferenced // memory regions. - if (Formal->hasNoAliasAttr() && Actual->getType()->isPointerTy()) - for (CallSite::arg_iterator BI = CS.arg_begin(); BI != AE; ++BI) + if (Formal->hasNoAliasAttr() && Actual->getType()->isPointerTy()) { + AttributeList PAL = CS.getAttributes(); + unsigned ArgNo = 0; + for (CallSite::arg_iterator BI = CS.arg_begin(); BI != AE; ++BI) { + // Skip ByVal arguments since they will be memcpy'd to the callee's + // stack so we're not really passing the pointer anyway. + if (PAL.hasParamAttribute(ArgNo++, Attribute::ByVal)) + continue; if (AI != BI && (*BI)->getType()->isPointerTy()) { AliasResult Result = AA->alias(*AI, *BI); Assert(Result != MustAlias && Result != PartialAlias, "Unusual: noalias argument aliases another argument", &I); } + } + } // Check that an sret argument points to valid memory. if (Formal->hasStructRetAttr() && Actual->getType()->isPointerTy()) { Modified: projects/clang600-import/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -920,14 +920,6 @@ void MemoryDependenceResults::getNonLocalPointerDepend Instruction *QueryInst, SmallVectorImpl &Result) { const MemoryLocation Loc = MemoryLocation::get(QueryInst); bool isLoad = isa(QueryInst); - return getNonLocalPointerDependencyFrom(QueryInst, Loc, isLoad, Result); -} - -void MemoryDependenceResults::getNonLocalPointerDependencyFrom( - Instruction *QueryInst, - const MemoryLocation &Loc, - bool isLoad, - SmallVectorImpl &Result) { BasicBlock *FromBB = QueryInst->getParent(); assert(FromBB); @@ -1127,15 +1119,21 @@ bool MemoryDependenceResults::getNonLocalPointerDepFro // If we already have a cache entry for this CacheKey, we may need to do some // work to reconcile the cache entry and the current query. if (!Pair.second) { - if (CacheInfo->Size != Loc.Size) { - // The query's Size differs from the cached one. Throw out the - // cached data and proceed with the query at the new size. + if (CacheInfo->Size < Loc.Size) { + // The query's Size is greater than the cached one. Throw out the + // cached data and proceed with the query at the greater size. CacheInfo->Pair = BBSkipFirstBlockPair(); CacheInfo->Size = Loc.Size; for (auto &Entry : CacheInfo->NonLocalDeps) if (Instruction *Inst = Entry.getResult().getInst()) RemoveFromReverseMap(ReverseNonLocalPtrDeps, Inst, CacheKey); CacheInfo->NonLocalDeps.clear(); + } else if (CacheInfo->Size > Loc.Size) { + // This query's Size is less than the cached one. Conservatively restart + // the query using the greater size. + return getNonLocalPointerDepFromBB( + QueryInst, Pointer, Loc.getWithNewSize(CacheInfo->Size), isLoad, + StartBB, Result, Visited, SkipFirstBlock); } // If the query's AATags are inconsistent with the cached one, Modified: projects/clang600-import/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -306,7 +306,9 @@ computeFunctionSummary(ModuleSummaryIndex &Index, cons NonRenamableLocal || HasInlineAsmMaybeReferencingInternal || // Inliner doesn't handle variadic functions. // FIXME: refactor this to use the same code that inliner is using. - F.isVarArg(); + F.isVarArg() || + // Don't try to import functions with noinline attribute. + F.getAttributes().hasFnAttribute(Attribute::NoInline); GlobalValueSummary::GVFlags Flags(F.getLinkage(), NotEligibleForImport, /* Live = */ false, F.isDSOLocal()); FunctionSummary::FFlags FunFlags{ Modified: projects/clang600-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/Analysis/ScalarEvolution.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -1268,7 +1268,11 @@ const SCEV *ScalarEvolution::getTruncateExpr(const SCE } if (!hasTrunc) return getAddExpr(Operands); - UniqueSCEVs.FindNodeOrInsertPos(ID, IP); // Mutates IP, returns NULL. + // In spite we checked in the beginning that ID is not in the cache, + // it is possible that during recursion and different modification + // ID came to cache, so if we found it, just return it. + if (const SCEV *S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP)) + return S; } // trunc(x1*x2*...*xN) --> trunc(x1)*trunc(x2)*...*trunc(xN) if we can @@ -1284,7 +1288,11 @@ const SCEV *ScalarEvolution::getTruncateExpr(const SCE } if (!hasTrunc) return getMulExpr(Operands); - UniqueSCEVs.FindNodeOrInsertPos(ID, IP); // Mutates IP, returns NULL. + // In spite we checked in the beginning that ID is not in the cache, + // it is possible that during recursion and different modification + // ID came to cache, so if we found it, just return it. + if (const SCEV *S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP)) + return S; } // If the input value is a chrec scev, truncate the chrec's operands. Modified: projects/clang600-import/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -187,8 +187,21 @@ Value *SCEVExpander::InsertBinop(Instruction::BinaryOp // generated code. if (isa(IP)) ScanLimit++; + + // Conservatively, do not use any instruction which has any of wrap/exact + // flags installed. + // TODO: Instead of simply disable poison instructions we can be clever + // here and match SCEV to this instruction. + auto canGeneratePoison = [](Instruction *I) { + if (isa(I) && + (I->hasNoSignedWrap() || I->hasNoUnsignedWrap())) + return true; + if (isa(I) && I->isExact()) + return true; + return false; + }; if (IP->getOpcode() == (unsigned)Opcode && IP->getOperand(0) == LHS && - IP->getOperand(1) == RHS) + IP->getOperand(1) == RHS && !canGeneratePoison(&*IP)) return &*IP; if (IP == BlockBegin) break; } Modified: projects/clang600-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -314,10 +314,6 @@ int TargetTransformInfo::getIntImmCost(Intrinsic::ID I return Cost; } -bool TargetTransformInfo::isOutOfOrder() const { - return TTIImpl->isOutOfOrder(); -} - unsigned TargetTransformInfo::getNumberOfRegisters(bool Vector) const { return TTIImpl->getNumberOfRegisters(Vector); } Modified: projects/clang600-import/contrib/llvm/lib/Analysis/ValueTracking.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/Analysis/ValueTracking.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/Analysis/ValueTracking.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -4238,14 +4238,14 @@ static SelectPatternResult matchSelectPattern(CmpInst: LHS = CmpLHS; RHS = CmpRHS; - // If the predicate is an "or-equal" (FP) predicate, then signed zeroes may - // return inconsistent results between implementations. - // (0.0 <= -0.0) ? 0.0 : -0.0 // Returns 0.0 - // minNum(0.0, -0.0) // May return -0.0 or 0.0 (IEEE 754-2008 5.3.1) - // Therefore we behave conservatively and only proceed if at least one of the - // operands is known to not be zero, or if we don't care about signed zeroes. + // Signed zero may return inconsistent results between implementations. + // (0.0 <= -0.0) ? 0.0 : -0.0 // Returns 0.0 + // minNum(0.0, -0.0) // May return -0.0 or 0.0 (IEEE 754-2008 5.3.1) + // Therefore, we behave conservatively and only proceed if at least one of the + // operands is known to not be zero or if we don't care about signed zero. switch (Pred) { default: break; + // FIXME: Include OGT/OLT/UGT/ULT. case CmpInst::FCMP_OGE: case CmpInst::FCMP_OLE: case CmpInst::FCMP_UGE: case CmpInst::FCMP_ULE: if (!FMF.noSignedZeros() && !isKnownNonZero(CmpLHS) && @@ -4493,14 +4493,24 @@ SelectPatternResult llvm::matchSelectPattern(Value *V, // Deal with type mismatches. if (CastOp && CmpLHS->getType() != TrueVal->getType()) { - if (Value *C = lookThroughCast(CmpI, TrueVal, FalseVal, CastOp)) + if (Value *C = lookThroughCast(CmpI, TrueVal, FalseVal, CastOp)) { + // If this is a potential fmin/fmax with a cast to integer, then ignore + // -0.0 because there is no corresponding integer value. + if (*CastOp == Instruction::FPToSI || *CastOp == Instruction::FPToUI) + FMF.setNoSignedZeros(); return ::matchSelectPattern(Pred, FMF, CmpLHS, CmpRHS, cast(TrueVal)->getOperand(0), C, LHS, RHS); - if (Value *C = lookThroughCast(CmpI, FalseVal, TrueVal, CastOp)) + } + if (Value *C = lookThroughCast(CmpI, FalseVal, TrueVal, CastOp)) { + // If this is a potential fmin/fmax with a cast to integer, then ignore + // -0.0 because there is no corresponding integer value. + if (*CastOp == Instruction::FPToSI || *CastOp == Instruction::FPToUI) + FMF.setNoSignedZeros(); return ::matchSelectPattern(Pred, FMF, CmpLHS, CmpRHS, C, cast(FalseVal)->getOperand(0), LHS, RHS); + } } return ::matchSelectPattern(Pred, FMF, CmpLHS, CmpRHS, TrueVal, FalseVal, LHS, RHS); Modified: projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -1922,14 +1922,16 @@ SDValue DAGCombiner::foldBinOpIntoSelect(SDNode *BO) { EVT VT = Sel.getValueType(); SDLoc DL(Sel); SDValue NewCT = DAG.getNode(BinOpcode, DL, VT, CT, C1); - assert((NewCT.isUndef() || isConstantOrConstantVector(NewCT) || - isConstantFPBuildVectorOrConstantFP(NewCT)) && - "Failed to constant fold a binop with constant operands"); + if (!NewCT.isUndef() && + !isConstantOrConstantVector(NewCT, true) && + !isConstantFPBuildVectorOrConstantFP(NewCT)) + return SDValue(); SDValue NewCF = DAG.getNode(BinOpcode, DL, VT, CF, C1); - assert((NewCF.isUndef() || isConstantOrConstantVector(NewCF) || - isConstantFPBuildVectorOrConstantFP(NewCF)) && - "Failed to constant fold a binop with constant operands"); + if (!NewCF.isUndef() && + !isConstantOrConstantVector(NewCF, true) && + !isConstantFPBuildVectorOrConstantFP(NewCF)) + return SDValue(); return DAG.getSelect(DL, VT, Sel.getOperand(0), NewCT, NewCF); } @@ -3577,7 +3579,8 @@ SDValue DAGCombiner::foldLogicOfSetCCs(bool IsAnd, SDV // TODO: What is the 'or' equivalent of this fold? // (and (setne X, 0), (setne X, -1)) --> (setuge (add X, 1), 2) - if (IsAnd && LL == RL && CC0 == CC1 && IsInteger && CC0 == ISD::SETNE && + if (IsAnd && LL == RL && CC0 == CC1 && OpVT.getScalarSizeInBits() > 1 && + IsInteger && CC0 == ISD::SETNE && ((isNullConstant(LR) && isAllOnesConstant(RR)) || (isAllOnesConstant(LR) && isNullConstant(RR)))) { SDValue One = DAG.getConstant(1, DL, OpVT); @@ -3641,15 +3644,18 @@ SDValue DAGCombiner::visitANDLike(SDValue N0, SDValue if (N0.getOpcode() == ISD::ADD && N1.getOpcode() == ISD::SRL && VT.getSizeInBits() <= 64) { if (ConstantSDNode *ADDI = dyn_cast(N0.getOperand(1))) { - APInt ADDC = ADDI->getAPIntValue(); - if (!TLI.isLegalAddImmediate(ADDC.getSExtValue())) { + if (ConstantSDNode *SRLI = dyn_cast(N1.getOperand(1))) { // Look for (and (add x, c1), (lshr y, c2)). If C1 wasn't a legal // immediate for an add, but it is legal if its top c2 bits are set, // transform the ADD so the immediate doesn't need to be materialized // in a register. - if (ConstantSDNode *SRLI = dyn_cast(N1.getOperand(1))) { + APInt ADDC = ADDI->getAPIntValue(); + APInt SRLC = SRLI->getAPIntValue(); + if (ADDC.getMinSignedBits() <= 64 && + SRLC.ult(VT.getSizeInBits()) && + !TLI.isLegalAddImmediate(ADDC.getSExtValue())) { APInt Mask = APInt::getHighBitsSet(VT.getSizeInBits(), - SRLI->getZExtValue()); + SRLC.getZExtValue()); if (DAG.MaskedValueIsZero(N0.getOperand(1), Mask)) { ADDC |= Mask; if (TLI.isLegalAddImmediate(ADDC.getSExtValue())) { @@ -3987,6 +3993,12 @@ SDValue DAGCombiner::visitAND(SDNode *N) { // reassociate and if (SDValue RAND = ReassociateOps(ISD::AND, SDLoc(N), N0, N1)) return RAND; + + // Try to convert a constant mask AND into a shuffle clear mask. + if (VT.isVector()) + if (SDValue Shuffle = XformToShuffleWithZero(N)) + return Shuffle; + // fold (and (or x, C), D) -> D if (C & D) == D auto MatchSubset = [](ConstantSDNode *LHS, ConstantSDNode *RHS) { return RHS->getAPIntValue().isSubsetOf(LHS->getAPIntValue()); @@ -16480,6 +16492,8 @@ SDValue DAGCombiner::visitFP16_TO_FP(SDNode *N) { /// e.g. AND V, <0xffffffff, 0, 0xffffffff, 0>. ==> /// vector_shuffle V, Zero, <0, 4, 2, 4> SDValue DAGCombiner::XformToShuffleWithZero(SDNode *N) { + assert(N->getOpcode() == ISD::AND && "Unexpected opcode!"); + EVT VT = N->getValueType(0); SDValue LHS = N->getOperand(0); SDValue RHS = peekThroughBitcast(N->getOperand(1)); @@ -16490,9 +16504,6 @@ SDValue DAGCombiner::XformToShuffleWithZero(SDNode *N) if (LegalOperations) return SDValue(); - if (N->getOpcode() != ISD::AND) - return SDValue(); - if (RHS.getOpcode() != ISD::BUILD_VECTOR) return SDValue(); @@ -16580,10 +16591,6 @@ SDValue DAGCombiner::SimplifyVBinOp(SDNode *N) { if (SDValue Fold = DAG.FoldConstantVectorArithmetic( N->getOpcode(), SDLoc(LHS), LHS.getValueType(), Ops, N->getFlags())) return Fold; - - // Try to convert a constant mask AND into a shuffle clear mask. - if (SDValue Shuffle = XformToShuffleWithZero(N)) - return Shuffle; // Type legalization might introduce new shuffles in the DAG. // Fold (VBinOp (shuffle (A, Undef, Mask)), (shuffle (B, Undef, Mask))) Modified: projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -49,6 +49,8 @@ using namespace llvm; +#define DEBUG_TYPE "legalizevectorops" + namespace { class VectorLegalizer { @@ -226,7 +228,8 @@ SDValue VectorLegalizer::LegalizeOp(SDValue Op) { if (Op.getOpcode() == ISD::LOAD) { LoadSDNode *LD = cast(Op.getNode()); ISD::LoadExtType ExtType = LD->getExtensionType(); - if (LD->getMemoryVT().isVector() && ExtType != ISD::NON_EXTLOAD) + if (LD->getMemoryVT().isVector() && ExtType != ISD::NON_EXTLOAD) { + DEBUG(dbgs() << "\nLegalizing extending vector load: "; Node->dump(&DAG)); switch (TLI.getLoadExtAction(LD->getExtensionType(), LD->getValueType(0), LD->getMemoryVT())) { default: llvm_unreachable("This action is not supported yet!"); @@ -252,11 +255,14 @@ SDValue VectorLegalizer::LegalizeOp(SDValue Op) { Changed = true; return LegalizeOp(ExpandLoad(Op)); } + } } else if (Op.getOpcode() == ISD::STORE) { StoreSDNode *ST = cast(Op.getNode()); EVT StVT = ST->getMemoryVT(); MVT ValVT = ST->getValue().getSimpleValueType(); - if (StVT.isVector() && ST->isTruncatingStore()) + if (StVT.isVector() && ST->isTruncatingStore()) { + DEBUG(dbgs() << "\nLegalizing truncating vector store: "; + Node->dump(&DAG)); switch (TLI.getTruncStoreAction(ValVT, StVT)) { default: llvm_unreachable("This action is not supported yet!"); case TargetLowering::Legal: @@ -270,6 +276,7 @@ SDValue VectorLegalizer::LegalizeOp(SDValue Op) { Changed = true; return LegalizeOp(ExpandStore(Op)); } + } } else if (Op.getOpcode() == ISD::MSCATTER || Op.getOpcode() == ISD::MSTORE) HasVectorValue = true; @@ -376,6 +383,8 @@ SDValue VectorLegalizer::LegalizeOp(SDValue Op) { break; } + DEBUG(dbgs() << "\nLegalizing vector op: "; Node->dump(&DAG)); + switch (TLI.getOperationAction(Node->getOpcode(), QueryType)) { default: llvm_unreachable("This action is not supported yet!"); case TargetLowering::Promote: @@ -383,12 +392,16 @@ SDValue VectorLegalizer::LegalizeOp(SDValue Op) { Changed = true; break; case TargetLowering::Legal: + DEBUG(dbgs() << "Legal node: nothing to do\n"); break; case TargetLowering::Custom: { + DEBUG(dbgs() << "Trying custom legalization\n"); if (SDValue Tmp1 = TLI.LowerOperation(Op, DAG)) { + DEBUG(dbgs() << "Successfully custom legalized node\n"); Result = Tmp1; break; } + DEBUG(dbgs() << "Could not custom legalize node\n"); LLVM_FALLTHROUGH; } case TargetLowering::Expand: Modified: projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -5943,7 +5943,9 @@ SDValue SelectionDAG::getLoad(ISD::MemIndexedMode AM, CSEMap.InsertNode(N, IP); InsertNode(N); - return SDValue(N, 0); + SDValue V(N, 0); + NewSDValueDbgMsg(V, "Creating new node: ", this); + return V; } SDValue SelectionDAG::getLoad(EVT VT, const SDLoc &dl, SDValue Chain, @@ -6043,7 +6045,9 @@ SDValue SelectionDAG::getStore(SDValue Chain, const SD CSEMap.InsertNode(N, IP); InsertNode(N); - return SDValue(N, 0); + SDValue V(N, 0); + NewSDValueDbgMsg(V, "Creating new node: ", this); + return V; } SDValue SelectionDAG::getTruncStore(SDValue Chain, const SDLoc &dl, SDValue Val, @@ -6108,7 +6112,9 @@ SDValue SelectionDAG::getTruncStore(SDValue Chain, con CSEMap.InsertNode(N, IP); InsertNode(N); - return SDValue(N, 0); + SDValue V(N, 0); + NewSDValueDbgMsg(V, "Creating new node: ", this); + return V; } SDValue SelectionDAG::getIndexedStore(SDValue OrigStore, const SDLoc &dl, @@ -6134,7 +6140,9 @@ SDValue SelectionDAG::getIndexedStore(SDValue OrigStor CSEMap.InsertNode(N, IP); InsertNode(N); - return SDValue(N, 0); + SDValue V(N, 0); + NewSDValueDbgMsg(V, "Creating new node: ", this); + return V; } SDValue SelectionDAG::getMaskedLoad(EVT VT, const SDLoc &dl, SDValue Chain, @@ -6160,7 +6168,9 @@ SDValue SelectionDAG::getMaskedLoad(EVT VT, const SDLo CSEMap.InsertNode(N, IP); InsertNode(N); - return SDValue(N, 0); + SDValue V(N, 0); + NewSDValueDbgMsg(V, "Creating new node: ", this); + return V; } SDValue SelectionDAG::getMaskedStore(SDValue Chain, const SDLoc &dl, @@ -6189,7 +6199,9 @@ SDValue SelectionDAG::getMaskedStore(SDValue Chain, co CSEMap.InsertNode(N, IP); InsertNode(N); - return SDValue(N, 0); + SDValue V(N, 0); + NewSDValueDbgMsg(V, "Creating new node: ", this); + return V; } SDValue SelectionDAG::getMaskedGather(SDVTList VTs, EVT VT, const SDLoc &dl, @@ -6224,7 +6236,9 @@ SDValue SelectionDAG::getMaskedGather(SDVTList VTs, EV CSEMap.InsertNode(N, IP); InsertNode(N); - return SDValue(N, 0); + SDValue V(N, 0); + NewSDValueDbgMsg(V, "Creating new node: ", this); + return V; } SDValue SelectionDAG::getMaskedScatter(SDVTList VTs, EVT VT, const SDLoc &dl, @@ -6256,7 +6270,9 @@ SDValue SelectionDAG::getMaskedScatter(SDVTList VTs, E CSEMap.InsertNode(N, IP); InsertNode(N); - return SDValue(N, 0); + SDValue V(N, 0); + NewSDValueDbgMsg(V, "Creating new node: ", this); + return V; } SDValue SelectionDAG::getVAArg(EVT VT, const SDLoc &dl, SDValue Chain, @@ -7112,6 +7128,8 @@ void SelectionDAG::transferDbgValues(SDValue From, SDV void SelectionDAG::salvageDebugInfo(SDNode &N) { if (!N.getHasDebugValue()) return; + + SmallVector ClonedDVs; for (auto DV : GetDbgValues(&N)) { if (DV->isInvalidated()) continue; @@ -7135,13 +7153,16 @@ void SelectionDAG::salvageDebugInfo(SDNode &N) { SDDbgValue *Clone = getDbgValue(DV->getVariable(), DIExpr, N0.getNode(), N0.getResNo(), DV->isIndirect(), DV->getDebugLoc(), DV->getOrder()); + ClonedDVs.push_back(Clone); DV->setIsInvalidated(); - AddDbgValue(Clone, N0.getNode(), false); DEBUG(dbgs() << "SALVAGE: Rewriting"; N0.getNode()->dumprFull(this); dbgs() << " into " << *DIExpr << '\n'); } } } + + for (SDDbgValue *Dbg : ClonedDVs) + AddDbgValue(Dbg, Dbg->getSDNode(), false); } namespace { Modified: projects/clang600-import/contrib/llvm/lib/IR/SafepointIRVerifier.cpp ============================================================================== --- projects/clang600-import/contrib/llvm/lib/IR/SafepointIRVerifier.cpp Fri Dec 29 00:27:12 2017 (r327329) +++ projects/clang600-import/contrib/llvm/lib/IR/SafepointIRVerifier.cpp Fri Dec 29 00:56:15 2017 (r327330) @@ -237,6 +237,59 @@ class InstructionVerifier; /// Builds BasicBlockState for each BB of the function. /// It can traverse function for verification and provides all required /// information. +/// +/// GC pointer may be in one of three states: relocated, unrelocated and +/// poisoned. +/// Relocated pointer may be used without any restrictions. +/// Unrelocated pointer cannot be dereferenced, passed as argument to any call +/// or returned. Unrelocated pointer may be safely compared against another +/// unrelocated pointer or against a pointer exclusively derived from null. +/// Poisoned pointers are produced when we somehow derive pointer from relocated +/// and unrelocated pointers (e.g. phi, select). This pointers may be safely +/// used in a very limited number of situations. Currently the only way to use +/// it is comparison against constant exclusively derived from null. All +/// limitations arise due to their undefined state: this pointers should be +/// treated as relocated and unrelocated simultaneously. +/// Rules of deriving: +/// R + U = P - that's where the poisoned pointers come from +/// P + X = P +/// U + U = U +/// R + R = R +/// X + C = X +/// Where "+" - any operation that somehow derive pointer, U - unrelocated, +/// R - relocated and P - poisoned, C - constant, X - U or R or P or C or +/// nothing (in case when "+" is unary operation). +/// Deriving of pointers by itself is always safe. +/// NOTE: when we are making decision on the status of instruction's result: +/// a) for phi we need to check status of each input *at the end of +/// corresponding predecessor BB*. +/// b) for other instructions we need to check status of each input *at the +/// current point*. +/// +/// FIXME: This works fairly well except one case +/// bb1: +/// p = *some GC-ptr def* +/// p1 = gep p, offset +/// / | +/// / | +/// bb2: | +/// safepoint | +/// \ | +/// \ | +/// bb3: +/// p2 = phi [p, bb2] [p1, bb1] +/// p3 = phi [p, bb2] [p, bb1] +/// here p and p1 is unrelocated +/// p2 and p3 is poisoned (though they shouldn't be) +/// +/// This leads to some weird results: +/// cmp eq p, p2 - illegal instruction (false-positive) +/// cmp eq p1, p2 - illegal instruction (false-positive) +/// cmp eq p, p3 - illegal instruction (false-positive) +/// cmp eq p, p1 - ok +/// To fix this we need to introduce conception of generations and be able to +/// check if two values belong to one generation or not. This way p2 will be +/// considered to be unrelocated and no false alarm will happen. class GCPtrTracker { const Function &F; SpecificBumpPtrAllocator BSAllocator; @@ -244,6 +297,9 @@ class GCPtrTracker { // This set contains defs of unrelocated pointers that are proved to be legal // and don't need verification. DenseSet ValidUnrelocatedDefs; + // This set contains poisoned defs. They can be safely ignored during + // verification too. + DenseSet PoisonedDefs; public: GCPtrTracker(const Function &F, const DominatorTree &DT); @@ -251,6 +307,8 @@ class GCPtrTracker { BasicBlockState *getBasicBlockState(const BasicBlock *BB); const BasicBlockState *getBasicBlockState(const BasicBlock *BB) const; + bool isValuePoisoned(const Value *V) const { return PoisonedDefs.count(V); } + /// Traverse each BB of the function and call /// InstructionVerifier::verifyInstruction for each possibly invalid /// instruction. @@ -349,7 +407,9 @@ const BasicBlockState *GCPtrTracker::getBasicBlockStat } bool GCPtrTracker::instructionMayBeSkipped(const Instruction *I) const { - return ValidUnrelocatedDefs.count(I); + // Poisoned defs are skipped since they are always safe by itself by + // definition (for details see comment to this class). + return ValidUnrelocatedDefs.count(I) || PoisonedDefs.count(I); } void GCPtrTracker::verifyFunction(GCPtrTracker &&Tracker, @@ -418,31 +478,78 @@ bool GCPtrTracker::removeValidUnrelocatedDefs(const Ba "Passed Contribution should be from the passed BasicBlockState!"); AvailableValueSet AvailableSet = BBS->AvailableIn; bool ContributionChanged = false; + // For explanation why instructions are processed this way see + // "Rules of deriving" in the comment to this class. for (const Instruction &I : *BB) { - bool ProducesUnrelocatedPointer = false; - if ((isa(I) || isa(I)) && - containsGCPtrType(I.getType())) { - // GEP/bitcast of unrelocated pointer is legal by itself but this - // def shouldn't appear in any AvailableSet. + bool ValidUnrelocatedPointerDef = false; + bool PoisonedPointerDef = false; + // TODO: `select` instructions should be handled here too. + if (const PHINode *PN = dyn_cast(&I)) { + if (containsGCPtrType(PN->getType())) { + // If both is true, output is poisoned. + bool HasRelocatedInputs = false; + bool HasUnrelocatedInputs = false; + for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i) { + const BasicBlock *InBB = PN->getIncomingBlock(i); + const Value *InValue = PN->getIncomingValue(i); + + if (isNotExclusivelyConstantDerived(InValue)) { + if (isValuePoisoned(InValue)) { + // If any of inputs is poisoned, output is always poisoned too. + HasRelocatedInputs = true; + HasUnrelocatedInputs = true; + break; + } + if (BlockMap[InBB]->AvailableOut.count(InValue)) + HasRelocatedInputs = true; + else + HasUnrelocatedInputs = true; + } + } + if (HasUnrelocatedInputs) { + if (HasRelocatedInputs) + PoisonedPointerDef = true; + else + ValidUnrelocatedPointerDef = true; + } + } + } else if ((isa(I) || isa(I)) && + containsGCPtrType(I.getType())) { + // GEP/bitcast of unrelocated pointer is legal by itself but this def + // shouldn't appear in any AvailableSet. for (const Value *V : I.operands()) if (containsGCPtrType(V->getType()) && isNotExclusivelyConstantDerived(V) && !AvailableSet.count(V)) { - ProducesUnrelocatedPointer = true; + if (isValuePoisoned(V)) + PoisonedPointerDef = true; + else + ValidUnrelocatedPointerDef = true; break; } } - if (!ProducesUnrelocatedPointer) { - bool Cleared = false; - transferInstruction(I, Cleared, AvailableSet); - (void)Cleared; - } else { - // Remove def of unrelocated pointer from Contribution of this BB - // and trigger update of all its successors. + assert(!(ValidUnrelocatedPointerDef && PoisonedPointerDef) && + "Value cannot be both unrelocated and poisoned!"); + if (ValidUnrelocatedPointerDef) { + // Remove def of unrelocated pointer from Contribution of this BB and + // trigger update of all its successors. Contribution.erase(&I); + PoisonedDefs.erase(&I); ValidUnrelocatedDefs.insert(&I); - DEBUG(dbgs() << "Removing " << I << " from Contribution of " + DEBUG(dbgs() << "Removing urelocated " << I << " from Contribution of " << BB->getName() << "\n"); ContributionChanged = true; + } else if (PoisonedPointerDef) { + // Mark pointer as poisoned, remove its def from Contribution and trigger + // update of all successors. + Contribution.erase(&I); + PoisonedDefs.insert(&I); + DEBUG(dbgs() << "Removing poisoned " << I << " from Contribution of " + << BB->getName() << "\n"); + ContributionChanged = true; + } else { + bool Cleared = false; + transferInstruction(I, Cleared, AvailableSet); + (void)Cleared; } } return ContributionChanged; @@ -524,8 +631,8 @@ void InstructionVerifier::verifyInstruction( // Returns true if LHS and RHS are unrelocated pointers and they are // valid unrelocated uses. - auto hasValidUnrelocatedUse = [&AvailableSet, baseTyLHS, baseTyRHS, &LHS, - &RHS] () { + auto hasValidUnrelocatedUse = [&AvailableSet, Tracker, baseTyLHS, baseTyRHS, + &LHS, &RHS] () { // A cmp instruction has valid unrelocated pointer operands only if // both operands are unrelocated pointers. // In the comparison between two pointers, if one is an unrelocated @@ -545,12 +652,23 @@ void InstructionVerifier::verifyInstruction( (baseTyLHS == BaseType::NonConstant && baseTyRHS == BaseType::ExclusivelySomeConstant)) return false; + + // If one of pointers is poisoned and other is not exclusively derived + // from null it is an invalid expression: it produces poisoned result + // and unless we want to track all defs (not only gc pointers) the only + // option is to prohibit such instructions. + if ((Tracker->isValuePoisoned(LHS) && baseTyRHS != ExclusivelyNull) || + (Tracker->isValuePoisoned(RHS) && baseTyLHS != ExclusivelyNull)) + return false; + // All other cases are valid cases enumerated below: - // 1. Comparison between an exlusively derived null pointer and a + // 1. Comparison between an exclusively derived null pointer and a // constant base pointer. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Fri Dec 29 12:47:25 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id F3CA3E8797F for ; Fri, 29 Dec 2017 12:47:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BE2DF68A4A; Fri, 29 Dec 2017 12:47:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBTClNRG009975; Fri, 29 Dec 2017 12:47:23 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBTClNxM009974; Fri, 29 Dec 2017 12:47:23 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712291247.vBTClNxM009974@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 29 Dec 2017 12:47:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327338 - projects/clang600-import/sys/contrib/dev/acpica/include X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang600-import/sys/contrib/dev/acpica/include X-SVN-Commit-Revision: 327338 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Dec 2017 12:47:25 -0000 Author: dim Date: Fri Dec 29 12:47:23 2017 New Revision: 327338 URL: https://svnweb.freebsd.org/changeset/base/327338 Log: Work around clang 6.0.0 warnings about arithmetic on NULL pointers in acpica, by redefining the ACPI_ADD_PTR and ACPI_SUB_PTR macros so they use integer arithmetic instead. This is a temporary fix, to be reverted before merging back to head, unless jkim reads my mail and agrees with this. :) Modified: projects/clang600-import/sys/contrib/dev/acpica/include/actypes.h Modified: projects/clang600-import/sys/contrib/dev/acpica/include/actypes.h ============================================================================== --- projects/clang600-import/sys/contrib/dev/acpica/include/actypes.h Fri Dec 29 10:47:24 2017 (r327337) +++ projects/clang600-import/sys/contrib/dev/acpica/include/actypes.h Fri Dec 29 12:47:23 2017 (r327338) @@ -651,8 +651,8 @@ typedef UINT64 ACPI_INTEGER; #define ACPI_CAST_PTR(t, p) ((t *) (ACPI_UINTPTR_T) (p)) #define ACPI_CAST_INDIRECT_PTR(t, p) ((t **) (ACPI_UINTPTR_T) (p)) -#define ACPI_ADD_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (UINT8, (a)) + (ACPI_SIZE)(b))) -#define ACPI_SUB_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (UINT8, (a)) - (ACPI_SIZE)(b))) +#define ACPI_ADD_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_UINTPTR_T) (a) + (ACPI_SIZE)(b)) +#define ACPI_SUB_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_UINTPTR_T) (a) - (ACPI_SIZE)(b)) #define ACPI_PTR_DIFF(a, b) (ACPI_SIZE) (ACPI_CAST_PTR (UINT8, (a)) - ACPI_CAST_PTR (UINT8, (b))) /* Pointer/Integer type conversions */ From owner-svn-src-projects@freebsd.org Fri Dec 29 12:49:26 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D829E87AFD for ; Fri, 29 Dec 2017 12:49:26 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 07E7468C9D; Fri, 29 Dec 2017 12:49:25 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBTCnOML010154; Fri, 29 Dec 2017 12:49:24 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBTCnOfc010153; Fri, 29 Dec 2017 12:49:24 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712291249.vBTCnOfc010153@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 29 Dec 2017 12:49:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327340 - projects/clang600-import/sys/crypto/via X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: projects/clang600-import/sys/crypto/via X-SVN-Commit-Revision: 327340 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Dec 2017 12:49:26 -0000 Author: dim Date: Fri Dec 29 12:49:24 2017 New Revision: 327340 URL: https://svnweb.freebsd.org/changeset/base/327340 Log: Work around a clang 6.0.0 issue with rep prefixes followed by .byte directives (as reported in https://bugs.llvm.org/show_bug.cgi?id=35749), by defining the rep prefix with yet another .byte directive. This is a temporary fix, to be reverted before merging back to head, until upstream has a proper fix for this. Modified: projects/clang600-import/sys/crypto/via/padlock_cipher.c Modified: projects/clang600-import/sys/crypto/via/padlock_cipher.c ============================================================================== --- projects/clang600-import/sys/crypto/via/padlock_cipher.c Fri Dec 29 12:48:19 2017 (r327339) +++ projects/clang600-import/sys/crypto/via/padlock_cipher.c Fri Dec 29 12:49:24 2017 (r327340) @@ -88,7 +88,7 @@ padlock_cbc(void *in, void *out, size_t count, void *k __asm __volatile( "pushf \n\t" "popf \n\t" - "rep \n\t" + ".byte 0xf3 \n\t" ".byte 0x0f, 0xa7, 0xd0" : "+a" (iv), "+c" (count), "+D" (out), "+S" (in) : "b" (key), "d" (cw) From owner-svn-src-projects@freebsd.org Fri Dec 29 12:51:31 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0D045E87C34 for ; Fri, 29 Dec 2017 12:51:31 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 779F268F7C; Fri, 29 Dec 2017 12:51:30 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBTCpTKU011114; Fri, 29 Dec 2017 12:51:29 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBTCpQsa011082; Fri, 29 Dec 2017 12:51:26 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201712291251.vBTCpQsa011082@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 29 Dec 2017 12:51:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327341 - in projects/clang600-import: . bin/pax bin/sh bin/sh/tests/builtins contrib/elftoolchain/readelf etc etc/devd etc/mail lib/libc/include lib/libc/locale lib/libc/mips lib/libc/... X-SVN-Group: projects X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in projects/clang600-import: . bin/pax bin/sh bin/sh/tests/builtins contrib/elftoolchain/readelf etc etc/devd etc/mail lib/libc/include lib/libc/locale lib/libc/mips lib/libc/sparc64/fpu lib/libc/stdi... X-SVN-Commit-Revision: 327341 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Dec 2017 12:51:31 -0000 Author: dim Date: Fri Dec 29 12:51:26 2017 New Revision: 327341 URL: https://svnweb.freebsd.org/changeset/base/327341 Log: Merge ^/head r327169 through r327340. Added: projects/clang600-import/.gitattributes - copied unchanged from r327340, head/.gitattributes projects/clang600-import/.gitignore - copied unchanged from r327340, head/.gitignore projects/clang600-import/share/man/man4/aw_gpio.4 - copied unchanged from r327340, head/share/man/man4/aw_gpio.4 projects/clang600-import/share/man/man4/aw_mmc.4 - copied unchanged from r327340, head/share/man/man4/aw_mmc.4 projects/clang600-import/share/man/man4/aw_rtc.4 - copied unchanged from r327340, head/share/man/man4/aw_rtc.4 projects/clang600-import/sys/arm/allwinner/aw_gpio.c - copied unchanged from r327340, head/sys/arm/allwinner/aw_gpio.c projects/clang600-import/sys/arm/allwinner/aw_mmc.c - copied unchanged from r327340, head/sys/arm/allwinner/aw_mmc.c projects/clang600-import/sys/arm/allwinner/aw_mmc.h - copied unchanged from r327340, head/sys/arm/allwinner/aw_mmc.h projects/clang600-import/sys/sys/_stdarg.h - copied unchanged from r327340, head/sys/sys/_stdarg.h projects/clang600-import/usr.sbin/devmatch/ - copied from r327340, head/usr.sbin/devmatch/ Deleted: projects/clang600-import/sys/arm/allwinner/a10_gpio.c projects/clang600-import/sys/arm/allwinner/a10_mmc.c projects/clang600-import/sys/arm/allwinner/a10_mmc.h projects/clang600-import/sys/arm/allwinner/aw_console.c projects/clang600-import/sys/powerpc/ofw/ofwmagic.S Modified: projects/clang600-import/UPDATING projects/clang600-import/bin/pax/buf_subs.c projects/clang600-import/bin/sh/eval.c projects/clang600-import/bin/sh/jobs.c projects/clang600-import/bin/sh/tests/builtins/var-assign.0 projects/clang600-import/contrib/elftoolchain/readelf/readelf.c projects/clang600-import/etc/devd/hyperv.conf projects/clang600-import/etc/mail/mailer.conf projects/clang600-import/etc/portsnap.conf projects/clang600-import/etc/rc.initdiskless projects/clang600-import/etc/rc.subr projects/clang600-import/lib/libc/include/reentrant.h projects/clang600-import/lib/libc/locale/euc.c projects/clang600-import/lib/libc/mips/SYS.h projects/clang600-import/lib/libc/sparc64/fpu/fpu_reg.h projects/clang600-import/lib/libc/stdio/fflush.3 projects/clang600-import/lib/libc/sys/kqueue.2 projects/clang600-import/lib/libc/sys/sendfile.2 projects/clang600-import/lib/libcam/camlib.h projects/clang600-import/lib/libedit/map.c projects/clang600-import/lib/libedit/refresh.c projects/clang600-import/lib/libefivar/uefi-dputil.c projects/clang600-import/lib/libopenbsd/imsg_init.3 projects/clang600-import/lib/libufs/type.c projects/clang600-import/lib/libutil/humanize_number.3 projects/clang600-import/lib/libutil/humanize_number.c projects/clang600-import/lib/libutil/pty.c projects/clang600-import/lib/libutil/tests/humanize_number_test.c projects/clang600-import/lib/msun/src/catrig.c projects/clang600-import/libexec/dma/dmagent/mailer.conf projects/clang600-import/libexec/rpc.sprayd/rpc.sprayd.8 projects/clang600-import/libexec/rpc.sprayd/sprayd.c projects/clang600-import/sbin/ccdconfig/ccdconfig.8 projects/clang600-import/sbin/ccdconfig/ccdconfig.c projects/clang600-import/sbin/ccdconfig/pathnames.h projects/clang600-import/sbin/devfs/rule.c projects/clang600-import/sbin/dump/dump.h projects/clang600-import/sbin/dump/main.c projects/clang600-import/sbin/dump/tape.c projects/clang600-import/sbin/dump/traverse.c projects/clang600-import/sbin/fsdb/fsdb.c projects/clang600-import/sbin/ipfw/ipfw.8 projects/clang600-import/sbin/newfs_msdos/mkfs_msdos.c projects/clang600-import/sbin/pfctl/pfctl.c projects/clang600-import/sbin/routed/main.c projects/clang600-import/share/man/man4/Makefile projects/clang600-import/share/man/man4/ip.4 projects/clang600-import/share/man/man4/lm75.4 projects/clang600-import/share/man/man4/md.4 projects/clang600-import/share/man/man4/nand.4 projects/clang600-import/share/man/man5/mailer.conf.5 projects/clang600-import/share/man/man5/rc.conf.5 projects/clang600-import/share/man/man9/iflibdd.9 projects/clang600-import/share/man/man9/iflibtxrx.9 projects/clang600-import/share/man/man9/uio.9 projects/clang600-import/share/misc/bsd-family-tree projects/clang600-import/share/misc/pci_vendors projects/clang600-import/stand/fdt/fdt_loader_cmd.c projects/clang600-import/stand/fdt/fdt_overlay.c projects/clang600-import/sys/amd64/amd64/support.S projects/clang600-import/sys/arm/allwinner/a10/a10_intc.c projects/clang600-import/sys/arm/allwinner/allwinner_pinctrl.h projects/clang600-import/sys/arm/allwinner/aw_mp.c projects/clang600-import/sys/arm/allwinner/aw_mp.h projects/clang600-import/sys/arm/allwinner/aw_wdog.c projects/clang600-import/sys/arm/allwinner/axp81x.c projects/clang600-import/sys/arm/allwinner/clk/aw_pll.c projects/clang600-import/sys/arm/allwinner/files.allwinner projects/clang600-import/sys/arm/allwinner/if_awg.c projects/clang600-import/sys/arm/arm/genassym.c projects/clang600-import/sys/arm/arm/gic.c projects/clang600-import/sys/arm/arm/locore-v6.S projects/clang600-import/sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c projects/clang600-import/sys/arm/broadcom/bcm2835/bcm2835_gpio.c projects/clang600-import/sys/arm/broadcom/bcm2835/bcm2835_mbox.c projects/clang600-import/sys/arm/freescale/imx/files.imx6 projects/clang600-import/sys/arm/include/stdarg.h projects/clang600-import/sys/arm/xscale/ixp425/ixdp425_pci.c projects/clang600-import/sys/arm/xscale/ixp425/ixdp425reg.h projects/clang600-import/sys/arm/xscale/ixp425/ixp425.c projects/clang600-import/sys/arm/xscale/ixp425/ixp425_npe.c projects/clang600-import/sys/arm/xscale/ixp425/ixp425_npereg.h projects/clang600-import/sys/arm/xscale/ixp425/ixp425_pci.c projects/clang600-import/sys/arm/xscale/ixp425/ixp425_pci_space.c projects/clang600-import/sys/arm/xscale/ixp425/ixp425_space.c projects/clang600-import/sys/arm/xscale/ixp425/ixp425_timer.c projects/clang600-import/sys/arm/xscale/ixp425/ixp425reg.h projects/clang600-import/sys/arm/xscale/ixp425/ixp425var.h projects/clang600-import/sys/arm64/arm64/gic_v3.c projects/clang600-import/sys/arm64/arm64/gicv3_its.c projects/clang600-import/sys/arm64/arm64/machdep.c projects/clang600-import/sys/arm64/arm64/pmap.c projects/clang600-import/sys/arm64/include/stdarg.h projects/clang600-import/sys/cam/ata/ata_da.c projects/clang600-import/sys/cam/ctl/ctl.c projects/clang600-import/sys/cam/scsi/scsi_da.c projects/clang600-import/sys/cam/scsi/scsi_pass.c projects/clang600-import/sys/conf/files projects/clang600-import/sys/conf/files.arm64 projects/clang600-import/sys/conf/files.i386 projects/clang600-import/sys/conf/files.powerpc projects/clang600-import/sys/conf/options.arm projects/clang600-import/sys/dev/al_eth/al_eth.c projects/clang600-import/sys/dev/ath/if_ath.c projects/clang600-import/sys/dev/axgbe/xgbe-drv.c projects/clang600-import/sys/dev/axgbe/xgbe-mdio.c projects/clang600-import/sys/dev/bhnd/nvram/bhnd_nvram_store_subr.c projects/clang600-import/sys/dev/cadence/if_cgem.c projects/clang600-import/sys/dev/cesa/cesa.h projects/clang600-import/sys/dev/cxgbe/iw_cxgbe/cm.c projects/clang600-import/sys/dev/cxgbe/t4_sge.c projects/clang600-import/sys/dev/de/if_de.c projects/clang600-import/sys/dev/drm/mga_state.c projects/clang600-import/sys/dev/e1000/e1000_82543.c projects/clang600-import/sys/dev/e1000/e1000_api.c projects/clang600-import/sys/dev/e1000/e1000_hw.h projects/clang600-import/sys/dev/e1000/e1000_ich8lan.c projects/clang600-import/sys/dev/e1000/e1000_ich8lan.h projects/clang600-import/sys/dev/e1000/if_em.c projects/clang600-import/sys/dev/e1000/igb_txrx.c projects/clang600-import/sys/dev/extres/clk/clk_bus.c projects/clang600-import/sys/dev/extres/regulator/regulator_bus.c projects/clang600-import/sys/dev/extres/syscon/syscon.c projects/clang600-import/sys/dev/fdt/fdt_common.c projects/clang600-import/sys/dev/iicbus/twsi/a10_twsi.c projects/clang600-import/sys/dev/isci/scil/scic_sds_remote_node_context.c projects/clang600-import/sys/dev/isci/scil/scif_sas_controller.c projects/clang600-import/sys/dev/iwm/if_iwmreg.h projects/clang600-import/sys/dev/mii/rdcphy.c projects/clang600-import/sys/dev/mmc/host/dwmmc.c projects/clang600-import/sys/dev/mmc/mmc.c projects/clang600-import/sys/dev/mmc/mmcsd.c projects/clang600-import/sys/dev/mvs/mvs_pci.c projects/clang600-import/sys/dev/mwl/if_mwl.c projects/clang600-import/sys/dev/ofw/ofw_bus_subr.c projects/clang600-import/sys/dev/ofw/ofwpci.c projects/clang600-import/sys/dev/pccard/pccardvar.h projects/clang600-import/sys/dev/pci/pci.c projects/clang600-import/sys/dev/pci/pci_pci.c projects/clang600-import/sys/dev/sdhci/sdhci.c projects/clang600-import/sys/dev/sdhci/sdhci_pci.c projects/clang600-import/sys/dev/sfxge/common/siena_nvram.c projects/clang600-import/sys/dev/sio/sio.c projects/clang600-import/sys/dev/smc/if_smc_fdt.c projects/clang600-import/sys/dev/sound/isa/mss.h projects/clang600-import/sys/dev/spibus/ofw_spibus.c projects/clang600-import/sys/dev/syscons/scvgarndr.c projects/clang600-import/sys/dev/txp/if_txp.c projects/clang600-import/sys/dev/txp/if_txpreg.h projects/clang600-import/sys/dev/uart/uart_bus_acpi.c projects/clang600-import/sys/dev/uart/uart_dev_pl011.c projects/clang600-import/sys/dev/uart/uart_dev_snps.c projects/clang600-import/sys/dev/usb/controller/dwc_otg_fdt.c projects/clang600-import/sys/dev/usb/controller/ehci.c projects/clang600-import/sys/dev/usb/controller/ohci.c projects/clang600-import/sys/dev/usb/controller/xhci.c projects/clang600-import/sys/dev/usb/storage/umass.c projects/clang600-import/sys/dev/usb/usb_dev.c projects/clang600-import/sys/dev/vnic/nic_main.c projects/clang600-import/sys/dev/vnic/nicvf_main.c projects/clang600-import/sys/dev/vnic/nicvf_queues.c projects/clang600-import/sys/fs/cd9660/cd9660_vfsops.c projects/clang600-import/sys/fs/nfs/nfs_commonkrpc.c projects/clang600-import/sys/fs/nfs/nfs_commonsubs.c projects/clang600-import/sys/fs/nfsclient/nfs_clrpcops.c projects/clang600-import/sys/fs/nfsclient/nfs_clstate.c projects/clang600-import/sys/fs/nfsserver/nfs_nfsdport.c projects/clang600-import/sys/fs/nfsserver/nfs_nfsdstate.c projects/clang600-import/sys/fs/procfs/procfs_map.c projects/clang600-import/sys/geom/geom_subr.c projects/clang600-import/sys/geom/raid/g_raid.c projects/clang600-import/sys/geom/raid/md_ddf.c projects/clang600-import/sys/geom/raid/md_promise.c projects/clang600-import/sys/geom/raid/tr_raid5.c projects/clang600-import/sys/i386/conf/GENERIC projects/clang600-import/sys/i386/conf/NOTES projects/clang600-import/sys/i386/i386/support.s projects/clang600-import/sys/i386/isa/elink.c projects/clang600-import/sys/i386/isa/elink.h projects/clang600-import/sys/kern/kern_proc.c projects/clang600-import/sys/kern/kern_synch.c projects/clang600-import/sys/kern/link_elf.c projects/clang600-import/sys/kern/subr_msgbuf.c projects/clang600-import/sys/kern/subr_sleepqueue.c projects/clang600-import/sys/kern/subr_witness.c projects/clang600-import/sys/kern/vfs_aio.c projects/clang600-import/sys/kern/vfs_subr.c projects/clang600-import/sys/libkern/strstr.c projects/clang600-import/sys/mips/conf/BERI_SOCKIT projects/clang600-import/sys/mips/conf/TP-WN1043ND projects/clang600-import/sys/net/altq/altq_hfsc.h projects/clang600-import/sys/net/bpf.c projects/clang600-import/sys/net/if_ethersubr.c projects/clang600-import/sys/net/if_gif.c projects/clang600-import/sys/net/iflib.c projects/clang600-import/sys/net80211/ieee80211_ht.c projects/clang600-import/sys/net80211/ieee80211_scan_sta.c projects/clang600-import/sys/netinet/icmp6.h projects/clang600-import/sys/netinet/libalias/alias_sctp.c projects/clang600-import/sys/netinet/sctp_crc32.c projects/clang600-import/sys/netinet/sctp_crc32.h projects/clang600-import/sys/netinet/tcp_output.c projects/clang600-import/sys/netinet6/in6_mcast.c projects/clang600-import/sys/netinet6/in6_src.c projects/clang600-import/sys/netinet6/ip6_id.c projects/clang600-import/sys/netinet6/mld6.c projects/clang600-import/sys/netinet6/nd6.c projects/clang600-import/sys/netinet6/nd6.h projects/clang600-import/sys/netinet6/nd6_nbr.c projects/clang600-import/sys/netinet6/raw_ip6.c projects/clang600-import/sys/netinet6/udp6_usrreq.c projects/clang600-import/sys/netipsec/key.c projects/clang600-import/sys/netipsec/xform_ah.c projects/clang600-import/sys/netipsec/xform_esp.c projects/clang600-import/sys/netipsec/xform_ipcomp.c projects/clang600-import/sys/nfs/nfs_fha.c projects/clang600-import/sys/nlm/nlm_prot_impl.c projects/clang600-import/sys/opencrypto/crypto.c projects/clang600-import/sys/opencrypto/cryptosoft.c projects/clang600-import/sys/powerpc/booke/locore.S projects/clang600-import/sys/rpc/clnt_dg.c projects/clang600-import/sys/security/mac/mac_syscalls.c projects/clang600-import/sys/sparc64/include/idprom.h projects/clang600-import/sys/sparc64/pci/sbbc.c projects/clang600-import/sys/sys/chio.h projects/clang600-import/sys/sys/proc.h projects/clang600-import/sys/ufs/ffs/ffs_alloc.c projects/clang600-import/sys/ufs/ffs/ffs_balloc.c projects/clang600-import/sys/ufs/ffs/ffs_softdep.c projects/clang600-import/sys/ufs/ffs/ffs_vnops.c projects/clang600-import/sys/ufs/ufs/dinode.h projects/clang600-import/sys/vm/vm_map.c projects/clang600-import/sys/vm/vm_object.c projects/clang600-import/sys/vm/vm_pageout.c projects/clang600-import/sys/vm/vm_swapout.c projects/clang600-import/sys/x86/include/stdarg.h projects/clang600-import/sys/x86/x86/io_apic.c projects/clang600-import/tests/sys/fifo/fifo_io.c projects/clang600-import/tests/sys/kern/ptrace_test.c projects/clang600-import/tools/regression/bpf/bpf_filter/bpf_test.c projects/clang600-import/usr.bin/column/column.c projects/clang600-import/usr.bin/localedef/ctype.c projects/clang600-import/usr.bin/mail/cmd3.c projects/clang600-import/usr.bin/mail/collect.c projects/clang600-import/usr.bin/mail/names.c projects/clang600-import/usr.bin/msgs/msgs.c projects/clang600-import/usr.bin/rpcgen/rpc_main.c projects/clang600-import/usr.bin/rpcgen/rpc_parse.c projects/clang600-import/usr.bin/rpcgen/rpc_scan.c projects/clang600-import/usr.bin/showmount/showmount.c projects/clang600-import/usr.bin/tcopy/tcopy.c projects/clang600-import/usr.bin/wall/wall.c projects/clang600-import/usr.bin/xargs/strnsubst.c projects/clang600-import/usr.sbin/Makefile projects/clang600-import/usr.sbin/binmiscctl/binmiscctl.c projects/clang600-import/usr.sbin/bsdinstall/partedit/gpart_ops.c projects/clang600-import/usr.sbin/btxld/btxld.c projects/clang600-import/usr.sbin/cpucontrol/intel.c projects/clang600-import/usr.sbin/cpucontrol/via.c projects/clang600-import/usr.sbin/ctld/login.c projects/clang600-import/usr.sbin/fwcontrol/fwdv.c projects/clang600-import/usr.sbin/kgmon/kgmon.c projects/clang600-import/usr.sbin/makefs/cd9660.c projects/clang600-import/usr.sbin/nandtool/nand_read.c projects/clang600-import/usr.sbin/nandtool/nand_readoob.c projects/clang600-import/usr.sbin/ndiscvt/ndiscvt.c projects/clang600-import/usr.sbin/nfsd/nfsd.c projects/clang600-import/usr.sbin/ntp/doc/ntp.conf.5 projects/clang600-import/usr.sbin/rpc.lockd/lockd_lock.c Directory Properties: projects/clang600-import/ (props changed) projects/clang600-import/contrib/elftoolchain/ (props changed) projects/clang600-import/lib/libedit/ (props changed) Copied: projects/clang600-import/.gitattributes (from r327340, head/.gitattributes) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang600-import/.gitattributes Fri Dec 29 12:51:26 2017 (r327341, copy of r327340, head/.gitattributes) @@ -0,0 +1,5 @@ +*.c diff=cpp +*.h diff=cpp +*.cpp diff=cpp +*.hpp diff=cpp +*.py diff=python Copied: projects/clang600-import/.gitignore (from r327340, head/.gitignore) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/clang600-import/.gitignore Fri Dec 29 12:51:26 2017 (r327341, copy of r327340, head/.gitignore) @@ -0,0 +1,18 @@ +_.tinderbox.* +_.amd64.* +_.arm.* +_.arm64.* +_.i386.* +_.ia64.* +_.mips.* +_.pc98.* +_.powerpc.* +_.riscv.* +_.sparc64.* +_.sun4v.* +GPATH +GRTAGS +GTAGS +ID +cscope.out +?cscope.out Modified: projects/clang600-import/UPDATING ============================================================================== --- projects/clang600-import/UPDATING Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/UPDATING Fri Dec 29 12:51:26 2017 (r327341) @@ -821,7 +821,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW: 20150623: An additional fix for the issue described in the 20150614 sendmail - entry below has been been committed in revision 284717. + entry below has been committed in revision 284717. 20150616: FreeBSD's old make (fmake) has been removed from the system. It is @@ -829,7 +829,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW: 20150615: The fix for the issue described in the 20150614 sendmail entry - below has been been committed in revision 284436. The work + below has been committed in revision 284436. The work around described in that entry is no longer needed unless the default setting is overridden by a confDH_PARAMETERS configuration setting of '5' or pointing to a 512 bit DH parameter file. Modified: projects/clang600-import/bin/pax/buf_subs.c ============================================================================== --- projects/clang600-import/bin/pax/buf_subs.c Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/bin/pax/buf_subs.c Fri Dec 29 12:51:26 2017 (r327341) @@ -485,7 +485,7 @@ wr_rdbuf(char *out, int outcnt) int cnt; /* - * while there is data to copy copy into the write buffer. when the + * while there is data to copy into the write buffer. when the * write buffer fills, flush it to the archive and continue */ while (outcnt > 0) { Modified: projects/clang600-import/bin/sh/eval.c ============================================================================== --- projects/clang600-import/bin/sh/eval.c Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/bin/sh/eval.c Fri Dec 29 12:51:26 2017 (r327341) @@ -43,7 +43,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include /* For WIFSIGNALED(status) */ #include /* @@ -840,7 +839,7 @@ evalcommand(union node *cmd, int flags, struct backcmd struct parsefile *savetopfile; volatile int e; char *lastarg; - int realstatus; + int signaled; int do_clearcmdentry; const char *path = pathval(); int i; @@ -1163,9 +1162,9 @@ cmddone: parent: /* parent process gets here (if we forked) */ if (mode == FORK_FG) { /* argument to fork */ INTOFF; - exitstatus = waitforjob(jp, &realstatus); + exitstatus = waitforjob(jp, &signaled); INTON; - if (iflag && loopnest > 0 && WIFSIGNALED(realstatus)) { + if (iflag && loopnest > 0 && signaled) { evalskip = SKIPBREAK; skipcount = loopnest; } Modified: projects/clang600-import/bin/sh/jobs.c ============================================================================== --- projects/clang600-import/bin/sh/jobs.c Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/bin/sh/jobs.c Fri Dec 29 12:51:26 2017 (r327341) @@ -1016,7 +1016,7 @@ vforkexecshell(struct job *jp, char **argv, char **env */ int -waitforjob(struct job *jp, int *origstatus) +waitforjob(struct job *jp, int *signaled) { #if JOBS int propagate_int = jp->jobctl && jp->foreground; @@ -1039,8 +1039,8 @@ waitforjob(struct job *jp, int *origstatus) setcurjob(jp); #endif status = jp->ps[jp->nprocs - 1].status; - if (origstatus != NULL) - *origstatus = status; + if (signaled != NULL) + *signaled = WIFSIGNALED(status); /* convert to 8 bits */ if (WIFEXITED(status)) st = WEXITSTATUS(status); Modified: projects/clang600-import/bin/sh/tests/builtins/var-assign.0 ============================================================================== --- projects/clang600-import/bin/sh/tests/builtins/var-assign.0 Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/bin/sh/tests/builtins/var-assign.0 Fri Dec 29 12:51:26 2017 (r327341) @@ -47,7 +47,7 @@ do ${SH} -c "VAR=1; VAR=0 ${cmd}; exit \${VAR}" >/dev/null 2>&1 done -# For other built-ins and utilites they do not. +# For other built-ins and utilities they do not. set -- ${UTILS} for cmd in "$@" do Modified: projects/clang600-import/contrib/elftoolchain/readelf/readelf.c ============================================================================== --- projects/clang600-import/contrib/elftoolchain/readelf/readelf.c Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/contrib/elftoolchain/readelf/readelf.c Fri Dec 29 12:51:26 2017 (r327341) @@ -2753,6 +2753,7 @@ dump_dyn_val(struct readelf *re, GElf_Dyn *dyn, uint32 case DT_SYMENT: case DT_RELSZ: case DT_RELENT: + case DT_PREINIT_ARRAYSZ: case DT_INIT_ARRAYSZ: case DT_FINI_ARRAYSZ: case DT_GNU_CONFLICTSZ: Modified: projects/clang600-import/etc/devd/hyperv.conf ============================================================================== --- projects/clang600-import/etc/devd/hyperv.conf Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/etc/devd/hyperv.conf Fri Dec 29 12:51:26 2017 (r327341) @@ -39,39 +39,39 @@ notify 11 { # # How network VF works with hn(4) on Hyper-V in non-transparent mode: # -# - Each network VF has a cooresponding hn(4). -# - The network VF and the it's cooresponding hn(4) have the same hardware +# - Each network VF has a corresponding hn(4). +# - The network VF and the it's corresponding hn(4) have the same hardware # address. # - Once the network VF is up, e.g. ifconfig VF up: # o All of the transmission should go through the network VF. # o Most of the reception goes through the network VF. -# o Small amount of reception may go through the cooresponding hn(4). -# This reception will happen, even if the the cooresponding hn(4) is -# down. The cooresponding hn(4) will change the reception interface +# o Small amount of reception may go through the corresponding hn(4). +# This reception will happen, even if the corresponding hn(4) is +# down. The corresponding hn(4) will change the reception interface # to the network VF, so that network layer and application layer will # be tricked into thinking that these packets were received by the # network VF. -# o The cooresponding hn(4) pretends the physical link is down. +# o The corresponding hn(4) pretends the physical link is down. # - Once the network VF is down or detached: -# o All of the transmission should go through the cooresponding hn(4). -# o All of the reception goes through the cooresponding hn(4). -# o The cooresponding hn(4) fallbacks to the original physical link +# o All of the transmission should go through the corresponding hn(4). +# o All of the reception goes through the corresponding hn(4). +# o The corresponding hn(4) fallbacks to the original physical link # detection logic. # # All these features are mainly used to help live migration, during which # the network VF will be detached, while the network communication to the # VM must not be cut off. In order to reach this level of live migration # transparency, we use failover mode lagg(4) with the network VF and the -# cooresponding hn(4) attached to it. +# corresponding hn(4) attached to it. # # To ease user configuration for both network VF and non-network VF, the # lagg(4) will be created by the following rules, and the configuration -# of the cooresponding hn(4) will be applied to the lagg(4) automatically. +# of the corresponding hn(4) will be applied to the lagg(4) automatically. # # NOTE: # If live migration is not needed at all, the following rules could be # commented out, and the network VF interface could be used exclusively. -# Most often the cooresponding hn(4) could be completely ignored. +# Most often the corresponding hn(4) could be completely ignored. # # # Default workflow for the network VF bringup: Modified: projects/clang600-import/etc/mail/mailer.conf ============================================================================== --- projects/clang600-import/etc/mail/mailer.conf Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/etc/mail/mailer.conf Fri Dec 29 12:51:26 2017 (r327341) @@ -3,7 +3,6 @@ # Execute the "real" sendmail program, named /usr/libexec/sendmail/sendmail # sendmail /usr/libexec/sendmail/sendmail -send-mail /usr/libexec/sendmail/sendmail mailq /usr/libexec/sendmail/sendmail newaliases /usr/libexec/sendmail/sendmail hoststat /usr/libexec/sendmail/sendmail Modified: projects/clang600-import/etc/portsnap.conf ============================================================================== --- projects/clang600-import/etc/portsnap.conf Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/etc/portsnap.conf Fri Dec 29 12:51:26 2017 (r327341) @@ -30,7 +30,6 @@ KEYPRINT=9b5feee6d69f170e3dd0a2c8e469ddbd64f13f978f2f3 # REFUSE korean polish portuguese russian ukrainian vietnamese # List of INDEX files to build and the DESCRIBE file to use for each -#INDEX INDEX-9 DESCRIBE.9 #INDEX INDEX-10 DESCRIBE.10 #INDEX INDEX-11 DESCRIBE.11 INDEX INDEX-12 DESCRIBE.12 Modified: projects/clang600-import/etc/rc.initdiskless ============================================================================== --- projects/clang600-import/etc/rc.initdiskless Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/etc/rc.initdiskless Fri Dec 29 12:51:26 2017 (r327341) @@ -67,7 +67,7 @@ # /conf/T/M/remount # The contents of the file is a mount command. E.g. if # /conf/1.2.3.4/foo/remount contains "mount -o ro /dev/ad0s3", -# then /dev/ad0s3 will be be mounted on /conf/1.2.3.4/foo/ +# then /dev/ad0s3 will be mounted on /conf/1.2.3.4/foo/ # # /conf/T/M/remount_optional # If this file exists, then failure to execute the mount Modified: projects/clang600-import/etc/rc.subr ============================================================================== --- projects/clang600-import/etc/rc.subr Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/etc/rc.subr Fri Dec 29 12:51:26 2017 (r327341) @@ -1542,7 +1542,7 @@ debug() # is created. # # update `file' has changed and needs to be backed up. -# If `cur' exists, it is copied to to `back' +# If `cur' exists, it is copied to `back' # and then `file' is copied to `cur'. # # remove `file' is no longer being tracked by the backups Modified: projects/clang600-import/lib/libc/include/reentrant.h ============================================================================== --- projects/clang600-import/lib/libc/include/reentrant.h Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libc/include/reentrant.h Fri Dec 29 12:51:26 2017 (r327341) @@ -67,7 +67,7 @@ * Implementation Details: * * The mutex primitives used by the library (mutex_t, mutex_lock, etc.) - * are macros which expand to the cooresponding primitives provided by + * are macros which expand to the corresponding primitives provided by * the thread engine or to nothing. The latter is used so that code is * not unreasonably cluttered with #ifdefs when all thread safe support * is removed. Modified: projects/clang600-import/lib/libc/locale/euc.c ============================================================================== --- projects/clang600-import/lib/libc/locale/euc.c Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libc/locale/euc.c Fri Dec 29 12:51:26 2017 (r327341) @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-4-Clause + * SPDX-License-Identifier: BSD-3-Clause * * Copyright 2013 Garrett D'Amore * Copyright 2011 Nexenta Systems, Inc. All rights reserved. Modified: projects/clang600-import/lib/libc/mips/SYS.h ============================================================================== --- projects/clang600-import/lib/libc/mips/SYS.h Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libc/mips/SYS.h Fri Dec 29 12:51:26 2017 (r327341) @@ -2,7 +2,7 @@ /* $FreeBSD$ */ /*- - * SPDX-License-Identifier: BSD-4-Clause + * SPDX-License-Identifier: (BSD-4-Clause AND BSD-3-Clause) * * Copyright (c) 1996 Jonathan Stone * All rights reserved. Modified: projects/clang600-import/lib/libc/sparc64/fpu/fpu_reg.h ============================================================================== --- projects/clang600-import/lib/libc/sparc64/fpu/fpu_reg.h Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libc/sparc64/fpu/fpu_reg.h Fri Dec 29 12:51:26 2017 (r327341) @@ -31,7 +31,7 @@ #define _LIBC_SPARC64_FPU_FPU_REG_H_ /* - * These are not really of type char[]. They are are arrays of functions defined + * These are not really of type char[]. They are arrays of functions defined * in fpu_reg.S; each array member loads/stores a certain fpu register of the * given size. */ Modified: projects/clang600-import/lib/libc/stdio/fflush.3 ============================================================================== --- projects/clang600-import/lib/libc/stdio/fflush.3 Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libc/stdio/fflush.3 Fri Dec 29 12:51:26 2017 (r327341) @@ -32,7 +32,7 @@ .\" @(#)fflush.3 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd June 4, 1993 +.Dd December 25, 2017 .Dt FFLUSH 3 .Os .Sh NAME @@ -87,9 +87,7 @@ is set to indicate the error. The .Fa stream argument -is not an open stream, or, in the case of -.Fn fflush , -not a stream open for writing. +is not an open stream. .El .Pp The function @@ -97,7 +95,12 @@ The function may also fail and set .Va errno for any of the errors specified for the routine -.Xr write 2 . +.Xr write 2 , +except that in case of +.Fa stream +being a read-only descriptor, +.Fn fflush +returns 0. .Sh SEE ALSO .Xr write 2 , .Xr fclose 3 , Modified: projects/clang600-import/lib/libc/sys/kqueue.2 ============================================================================== --- projects/clang600-import/lib/libc/sys/kqueue.2 Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libc/sys/kqueue.2 Fri Dec 29 12:51:26 2017 (r327341) @@ -190,7 +190,7 @@ The .Fa ext[2] and .Fa ext[3] -members are always passed throught the kernel as-is, +members are always passed through the kernel as-is, making additional context available to application. .El .Pp Modified: projects/clang600-import/lib/libc/sys/sendfile.2 ============================================================================== --- projects/clang600-import/lib/libc/sys/sendfile.2 Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libc/sys/sendfile.2 Fri Dec 29 12:51:26 2017 (r327341) @@ -190,7 +190,7 @@ may read ahead when reading the file. A macro .Fn SF_FLAGS is provided to combine readahead amount and flags. -Example shows specifing readahead of 16 pages and +An example showing specifying readahead of 16 pages and .Dv SF_NOCACHE flag: .Pp Modified: projects/clang600-import/lib/libcam/camlib.h ============================================================================== --- projects/clang600-import/lib/libcam/camlib.h Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libcam/camlib.h Fri Dec 29 12:51:26 2017 (r327341) @@ -1,5 +1,5 @@ /*- - * SPDX-License-Identifier: BSD-4-Clause AND BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: (BSD-2-Clause-FreeBSD AND BSD-4-Clause) * * Copyright (c) 1997, 1998 Kenneth D. Merry. * All rights reserved. Modified: projects/clang600-import/lib/libedit/map.c ============================================================================== --- projects/clang600-import/lib/libedit/map.c Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libedit/map.c Fri Dec 29 12:51:26 2017 (r327341) @@ -370,7 +370,7 @@ private const el_action_t el_map_vi_insert[] = { * NOTE: These mappings do NOT Correspond well * to the KSH VI editing assignments. * On the other and they are convenient and - * many people have have gotten used to them. + * many people have gotten used to them. */ /* 0 */ ED_UNASSIGNED, /* ^@ */ /* 1 */ ED_MOVE_TO_BEG, /* ^A */ Modified: projects/clang600-import/lib/libedit/refresh.c ============================================================================== --- projects/clang600-import/lib/libedit/refresh.c Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libedit/refresh.c Fri Dec 29 12:51:26 2017 (r327341) @@ -1148,7 +1148,7 @@ re_fastaddc(EditLine *el) /* re_clear_display(): - * clear the screen buffers so that new new prompt starts fresh. + * clear the screen buffers so that new prompt starts fresh. */ protected void re_clear_display(EditLine *el) Modified: projects/clang600-import/lib/libefivar/uefi-dputil.c ============================================================================== --- projects/clang600-import/lib/libefivar/uefi-dputil.c Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libefivar/uefi-dputil.c Fri Dec 29 12:51:26 2017 (r327341) @@ -134,7 +134,7 @@ GetDevicePathSize ( @param MaxSize The maximum size of the device path data structure. @retval TRUE DevicePath is valid. - @retval FALSE The length of any node node in the DevicePath is less + @retval FALSE The length of any node in the DevicePath is less than sizeof (EFI_DEVICE_PATH_PROTOCOL). @retval FALSE If MaxSize is not zero, the size of the DevicePath exceeds MaxSize. Modified: projects/clang600-import/lib/libopenbsd/imsg_init.3 ============================================================================== --- projects/clang600-import/lib/libopenbsd/imsg_init.3 Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libopenbsd/imsg_init.3 Fri Dec 29 12:51:26 2017 (r327341) @@ -347,7 +347,7 @@ On success returns a pointer to the buffer; on failure it returns NULL. .Pp .Fn ibuf_dynamic -allocates a resizeable buffer of initial length +allocates a resizable buffer of initial length .Fa len and maximum size .Fa max . Modified: projects/clang600-import/lib/libufs/type.c ============================================================================== --- projects/clang600-import/lib/libufs/type.c Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libufs/type.c Fri Dec 29 12:51:26 2017 (r327341) @@ -83,6 +83,7 @@ ufs_disk_fillout(struct uufsd *disk, const char *name) } if (sbread(disk) == -1) { ERROR(disk, "could not read superblock to fill out disk"); + ufs_disk_close(disk); return (-1); } return (0); Modified: projects/clang600-import/lib/libutil/humanize_number.3 ============================================================================== --- projects/clang600-import/lib/libutil/humanize_number.3 Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libutil/humanize_number.3 Fri Dec 29 12:51:26 2017 (r327341) @@ -200,3 +200,9 @@ The .Dv HN_IEC_PREFIXES flag was introduced in .Fx 9.0 . +.Sh CAVEATS +For numbers greater than 999 using buffer length of 4 and less can cause +rounding errors. +When using +.Dv HN_IEC_PREFIXES +the same error occurs for buffer length of 5 or less. Modified: projects/clang600-import/lib/libutil/humanize_number.c ============================================================================== --- projects/clang600-import/lib/libutil/humanize_number.c Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libutil/humanize_number.c Fri Dec 29 12:51:26 2017 (r327341) @@ -145,7 +145,8 @@ humanize_number(char *buf, size_t len, int64_t quotien */ for (i = 0; (quotient >= max || (quotient == max - 1 && - remainder >= divisordeccut)) && i < maxscale; i++) { + (remainder >= divisordeccut || remainder >= + divisor / 2))) && i < maxscale; i++) { remainder = quotient % divisor; quotient /= divisor; } Modified: projects/clang600-import/lib/libutil/pty.c ============================================================================== --- projects/clang600-import/lib/libutil/pty.c Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libutil/pty.c Fri Dec 29 12:51:26 2017 (r327341) @@ -101,12 +101,13 @@ forkpty(int *amaster, char *name, struct termios *term return (-1); switch (pid = fork()) { case -1: + (void)close(slave); return (-1); case 0: /* * child */ - (void) close(master); + (void)close(master); login_tty(slave); return (0); } Modified: projects/clang600-import/lib/libutil/tests/humanize_number_test.c ============================================================================== --- projects/clang600-import/lib/libutil/tests/humanize_number_test.c Fri Dec 29 12:49:24 2017 (r327340) +++ projects/clang600-import/lib/libutil/tests/humanize_number_test.c Fri Dec 29 12:51:26 2017 (r327341) @@ -49,333 +49,337 @@ static struct { int64_t num; int flags; int scale; + size_t buflen; } test_args[] = { /* tests 0-13 test 1000 suffixes */ - { 2, "0 ", (int64_t)0L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "1 k", (int64_t)500L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "1 M", (int64_t)500*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "1 G", (int64_t)500*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "1 T", (int64_t)500*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "1 P", (int64_t)500*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "1 E", (int64_t)500*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 2, "1 ", (int64_t)1L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "2 k", (int64_t)1500L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "2 M", (int64_t)1500*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "2 G", (int64_t)1500*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "2 T", (int64_t)1500*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "2 P", (int64_t)1500*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "2 E", (int64_t)1500*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, + { 2, "0 ", (int64_t)0L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "1 k", (int64_t)500L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "1 M", (int64_t)500*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "1 G", (int64_t)500*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "1 T", (int64_t)500*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "1 P", (int64_t)500*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "1 E", (int64_t)500*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 2, "1 ", (int64_t)1L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "2 k", (int64_t)1500L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "2 M", (int64_t)1500*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "2 G", (int64_t)1500*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "2 T", (int64_t)1500*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "2 P", (int64_t)1500*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "2 E", (int64_t)1500*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, /* tests 14-27 test 1024 suffixes */ - { 2, "0 ", (int64_t)0L, 0, HN_AUTOSCALE }, - { 3, "1 K", (int64_t)512L, 0, HN_AUTOSCALE }, - { 3, "1 M", (int64_t)512*1024L, 0, HN_AUTOSCALE }, - { 3, "1 G", (int64_t)512*1024*1024L, 0, HN_AUTOSCALE }, - { 3, "1 T", (int64_t)512*1024*1024*1024L, 0, HN_AUTOSCALE }, - { 3, "1 P", (int64_t)512*1024*1024*1024*1024L, 0, HN_AUTOSCALE }, - { 3, "1 E", (int64_t)512*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE }, - { 2, "1 ", (int64_t)1L, 0, HN_AUTOSCALE }, - { 3, "2 K", (int64_t)1536L, 0, HN_AUTOSCALE }, - { 3, "2 M", (int64_t)1536*1024L, 0, HN_AUTOSCALE }, - { 3, "2 G", (int64_t)1536*1024*1024L, 0, HN_AUTOSCALE }, - { 3, "2 T", (int64_t)1536*1024*1024*1024L, 0, HN_AUTOSCALE }, - { 3, "2 P", (int64_t)1536*1024*1024*1024*1024L, 0, HN_AUTOSCALE }, - { 3, "2 E", (int64_t)1536*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE }, + { 2, "0 ", (int64_t)0L, 0, HN_AUTOSCALE, 4 }, + { 3, "1 K", (int64_t)512L, 0, HN_AUTOSCALE, 4 }, + { 3, "1 M", (int64_t)512*1024L, 0, HN_AUTOSCALE, 4 }, + { 3, "1 G", (int64_t)512*1024*1024L, 0, HN_AUTOSCALE, 4 }, + { 3, "1 T", (int64_t)512*1024*1024*1024L, 0, HN_AUTOSCALE, 4 }, + { 3, "1 P", (int64_t)512*1024*1024*1024*1024L, 0, HN_AUTOSCALE, 4 }, + { 3, "1 E", (int64_t)512*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE, 4 }, + { 2, "1 ", (int64_t)1L, 0, HN_AUTOSCALE, 4 }, + { 3, "2 K", (int64_t)1536L, 0, HN_AUTOSCALE, 4 }, + { 3, "2 M", (int64_t)1536*1024L, 0, HN_AUTOSCALE, 4 }, + { 3, "2 G", (int64_t)1536*1024*1024L, 0, HN_AUTOSCALE, 4 }, + { 3, "2 T", (int64_t)1536*1024*1024*1024L, 0, HN_AUTOSCALE, 4 }, + { 3, "2 P", (int64_t)1536*1024*1024*1024*1024L, 0, HN_AUTOSCALE, 4 }, + { 3, "2 E", (int64_t)1536*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE, 4 }, /* tests 28-37 test rounding */ - { 3, "0 M", (int64_t)500*1000L-1, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "1 M", (int64_t)500*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "1 M", (int64_t)1000*1000L + 500*1000L-1, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "2 M", (int64_t)1000*1000L + 500*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 3, "0 K", (int64_t)512L-1, 0, HN_AUTOSCALE }, - { 3, "1 K", (int64_t)512L, 0, HN_AUTOSCALE }, - { 3, "0 M", (int64_t)512*1024L-1, 0, HN_AUTOSCALE }, - { 3, "1 M", (int64_t)512*1024L, 0, HN_AUTOSCALE }, - { 3, "1 M", (int64_t)1024*1024L + 512*1024L-1, 0, HN_AUTOSCALE }, - { 3, "2 M", (int64_t)1024*1024L + 512*1024L, 0, HN_AUTOSCALE }, + { 3, "0 M", (int64_t)500*1000L-1, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "1 M", (int64_t)500*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "1 M", (int64_t)1000*1000L + 500*1000L-1, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "2 M", (int64_t)1000*1000L + 500*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 4 }, + { 3, "0 K", (int64_t)512L-1, 0, HN_AUTOSCALE, 4 }, + { 3, "1 K", (int64_t)512L, 0, HN_AUTOSCALE, 4 }, + { 3, "0 M", (int64_t)512*1024L-1, 0, HN_AUTOSCALE, 4 }, + { 3, "1 M", (int64_t)512*1024L, 0, HN_AUTOSCALE, 4 }, + { 3, "1 M", (int64_t)1024*1024L + 512*1024L-1, 0, HN_AUTOSCALE, 4 }, + { 3, "2 M", (int64_t)1024*1024L + 512*1024L, 0, HN_AUTOSCALE, 4 }, /* tests 38-61 test specific scale factors with 1000 divisor */ - { 3, "0 k", (int64_t)0L, HN_DIVISOR_1000, 1 }, - { 3, "1 k", (int64_t)500L, HN_DIVISOR_1000, 1 }, - { 3, "0 M", (int64_t)500L, HN_DIVISOR_1000, 2 }, - { 3, "1 M", (int64_t)500*1000L, HN_DIVISOR_1000, 2 }, - { 3, "0 G", (int64_t)500*1000L, HN_DIVISOR_1000, 3 }, - { 3, "1 G", (int64_t)500*1000*1000L, HN_DIVISOR_1000, 3 }, - { 3, "0 T", (int64_t)500*1000*1000L, HN_DIVISOR_1000, 4 }, - { 3, "1 T", (int64_t)500*1000*1000*1000L, HN_DIVISOR_1000, 4 }, - { 3, "0 P", (int64_t)500*1000*1000*1000L, HN_DIVISOR_1000, 5 }, - { 3, "1 P", (int64_t)500*1000*1000*1000*1000L, HN_DIVISOR_1000, 5 }, - { 3, "0 E", (int64_t)500*1000*1000*1000*1000L, HN_DIVISOR_1000, 6 }, - { 3, "1 E", (int64_t)500*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, 6 }, - { 3, "0 k", (int64_t)1L, HN_DIVISOR_1000, 1 }, - { 3, "2 k", (int64_t)1500L, HN_DIVISOR_1000, 1 }, - { 3, "0 M", (int64_t)1500L, HN_DIVISOR_1000, 2 }, - { 3, "2 M", (int64_t)1500*1000L, HN_DIVISOR_1000, 2 }, - { 3, "0 G", (int64_t)1500*1000L, HN_DIVISOR_1000, 3 }, - { 3, "2 G", (int64_t)1500*1000*1000L, HN_DIVISOR_1000, 3 }, - { 3, "0 T", (int64_t)1500*1000*1000L, HN_DIVISOR_1000, 4 }, - { 3, "2 T", (int64_t)1500*1000*1000*1000L, HN_DIVISOR_1000, 4 }, - { 3, "0 P", (int64_t)1500*1000*1000*1000L, HN_DIVISOR_1000, 5 }, - { 3, "2 P", (int64_t)1500*1000*1000*1000*1000L, HN_DIVISOR_1000, 5 }, - { 3, "0 E", (int64_t)1500*1000*1000*1000*1000L, HN_DIVISOR_1000, 6 }, - { 3, "2 E", (int64_t)1500*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, 6 }, + { 3, "0 k", (int64_t)0L, HN_DIVISOR_1000, 1, 4 }, + { 3, "1 k", (int64_t)500L, HN_DIVISOR_1000, 1, 4 }, + { 3, "0 M", (int64_t)500L, HN_DIVISOR_1000, 2, 4 }, + { 3, "1 M", (int64_t)500*1000L, HN_DIVISOR_1000, 2, 4 }, + { 3, "0 G", (int64_t)500*1000L, HN_DIVISOR_1000, 3, 4 }, + { 3, "1 G", (int64_t)500*1000*1000L, HN_DIVISOR_1000, 3, 4 }, + { 3, "0 T", (int64_t)500*1000*1000L, HN_DIVISOR_1000, 4, 4 }, + { 3, "1 T", (int64_t)500*1000*1000*1000L, HN_DIVISOR_1000, 4, 4 }, + { 3, "0 P", (int64_t)500*1000*1000*1000L, HN_DIVISOR_1000, 5, 4 }, + { 3, "1 P", (int64_t)500*1000*1000*1000*1000L, HN_DIVISOR_1000, 5, 4 }, + { 3, "0 E", (int64_t)500*1000*1000*1000*1000L, HN_DIVISOR_1000, 6, 4 }, + { 3, "1 E", (int64_t)500*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, 6, 4 }, + { 3, "0 k", (int64_t)1L, HN_DIVISOR_1000, 1, 4 }, + { 3, "2 k", (int64_t)1500L, HN_DIVISOR_1000, 1, 4 }, + { 3, "0 M", (int64_t)1500L, HN_DIVISOR_1000, 2, 4 }, + { 3, "2 M", (int64_t)1500*1000L, HN_DIVISOR_1000, 2, 4 }, + { 3, "0 G", (int64_t)1500*1000L, HN_DIVISOR_1000, 3, 4 }, + { 3, "2 G", (int64_t)1500*1000*1000L, HN_DIVISOR_1000, 3, 4 }, + { 3, "0 T", (int64_t)1500*1000*1000L, HN_DIVISOR_1000, 4, 4 }, + { 3, "2 T", (int64_t)1500*1000*1000*1000L, HN_DIVISOR_1000, 4, 4 }, + { 3, "0 P", (int64_t)1500*1000*1000*1000L, HN_DIVISOR_1000, 5, 4 }, + { 3, "2 P", (int64_t)1500*1000*1000*1000*1000L, HN_DIVISOR_1000, 5, 4 }, + { 3, "0 E", (int64_t)1500*1000*1000*1000*1000L, HN_DIVISOR_1000, 6, 4 }, + { 3, "2 E", (int64_t)1500*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, 6, 4 }, /* tests 62-85 test specific scale factors with 1024 divisor */ - { 3, "0 K", (int64_t)0L, 0, 1 }, - { 3, "1 K", (int64_t)512L, 0, 1 }, - { 3, "0 M", (int64_t)512L, 0, 2 }, - { 3, "1 M", (int64_t)512*1024L, 0, 2 }, - { 3, "0 G", (int64_t)512*1024L, 0, 3 }, - { 3, "1 G", (int64_t)512*1024*1024L, 0, 3 }, - { 3, "0 T", (int64_t)512*1024*1024L, 0, 4 }, - { 3, "1 T", (int64_t)512*1024*1024*1024L, 0, 4 }, - { 3, "0 P", (int64_t)512*1024*1024*1024L, 0, 5 }, - { 3, "1 P", (int64_t)512*1024*1024*1024*1024L, 0, 5 }, - { 3, "0 E", (int64_t)512*1024*1024*1024*1024L, 0, 6 }, - { 3, "1 E", (int64_t)512*1024*1024*1024*1024*1024L, 0, 6 }, - { 3, "0 K", (int64_t)1L, 0, 1 }, - { 3, "2 K", (int64_t)1536L, 0, 1 }, - { 3, "0 M", (int64_t)1536L, 0, 2 }, - { 3, "2 M", (int64_t)1536*1024L, 0, 2 }, - { 3, "0 G", (int64_t)1536*1024L, 0, 3 }, - { 3, "2 G", (int64_t)1536*1024*1024L, 0, 3 }, - { 3, "0 T", (int64_t)1536*1024*1024L, 0, 4 }, - { 3, "2 T", (int64_t)1536*1024*1024*1024L, 0, 4 }, - { 3, "0 P", (int64_t)1536*1024*1024*1024L, 0, 5 }, - { 3, "2 P", (int64_t)1536*1024*1024*1024*1024L, 0, 5 }, - { 3, "0 E", (int64_t)1536*1024*1024*1024*1024L, 0, 6 }, - { 3, "2 E", (int64_t)1536*1024*1024*1024*1024*1024L, 0, 6 }, + { 3, "0 K", (int64_t)0L, 0, 1, 4 }, + { 3, "1 K", (int64_t)512L, 0, 1, 4 }, + { 3, "0 M", (int64_t)512L, 0, 2, 4 }, + { 3, "1 M", (int64_t)512*1024L, 0, 2, 4 }, + { 3, "0 G", (int64_t)512*1024L, 0, 3, 4 }, + { 3, "1 G", (int64_t)512*1024*1024L, 0, 3, 4 }, + { 3, "0 T", (int64_t)512*1024*1024L, 0, 4, 4 }, + { 3, "1 T", (int64_t)512*1024*1024*1024L, 0, 4, 4 }, + { 3, "0 P", (int64_t)512*1024*1024*1024L, 0, 5, 4 }, + { 3, "1 P", (int64_t)512*1024*1024*1024*1024L, 0, 5, 4 }, + { 3, "0 E", (int64_t)512*1024*1024*1024*1024L, 0, 6, 4 }, + { 3, "1 E", (int64_t)512*1024*1024*1024*1024*1024L, 0, 6, 4 }, + { 3, "0 K", (int64_t)1L, 0, 1, 4 }, + { 3, "2 K", (int64_t)1536L, 0, 1, 4 }, + { 3, "0 M", (int64_t)1536L, 0, 2, 4 }, + { 3, "2 M", (int64_t)1536*1024L, 0, 2, 4 }, + { 3, "0 G", (int64_t)1536*1024L, 0, 3, 4 }, + { 3, "2 G", (int64_t)1536*1024*1024L, 0, 3, 4 }, + { 3, "0 T", (int64_t)1536*1024*1024L, 0, 4, 4 }, + { 3, "2 T", (int64_t)1536*1024*1024*1024L, 0, 4, 4 }, + { 3, "0 P", (int64_t)1536*1024*1024*1024L, 0, 5, 4 }, + { 3, "2 P", (int64_t)1536*1024*1024*1024*1024L, 0, 5, 4 }, + { 3, "0 E", (int64_t)1536*1024*1024*1024*1024L, 0, 6, 4 }, + { 3, "2 E", (int64_t)1536*1024*1024*1024*1024*1024L, 0, 6, 4 }, /* tests 86-99 test invalid specific scale values of < 0 or >= 7 with and without HN_DIVISOR_1000 set */ /* all should return errors with new code; with old, the latter 3 are instead processed as if having AUTOSCALE and/or GETSCALE set */ - { -1, "", (int64_t)1L, 0, 7 }, - { -1, "", (int64_t)1L, HN_DIVISOR_1000, 7 }, - { -1, "", (int64_t)1L, 0, 1000 }, - { -1, "", (int64_t)1L, HN_DIVISOR_1000, 1000 }, - { -1, "", (int64_t)0L, 0, 1000*1000 }, - { -1, "", (int64_t)0L, HN_DIVISOR_1000, 1000*1000 }, - { -1, "", (int64_t)0L, 0, INT_MAX }, - { -1, "", (int64_t)0L, HN_DIVISOR_1000, INT_MAX }, + { -1, "", (int64_t)1L, 0, 7, 4 }, + { -1, "", (int64_t)1L, HN_DIVISOR_1000, 7, 4 }, + { -1, "", (int64_t)1L, 0, 1000, 4 }, + { -1, "", (int64_t)1L, HN_DIVISOR_1000, 1000, 4 }, + { -1, "", (int64_t)0L, 0, 1000*1000, 4 }, + { -1, "", (int64_t)0L, HN_DIVISOR_1000, 1000*1000, 4 }, + { -1, "", (int64_t)0L, 0, INT_MAX, 4 }, + { -1, "", (int64_t)0L, HN_DIVISOR_1000, INT_MAX, 4 }, /* Negative scale values are not handled well by the existing library routine - should report as error */ /* all should return errors with new code, fail assertion with old */ - { -1, "", (int64_t)1L, 0, -1 }, - { -1, "", (int64_t)1L, HN_DIVISOR_1000, -1 }, - { -1, "", (int64_t)1L, 0, -1000 }, - { -1, "", (int64_t)1L, HN_DIVISOR_1000, -1000 }, + { -1, "", (int64_t)1L, 0, -1, 4 }, + { -1, "", (int64_t)1L, HN_DIVISOR_1000, -1, 4 }, + { -1, "", (int64_t)1L, 0, -1000, 4 }, + { -1, "", (int64_t)1L, HN_DIVISOR_1000, -1000, 4 }, /* __INT_MIN doesn't print properly, skipped. */ - { -1, "", (int64_t)1L, 0, -__INT_MAX }, - { -1, "", (int64_t)1L, HN_DIVISOR_1000, -__INT_MAX }, + { -1, "", (int64_t)1L, 0, -__INT_MAX, 4 }, + { -1, "", (int64_t)1L, HN_DIVISOR_1000, -__INT_MAX, 4 }, /* tests for scale == 0, without autoscale */ /* tests 100-114 test scale 0 with 1000 divisor - print first N digits */ - { 2, "0 ", (int64_t)0L, HN_DIVISOR_1000, 0 }, - { 2, "1 ", (int64_t)1L, HN_DIVISOR_1000, 0 }, - { 3, "10 ", (int64_t)10L, HN_DIVISOR_1000, 0 }, - { 3, "0 M", (int64_t)150L, HN_DIVISOR_1000, HN_NOSPACE }, - { 3, "0 M", (int64_t)500L, HN_DIVISOR_1000, HN_NOSPACE }, - { 3, "0 M", (int64_t)999L, HN_DIVISOR_1000, HN_NOSPACE }, - { 4, "150", (int64_t)150L, HN_DIVISOR_1000, 0 }, - { 4, "500", (int64_t)500L, HN_DIVISOR_1000, 0 }, - { 4, "999", (int64_t)999L, HN_DIVISOR_1000, 0 }, - { 5, "100", (int64_t)1000L, HN_DIVISOR_1000, 0 }, - { 5, "150", (int64_t)1500L, HN_DIVISOR_1000, 0 }, - { 7, "500", (int64_t)500*1000L, HN_DIVISOR_1000, 0 }, - { 8, "150", (int64_t)1500*1000L, HN_DIVISOR_1000, 0 }, - { 10, "500", (int64_t)500*1000*1000L, HN_DIVISOR_1000, 0 }, - { 11, "150", (int64_t)1500*1000*1000L, HN_DIVISOR_1000, 0 }, + { 2, "0 ", (int64_t)0L, HN_DIVISOR_1000, 0, 4 }, + { 2, "1 ", (int64_t)1L, HN_DIVISOR_1000, 0, 4 }, + { 3, "10 ", (int64_t)10L, HN_DIVISOR_1000, 0, 4 }, + { 3, "0 M", (int64_t)150L, HN_DIVISOR_1000, HN_NOSPACE, 4 }, + { 3, "0 M", (int64_t)500L, HN_DIVISOR_1000, HN_NOSPACE, 4 }, + { 3, "0 M", (int64_t)999L, HN_DIVISOR_1000, HN_NOSPACE, 4 }, + { 4, "150", (int64_t)150L, HN_DIVISOR_1000, 0, 4 }, + { 4, "500", (int64_t)500L, HN_DIVISOR_1000, 0, 4 }, + { 4, "999", (int64_t)999L, HN_DIVISOR_1000, 0, 4 }, + { 5, "100", (int64_t)1000L, HN_DIVISOR_1000, 0, 4 }, + { 5, "150", (int64_t)1500L, HN_DIVISOR_1000, 0, 4 }, + { 7, "500", (int64_t)500*1000L, HN_DIVISOR_1000, 0, 4 }, + { 8, "150", (int64_t)1500*1000L, HN_DIVISOR_1000, 0, 4 }, + { 10, "500", (int64_t)500*1000*1000L, HN_DIVISOR_1000, 0, 4 }, + { 11, "150", (int64_t)1500*1000*1000L, HN_DIVISOR_1000, 0, 4 }, /* tests 115-126 test scale 0 with 1024 divisor - print first N digits */ - { 2, "0 ", (int64_t)0L, 0, 0 }, - { 2, "1 ", (int64_t)1L, 0, 0 }, - { 3, "10 ", (int64_t)10L, 0, 0 }, - { 4, "150", (int64_t)150L, 0, 0 }, - { 4, "500", (int64_t)500L, 0, 0 }, - { 4, "999", (int64_t)999L, 0, 0 }, - { 5, "100", (int64_t)1000L, 0, 0 }, - { 5, "150", (int64_t)1500L, 0, 0 }, - { 7, "500", (int64_t)500*1000L, 0, 0 }, - { 8, "150", (int64_t)1500*1000L, 0, 0 }, - { 10, "500", (int64_t)500*1000*1000L, 0, 0 }, - { 11, "150", (int64_t)1500*1000*1000L, 0, 0 }, + { 2, "0 ", (int64_t)0L, 0, 0, 4 }, + { 2, "1 ", (int64_t)1L, 0, 0, 4 }, + { 3, "10 ", (int64_t)10L, 0, 0, 4 }, + { 4, "150", (int64_t)150L, 0, 0, 4 }, + { 4, "500", (int64_t)500L, 0, 0, 4 }, + { 4, "999", (int64_t)999L, 0, 0, 4 }, + { 5, "100", (int64_t)1000L, 0, 0, 4 }, + { 5, "150", (int64_t)1500L, 0, 0, 4 }, + { 7, "500", (int64_t)500*1000L, 0, 0, 4 }, + { 8, "150", (int64_t)1500*1000L, 0, 0, 4 }, + { 10, "500", (int64_t)500*1000*1000L, 0, 0, 4 }, + { 11, "150", (int64_t)1500*1000*1000L, 0, 0, 4 }, + /* Test case for rounding of edge numbers around 999.5+, see PR224498. + * Require buflen >= 5 */ + { 4, "1.0M", (int64_t)1023500, HN_DECIMAL|HN_B|HN_NOSPACE, HN_AUTOSCALE, 5 }, + /* Test boundary cases for very large positive/negative number formatting */ /* Explicit scale, divisor 1024 */ - /* XXX = requires length 5 (buflen 6) for some cases*/ - /* KLUDGE - test loop below will bump length 5 up to 5 */ - { 3, "8 E", INT64_MAX, 0, 6 }, - { 4, "-8 E", -INT64_MAX, 0, 6 }, - { 3, "0 E", (int64_t)92*1024*1024*1024*1024*1024L, 0, 6 }, - { 3, "0 E", -(int64_t)92*1024*1024*1024*1024*1024L, 0, 6 }, - { 3, "0 E", (int64_t)82*1024*1024*1024*1024*1024L, 0, 6 }, - { 3, "0 E", -(int64_t)82*1024*1024*1024*1024*1024L, 0, 6 }, - { 3, "0 E", (int64_t)81*1024*1024*1024*1024*1024L, 0, 6 }, - { 3, "0 E", -(int64_t)81*1024*1024*1024*1024*1024L, 0, 6 }, - { 4, "92 P", (int64_t)92*1024*1024*1024*1024*1024L, 0, 5 }, - { 5, "-92 P", -(int64_t)92*1024*1024*1024*1024*1024L, 0, 5 }, - { 4, "82 P", (int64_t)82*1024*1024*1024*1024*1024L, 0, 5 }, - { 5, "-82 P", -(int64_t)82*1024*1024*1024*1024*1024L, 0, 5 }, - { 4, "81 P", (int64_t)81*1024*1024*1024*1024*1024L, 0, 5 }, - { 5, "-81 P", -(int64_t)81*1024*1024*1024*1024*1024L, 0, 5 }, + /* Requires buflen >= 6 */ + { 3, "8 E", INT64_MAX, 0, 6, 6 }, + { 4, "-8 E", -INT64_MAX, 0, 6, 6 }, + { 3, "0 E", (int64_t)92*1024*1024*1024*1024*1024L, 0, 6, 6 }, + { 3, "0 E", -(int64_t)92*1024*1024*1024*1024*1024L, 0, 6, 6 }, + { 3, "0 E", (int64_t)82*1024*1024*1024*1024*1024L, 0, 6, 6 }, + { 3, "0 E", -(int64_t)82*1024*1024*1024*1024*1024L, 0, 6, 6 }, + { 3, "0 E", (int64_t)81*1024*1024*1024*1024*1024L, 0, 6, 6 }, + { 3, "0 E", -(int64_t)81*1024*1024*1024*1024*1024L, 0, 6, 6 }, + { 4, "92 P", (int64_t)92*1024*1024*1024*1024*1024L, 0, 5, 6 }, + { 5, "-92 P", -(int64_t)92*1024*1024*1024*1024*1024L, 0, 5, 6 }, + { 4, "82 P", (int64_t)82*1024*1024*1024*1024*1024L, 0, 5, 6 }, + { 5, "-82 P", -(int64_t)82*1024*1024*1024*1024*1024L, 0, 5, 6 }, + { 4, "81 P", (int64_t)81*1024*1024*1024*1024*1024L, 0, 5, 6 }, + { 5, "-81 P", -(int64_t)81*1024*1024*1024*1024*1024L, 0, 5, 6 }, /* Explicit scale, divisor 1000 */ - { 3, "9 E", INT64_MAX, HN_DIVISOR_1000, 6 }, - { 4, "-9 E", -INT64_MAX, HN_DIVISOR_1000, 6 }, - { 3, "0 E", (int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 6 }, - { 3, "0 E", -(int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 6 }, - { 3, "0 E", (int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 6 }, - { 3, "0 E", -(int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 6 }, - { 4, "92 P", (int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 5 }, - { 5, "-92 P", -(int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 5 }, - { 4, "91 P", (int64_t)81*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 5 }, - { 5, "-91 P", -(int64_t)81*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 5 }, + { 3, "9 E", INT64_MAX, HN_DIVISOR_1000, 6, 6 }, + { 4, "-9 E", -INT64_MAX, HN_DIVISOR_1000, 6, 6 }, + { 3, "0 E", (int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 6, 6 }, + { 3, "0 E", -(int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 6, 6 }, + { 3, "0 E", (int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 6, 6 }, + { 3, "0 E", -(int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 6, 6 }, + { 4, "92 P", (int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 5, 6 }, + { 5, "-92 P", -(int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 5, 6 }, + { 4, "91 P", (int64_t)81*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 5, 6 }, + { 5, "-91 P", -(int64_t)81*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 5, 6 }, /* Autoscale, divisor 1024 */ - { 3, "8 E", INT64_MAX, 0, HN_AUTOSCALE }, - { 4, "-8 E", -INT64_MAX, 0, HN_AUTOSCALE }, - { 4, "92 P", (int64_t)92*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE }, - { 5, "-92 P", -(int64_t)92*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE }, - { 4, "82 P", (int64_t)82*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE }, - { 5, "-82 P", -(int64_t)82*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE }, - { 4, "81 P", (int64_t)81*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE }, - { 5, "-81 P", -(int64_t)81*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE }, + { 3, "8 E", INT64_MAX, 0, HN_AUTOSCALE, 6 }, + { 4, "-8 E", -INT64_MAX, 0, HN_AUTOSCALE, 6 }, + { 4, "92 P", (int64_t)92*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE, 6 }, + { 5, "-92 P", -(int64_t)92*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE, 6 }, + { 4, "82 P", (int64_t)82*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE, 6 }, + { 5, "-82 P", -(int64_t)82*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE, 6 }, + { 4, "81 P", (int64_t)81*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE, 6 }, + { 5, "-81 P", -(int64_t)81*1024*1024*1024*1024*1024L, 0, HN_AUTOSCALE, 6 }, /* Autoscale, divisor 1000 */ - { 3, "9 E", INT64_MAX, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 4, "-9 E", -INT64_MAX, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 4, "92 P", (int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "-92 P", -(int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 4, "91 P", (int64_t)81*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "-91 P", -(int64_t)81*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, HN_AUTOSCALE }, + { 3, "9 E", INT64_MAX, HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 4, "-9 E", -INT64_MAX, HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 4, "92 P", (int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "-92 P", -(int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 4, "91 P", (int64_t)81*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "-91 P", -(int64_t)81*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, /* 0 scale, divisor 1024 */ - { 12, "skdj", INT64_MAX, 0, 0 }, - { 21, "-9223", -INT64_MAX, 0, 0 }, - { 19, "10358", (int64_t)92*1024*1024*1024*1024*1024L, 0, 0 }, - { 20, "-1035", -(int64_t)92*1024*1024*1024*1024*1024L, 0, 0 }, - { 18, "92323", (int64_t)82*1024*1024*1024*1024*1024L, 0, 0 }, - { 19, "-9232", -(int64_t)82*1024*1024*1024*1024*1024L, 0, 0 }, - { 18, "91197", (int64_t)81*1024*1024*1024*1024*1024L, 0, 0 }, - { 19, "-9119", -(int64_t)81*1024*1024*1024*1024*1024L, 0, 0 }, + { 12, "skdj", INT64_MAX, 0, 0, 6 }, + { 21, "-9223", -INT64_MAX, 0, 0, 6 }, + { 19, "10358", (int64_t)92*1024*1024*1024*1024*1024L, 0, 0, 6 }, + { 20, "-1035", -(int64_t)92*1024*1024*1024*1024*1024L, 0, 0, 6 }, + { 18, "92323", (int64_t)82*1024*1024*1024*1024*1024L, 0, 0, 6 }, + { 19, "-9232", -(int64_t)82*1024*1024*1024*1024*1024L, 0, 0, 6 }, + { 18, "91197", (int64_t)81*1024*1024*1024*1024*1024L, 0, 0, 6 }, + { 19, "-9119", -(int64_t)81*1024*1024*1024*1024*1024L, 0, 0, 6 }, /* 0 scale, divisor 1000 */ /* XXX - why does this fail? */ - { -1, "", INT64_MAX, HN_DIVISOR_1000, 0 }, - { 21, "-9223", -INT64_MAX, HN_DIVISOR_1000, 0 }, - { 19, "10358", (int64_t)92*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 0 }, - { 20, "-1035", -(int64_t)92*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 0 }, - { 18, "92323", (int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 0 }, - { 19, "-9232", -(int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 0 }, + { -1, "", INT64_MAX, HN_DIVISOR_1000, 0, 6 }, + { 21, "-9223", -INT64_MAX, HN_DIVISOR_1000, 0, 6 }, + { 19, "10358", (int64_t)92*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 0, 6 }, + { 20, "-1035", -(int64_t)92*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 0, 6 }, + { 18, "92323", (int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 0, 6 }, + { 19, "-9232", -(int64_t)82*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 0, 6 }, /* Expected to pass */ - { 18, "91197", (int64_t)81*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 0 }, - { 19, "-9119", -(int64_t)81*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 0 }, + { 18, "91197", (int64_t)81*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 0, 6 }, + { 19, "-9119", -(int64_t)81*1024*1024*1024*1024*1024L, HN_DIVISOR_1000, 0, 6 }, /* Need to implement tests for GETSCALE */ -/* { ?, "", (int64_t)0L, HN_DIVISOR_1000, HN_GETSCALE }, +/* { ?, "", (int64_t)0L, HN_DIVISOR_1000, HN_GETSCALE, 6 }, ... */ /* Tests for HN_DECIMAL */ /* Positive, Autoscale */ - { 5, "500 k", (int64_t)500*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "994 k", (int64_t)994*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "995 k", (int64_t)995*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "999 k", (int64_t)999*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "1.0 M", (int64_t)1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "1.5 M", (int64_t)1500*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "1.9 M", (int64_t)1949*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "2.0 M", (int64_t)1950*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "9.9 M", (int64_t)9949*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 4, "10 M", (int64_t)9950*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "500 M", (int64_t)500*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "994 M", (int64_t)994*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "995 M", (int64_t)995*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "999 M", (int64_t)999*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, + { 5, "500 k", (int64_t)500*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "994 k", (int64_t)994*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "995 k", (int64_t)995*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "999 k", (int64_t)999*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "1.0 M", (int64_t)1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "1.5 M", (int64_t)1500*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "1.9 M", (int64_t)1949*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "2.0 M", (int64_t)1950*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "9.9 M", (int64_t)9949*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 4, "10 M", (int64_t)9950*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "500 M", (int64_t)500*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "994 M", (int64_t)994*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "995 M", (int64_t)995*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "999 M", (int64_t)999*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, - { 5, "500 K", (int64_t)500*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "994 K", (int64_t)994*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "995 K", (int64_t)995*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "999 K", (int64_t)999*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "1.0 M", (int64_t)1000*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "1.0 M", (int64_t)1018*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "1.0 M", (int64_t)1019*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "1.5 M", (int64_t)1536*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "1.9 M", (int64_t)1996*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "2.0 M", (int64_t)1997*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "2.0 M", (int64_t)2047*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "2.0 M", (int64_t)2048*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "2.0 M", (int64_t)2099*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "2.1 M", (int64_t)2100*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "9.9 M", (int64_t)10188*1024L, HN_DECIMAL, HN_AUTOSCALE }, + { 5, "500 K", (int64_t)500*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "994 K", (int64_t)994*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "995 K", (int64_t)995*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "999 K", (int64_t)999*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "1.0 M", (int64_t)1000*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "1.0 M", (int64_t)1018*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "1.0 M", (int64_t)1019*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "1.5 M", (int64_t)1536*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "1.9 M", (int64_t)1996*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "2.0 M", (int64_t)1997*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "2.0 M", (int64_t)2047*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "2.0 M", (int64_t)2048*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "2.0 M", (int64_t)2099*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "2.1 M", (int64_t)2100*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "9.9 M", (int64_t)10188*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, /* XXX - shouldn't the following two be "10. M"? */ - { 4, "10 M", (int64_t)10189*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 4, "10 M", (int64_t)10240*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "500 M", (int64_t)500*1024*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "994 M", (int64_t)994*1024*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "995 M", (int64_t)995*1024*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "999 M", (int64_t)999*1024*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "1.0 G", (int64_t)1000*1024*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "1.0 G", (int64_t)1023*1024*1024L, HN_DECIMAL, HN_AUTOSCALE }, + { 4, "10 M", (int64_t)10189*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 4, "10 M", (int64_t)10240*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "500 M", (int64_t)500*1024*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "994 M", (int64_t)994*1024*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "995 M", (int64_t)995*1024*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "999 M", (int64_t)999*1024*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "1.0 G", (int64_t)1000*1024*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "1.0 G", (int64_t)1023*1024*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, /* Negative, Autoscale - should pass */ - { 6, "-1.5 ", -(int64_t)1500*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 6, "-1.9 ", -(int64_t)1949*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 6, "-9.9 ", -(int64_t)9949*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, + { 6, "-1.5 ", -(int64_t)1500*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 6, "-1.9 ", -(int64_t)1949*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 6, "-9.9 ", -(int64_t)9949*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, - { 6, "-1.5 ", -(int64_t)1536*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 6, "-1.9 ", -(int64_t)1949*1024L, HN_DECIMAL, HN_AUTOSCALE }, - { 6, "-9.7 ", -(int64_t)9949*1024L, HN_DECIMAL, HN_AUTOSCALE }, + { 6, "-1.5 ", -(int64_t)1536*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 6, "-1.9 ", -(int64_t)1949*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 6, "-9.7 ", -(int64_t)9949*1024L, HN_DECIMAL, HN_AUTOSCALE, 6 }, /* Positive/negative, at maximum scale */ - { 5, "500 P", (int64_t)500*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "1.9 E", (int64_t)1949*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "8.9 E", (int64_t)8949*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE }, - { 5, "9.2 E", INT64_MAX, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, + { 5, "500 P", (int64_t)500*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "1.9 E", (int64_t)1949*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "8.9 E", (int64_t)8949*1000*1000*1000*1000*1000L, HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 5, "9.2 E", INT64_MAX, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, /* Negatives work with latest rev only: */ - { 6, "-9.2 ", -INT64_MAX, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, - { 6, "-8.9 ", -(int64_t)8949*1000*1000*1000*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE }, + { 6, "-9.2 ", -INT64_MAX, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, + { 6, "-8.9 ", -(int64_t)8949*1000*1000*1000*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, HN_AUTOSCALE, 6 }, - { 5, "8.0 E", INT64_MAX, HN_DECIMAL, HN_AUTOSCALE }, - { 5, "7.9 E", INT64_MAX-(int64_t)100*1024*1024*1024*1024*1024LL, HN_DECIMAL, HN_AUTOSCALE }, - { 6, "-8.0 ", -INT64_MAX, HN_DECIMAL, HN_AUTOSCALE }, - { 6, "-7.9 ", -INT64_MAX+(int64_t)100*1024*1024*1024*1024*1024LL, HN_DECIMAL, HN_AUTOSCALE }, + { 5, "8.0 E", INT64_MAX, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 5, "7.9 E", INT64_MAX-(int64_t)100*1024*1024*1024*1024*1024LL, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 6, "-8.0 ", -INT64_MAX, HN_DECIMAL, HN_AUTOSCALE, 6 }, + { 6, "-7.9 ", -INT64_MAX+(int64_t)100*1024*1024*1024*1024*1024LL, HN_DECIMAL, HN_AUTOSCALE, 6 }, /* Positive, Fixed scales */ - { 5, "500 k", (int64_t)500*1000L, HN_DECIMAL|HN_DIVISOR_1000, 1 }, - { 5, "0.5 M", (int64_t)500*1000L, HN_DECIMAL|HN_DIVISOR_1000, 2 }, - { 5, "949 k", (int64_t)949*1000L, HN_DECIMAL|HN_DIVISOR_1000, 1 }, - { 5, "0.9 M", (int64_t)949*1000L, HN_DECIMAL|HN_DIVISOR_1000, 2 }, - { 5, "950 k", (int64_t)950*1000L, HN_DECIMAL|HN_DIVISOR_1000, 1 }, - { 5, "1.0 M", (int64_t)950*1000L, HN_DECIMAL|HN_DIVISOR_1000, 2 }, - { 5, "999 k", (int64_t)999*1000L, HN_DECIMAL|HN_DIVISOR_1000, 1 }, - { 5, "1.0 M", (int64_t)999*1000L, HN_DECIMAL|HN_DIVISOR_1000, 2 }, - { 5, "1.5 M", (int64_t)1500*1000L, HN_DECIMAL|HN_DIVISOR_1000, 2 }, - { 5, "1.9 M", (int64_t)1949*1000L, HN_DECIMAL|HN_DIVISOR_1000, 2 }, - { 5, "2.0 M", (int64_t)1950*1000L, HN_DECIMAL|HN_DIVISOR_1000, 2 }, - { 5, "9.9 M", (int64_t)9949*1000L, HN_DECIMAL|HN_DIVISOR_1000, 2 }, - { 4, "10 M", (int64_t)9950*1000L, HN_DECIMAL|HN_DIVISOR_1000, 2 }, - { 5, "500 M", (int64_t)500*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, 2 }, - { 5, "0.5 G", (int64_t)500*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, 3 }, - { 5, "999 M", (int64_t)999*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, 2 }, - { 5, "1.0 G", (int64_t)999*1000*1000L, HN_DECIMAL|HN_DIVISOR_1000, 3 }, + { 5, "500 k", (int64_t)500*1000L, HN_DECIMAL|HN_DIVISOR_1000, 1, 6 }, + { 5, "0.5 M", (int64_t)500*1000L, HN_DECIMAL|HN_DIVISOR_1000, 2, 6 }, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Fri Dec 29 22:10:21 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 33B5CEB2EAC for ; Fri, 29 Dec 2017 22:10:21 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BAE0B7DBE5; Fri, 29 Dec 2017 22:10:19 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBTMAIpD048234; Fri, 29 Dec 2017 22:10:18 GMT (envelope-from nwhitehorn@FreeBSD.org) Received: (from nwhitehorn@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBTMABIK048151; Fri, 29 Dec 2017 22:10:11 GMT (envelope-from nwhitehorn@FreeBSD.org) Message-Id: <201712292210.vBTMABIK048151@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: nwhitehorn set sender to nwhitehorn@FreeBSD.org using -f From: Nathan Whitehorn Date: Fri, 29 Dec 2017 22:10:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r327363 - in projects/powernv: amd64/acpica amd64/amd64 amd64/cloudabi32 amd64/cloudabi64 amd64/conf amd64/ia32 amd64/include amd64/include/pc amd64/linux amd64/linux32 amd64/pci amd64/... X-SVN-Group: projects X-SVN-Commit-Author: nwhitehorn X-SVN-Commit-Paths: in projects/powernv: amd64/acpica amd64/amd64 amd64/cloudabi32 amd64/cloudabi64 amd64/conf amd64/ia32 amd64/include amd64/include/pc amd64/linux amd64/linux32 amd64/pci amd64/vmm amd64/vmm/amd amd64/v... X-SVN-Commit-Revision: 327363 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Dec 2017 22:10:21 -0000 Author: nwhitehorn Date: Fri Dec 29 22:10:06 2017 New Revision: 327363 URL: https://svnweb.freebsd.org/changeset/base/327363 Log: IFC @ r327361 Added: projects/powernv/arm/allwinner/aw_gpio.c - copied unchanged from r327361, head/sys/arm/allwinner/aw_gpio.c projects/powernv/arm/allwinner/aw_mmc.c - copied unchanged from r327361, head/sys/arm/allwinner/aw_mmc.c projects/powernv/arm/allwinner/aw_mmc.h - copied unchanged from r327361, head/sys/arm/allwinner/aw_mmc.h projects/powernv/arm64/cloudabi32/ - copied from r327361, head/sys/arm64/cloudabi32/ projects/powernv/dev/bwn/if_bwn_bhnd.c - copied unchanged from r327361, head/sys/dev/bwn/if_bwn_bhnd.c projects/powernv/dev/bwn/if_bwn_siba.c - copied unchanged from r327361, head/sys/dev/bwn/if_bwn_siba.c projects/powernv/dev/bwn/if_bwn_siba.h - copied unchanged from r327361, head/sys/dev/bwn/if_bwn_siba.h projects/powernv/dev/bwn/if_bwn_siba_compat.c - copied unchanged from r327361, head/sys/dev/bwn/if_bwn_siba_compat.c projects/powernv/dev/bwn/if_bwn_siba_compat.h - copied unchanged from r327361, head/sys/dev/bwn/if_bwn_siba_compat.h projects/powernv/dev/extres/syscon/ - copied from r327361, head/sys/dev/extres/syscon/ projects/powernv/sys/_stdarg.h - copied unchanged from r327361, head/sys/sys/_stdarg.h projects/powernv/sys/atomic_common.h - copied unchanged from r327361, head/sys/sys/atomic_common.h Deleted: projects/powernv/arm/allwinner/a10_gpio.c projects/powernv/arm/allwinner/a10_mmc.c projects/powernv/arm/allwinner/a10_mmc.h projects/powernv/arm/allwinner/aw_console.c projects/powernv/dev/bwn/bwn_mac.c projects/powernv/dev/ixgbe/ixgbe_netmap.c projects/powernv/dev/ixgbe/ixgbe_netmap.h projects/powernv/dts/arm/apalis-imx6.dts projects/powernv/dts/arm/imx6.dtsi projects/powernv/dts/arm/wandboard-dual.dts projects/powernv/dts/arm/wandboard-quad.dts projects/powernv/dts/arm/wandboard-solo.dts projects/powernv/powerpc/ofw/ofwmagic.S Modified: projects/powernv/amd64/acpica/acpi_machdep.c projects/powernv/amd64/amd64/atomic.c projects/powernv/amd64/amd64/bios.c projects/powernv/amd64/amd64/efirt_machdep.c (contents, props changed) projects/powernv/amd64/amd64/elf_machdep.c projects/powernv/amd64/amd64/gdb_machdep.c projects/powernv/amd64/amd64/initcpu.c projects/powernv/amd64/amd64/io.c projects/powernv/amd64/amd64/machdep.c projects/powernv/amd64/amd64/minidump_machdep.c projects/powernv/amd64/amd64/mp_machdep.c projects/powernv/amd64/amd64/prof_machdep.c projects/powernv/amd64/amd64/ptrace_machdep.c projects/powernv/amd64/amd64/support.S projects/powernv/amd64/amd64/trap.c projects/powernv/amd64/amd64/uma_machdep.c projects/powernv/amd64/cloudabi32/cloudabi32_sysvec.c projects/powernv/amd64/cloudabi64/cloudabi64_sysvec.c projects/powernv/amd64/conf/GENERIC projects/powernv/amd64/ia32/ia32_misc.c projects/powernv/amd64/ia32/ia32_reg.c projects/powernv/amd64/include/_bus.h projects/powernv/amd64/include/atomic.h projects/powernv/amd64/include/bus_dma.h projects/powernv/amd64/include/counter.h projects/powernv/amd64/include/gdb_machdep.h projects/powernv/amd64/include/intr_machdep.h projects/powernv/amd64/include/iodev.h projects/powernv/amd64/include/kdb.h projects/powernv/amd64/include/memdev.h projects/powernv/amd64/include/minidump.h projects/powernv/amd64/include/mp_watchdog.h projects/powernv/amd64/include/pc/bios.h projects/powernv/amd64/include/pcpu.h projects/powernv/amd64/include/pmc_mdep.h projects/powernv/amd64/include/ppireg.h projects/powernv/amd64/include/runq.h projects/powernv/amd64/include/sf_buf.h projects/powernv/amd64/include/timerreg.h projects/powernv/amd64/include/vm.h projects/powernv/amd64/include/vmm.h projects/powernv/amd64/include/vmm_dev.h projects/powernv/amd64/include/vmm_instruction_emul.h projects/powernv/amd64/linux/linux_sysvec.c projects/powernv/amd64/linux/syscalls.master projects/powernv/amd64/linux32/linux.h projects/powernv/amd64/linux32/linux32_dummy.c projects/powernv/amd64/linux32/linux32_machdep.c projects/powernv/amd64/linux32/linux32_sysvec.c projects/powernv/amd64/linux32/syscalls.master projects/powernv/amd64/pci/pci_cfgreg.c projects/powernv/amd64/vmm/amd/amdv.c projects/powernv/amd64/vmm/amd/amdvi_hw.c projects/powernv/amd64/vmm/amd/ivrs_drv.c projects/powernv/amd64/vmm/intel/ept.c projects/powernv/amd64/vmm/intel/ept.h projects/powernv/amd64/vmm/intel/vmcs.c projects/powernv/amd64/vmm/intel/vmcs.h projects/powernv/amd64/vmm/intel/vmx.c projects/powernv/amd64/vmm/intel/vmx.h projects/powernv/amd64/vmm/intel/vmx_controls.h projects/powernv/amd64/vmm/intel/vmx_cpufunc.h projects/powernv/amd64/vmm/intel/vmx_genassym.c projects/powernv/amd64/vmm/intel/vmx_msr.c projects/powernv/amd64/vmm/intel/vmx_msr.h projects/powernv/amd64/vmm/intel/vtd.c projects/powernv/amd64/vmm/io/iommu.c projects/powernv/amd64/vmm/io/iommu.h projects/powernv/amd64/vmm/io/ppt.c projects/powernv/amd64/vmm/io/ppt.h projects/powernv/amd64/vmm/io/vhpet.c projects/powernv/amd64/vmm/io/vhpet.h projects/powernv/amd64/vmm/io/vioapic.c projects/powernv/amd64/vmm/io/vioapic.h projects/powernv/amd64/vmm/io/vlapic.c projects/powernv/amd64/vmm/io/vlapic.h projects/powernv/amd64/vmm/io/vlapic_priv.h projects/powernv/amd64/vmm/vmm.c projects/powernv/amd64/vmm/vmm_dev.c projects/powernv/amd64/vmm/vmm_host.c projects/powernv/amd64/vmm/vmm_host.h projects/powernv/amd64/vmm/vmm_instruction_emul.c projects/powernv/amd64/vmm/vmm_ktr.h projects/powernv/amd64/vmm/vmm_lapic.c projects/powernv/amd64/vmm/vmm_lapic.h projects/powernv/amd64/vmm/vmm_mem.c projects/powernv/amd64/vmm/vmm_mem.h projects/powernv/amd64/vmm/vmm_stat.c projects/powernv/amd64/vmm/vmm_util.c projects/powernv/amd64/vmm/vmm_util.h projects/powernv/amd64/vmm/x86.c projects/powernv/amd64/vmm/x86.h projects/powernv/arm/allwinner/a10/a10_intc.c projects/powernv/arm/allwinner/a10_ehci.c projects/powernv/arm/allwinner/a10_sramc.c projects/powernv/arm/allwinner/a10_sramc.h projects/powernv/arm/allwinner/a20/a20_cpu_cfg.c projects/powernv/arm/allwinner/a20/a20_cpu_cfg.h projects/powernv/arm/allwinner/allwinner_pinctrl.h projects/powernv/arm/allwinner/aw_mp.c projects/powernv/arm/allwinner/aw_mp.h projects/powernv/arm/allwinner/aw_wdog.c projects/powernv/arm/allwinner/axp81x.c projects/powernv/arm/allwinner/clk/aw_pll.c projects/powernv/arm/allwinner/clkng/aw_ccung.c projects/powernv/arm/allwinner/clkng/ccu_h3.c projects/powernv/arm/allwinner/clkng/ccu_sun8i_r.c projects/powernv/arm/allwinner/files.allwinner projects/powernv/arm/allwinner/h3/h3_padconf.c projects/powernv/arm/allwinner/h3/h3_r_padconf.c projects/powernv/arm/allwinner/if_awg.c projects/powernv/arm/allwinner/if_emac.c projects/powernv/arm/allwinner/if_emacreg.h projects/powernv/arm/arm/bus_space_generic.c projects/powernv/arm/arm/busdma_machdep-v6.c projects/powernv/arm/arm/cpufunc.c projects/powernv/arm/arm/db_disasm.c projects/powernv/arm/arm/disassem.c projects/powernv/arm/arm/dump_machdep.c projects/powernv/arm/arm/elf_machdep.c projects/powernv/arm/arm/elf_trampoline.c projects/powernv/arm/arm/fiq.c projects/powernv/arm/arm/gdb_machdep.c projects/powernv/arm/arm/genassym.c projects/powernv/arm/arm/generic_timer.c projects/powernv/arm/arm/gic.c projects/powernv/arm/arm/intr.c projects/powernv/arm/arm/locore-v6.S projects/powernv/arm/arm/machdep.c projects/powernv/arm/arm/minidump_machdep.c projects/powernv/arm/arm/mp_machdep.c projects/powernv/arm/arm/mpcore_timer.c projects/powernv/arm/arm/physmem.c projects/powernv/arm/arm/pl190.c projects/powernv/arm/arm/pl310.c projects/powernv/arm/arm/pmap-v4.c projects/powernv/arm/arm/pmap-v6.c projects/powernv/arm/arm/sc_machdep.c projects/powernv/arm/arm/stack_machdep.c projects/powernv/arm/arm/stdatomic.c projects/powernv/arm/arm/undefined.c projects/powernv/arm/arm/vfp.c projects/powernv/arm/at91/at91.c projects/powernv/arm/at91/at91_aic.c projects/powernv/arm/at91/at91_aicreg.h projects/powernv/arm/at91/at91_cfata.c projects/powernv/arm/at91/at91_gpio.h projects/powernv/arm/at91/at91_machdep.c projects/powernv/arm/at91/at91_mci.c projects/powernv/arm/at91/at91_mcireg.h projects/powernv/arm/at91/at91_pdcreg.h projects/powernv/arm/at91/at91_pio.c projects/powernv/arm/at91/at91_pio_sam9g45.h projects/powernv/arm/at91/at91_pioreg.h projects/powernv/arm/at91/at91_piovar.h projects/powernv/arm/at91/at91_pit.c projects/powernv/arm/at91/at91_pitreg.h projects/powernv/arm/at91/at91_pmc.c projects/powernv/arm/at91/at91_pmcreg.h projects/powernv/arm/at91/at91_pmcvar.h projects/powernv/arm/at91/at91_rst.c projects/powernv/arm/at91/at91_rstreg.h projects/powernv/arm/at91/at91_rtc.c projects/powernv/arm/at91/at91_rtcreg.h projects/powernv/arm/at91/at91_sdramc.c projects/powernv/arm/at91/at91_shdwc.c projects/powernv/arm/at91/at91_smc.c projects/powernv/arm/at91/at91_smc.h projects/powernv/arm/at91/at91_spi.c projects/powernv/arm/at91/at91_spireg.h projects/powernv/arm/at91/at91_ssc.c projects/powernv/arm/at91/at91_sscreg.h projects/powernv/arm/at91/at91_st.c projects/powernv/arm/at91/at91_streg.h projects/powernv/arm/at91/at91_tcb.c projects/powernv/arm/at91/at91_twi.c projects/powernv/arm/at91/at91_twiio.h projects/powernv/arm/at91/at91_twireg.h projects/powernv/arm/at91/at91_usartreg.h projects/powernv/arm/at91/at91_wdt.c projects/powernv/arm/at91/at91_wdtreg.h projects/powernv/arm/at91/at91board.h projects/powernv/arm/at91/at91reg.h projects/powernv/arm/at91/at91rm9200.c projects/powernv/arm/at91/at91rm9200_devices.c projects/powernv/arm/at91/at91rm9200var.h projects/powernv/arm/at91/at91rm92reg.h projects/powernv/arm/at91/at91sam9260.c projects/powernv/arm/at91/at91sam9260reg.h projects/powernv/arm/at91/at91sam9g20.c projects/powernv/arm/at91/at91sam9g20reg.h projects/powernv/arm/at91/at91sam9g45.c projects/powernv/arm/at91/at91sam9g45reg.h projects/powernv/arm/at91/at91sam9x5.c projects/powernv/arm/at91/at91sam9x5reg.h projects/powernv/arm/at91/at91soc.c projects/powernv/arm/at91/at91soc.h projects/powernv/arm/at91/at91var.h projects/powernv/arm/at91/board_bwct.c projects/powernv/arm/at91/board_eb9200.c projects/powernv/arm/at91/board_ethernut5.c projects/powernv/arm/at91/board_hl200.c projects/powernv/arm/at91/board_hl201.c projects/powernv/arm/at91/board_kb920x.c projects/powernv/arm/at91/board_qila9g20.c projects/powernv/arm/at91/board_sam9260ek.c projects/powernv/arm/at91/board_sam9g20ek.c projects/powernv/arm/at91/board_sam9x25ek.c projects/powernv/arm/at91/board_sn9g45.c projects/powernv/arm/at91/board_tsc4370.c projects/powernv/arm/at91/if_ate.c projects/powernv/arm/at91/if_atereg.h projects/powernv/arm/at91/if_macb.c projects/powernv/arm/at91/uart_bus_at91usart.c projects/powernv/arm/at91/uart_cpu_at91usart.c projects/powernv/arm/at91/uart_dev_at91usart.c projects/powernv/arm/broadcom/bcm2835/bcm2835_bsc.c projects/powernv/arm/broadcom/bcm2835/bcm2835_bscreg.h projects/powernv/arm/broadcom/bcm2835/bcm2835_bscvar.h projects/powernv/arm/broadcom/bcm2835/bcm2835_cpufreq.c projects/powernv/arm/broadcom/bcm2835/bcm2835_dma.c projects/powernv/arm/broadcom/bcm2835/bcm2835_dma.h projects/powernv/arm/broadcom/bcm2835/bcm2835_fb.c projects/powernv/arm/broadcom/bcm2835/bcm2835_fbd.c projects/powernv/arm/broadcom/bcm2835/bcm2835_gpio.c projects/powernv/arm/broadcom/bcm2835/bcm2835_gpio.h projects/powernv/arm/broadcom/bcm2835/bcm2835_intr.c projects/powernv/arm/broadcom/bcm2835/bcm2835_machdep.c projects/powernv/arm/broadcom/bcm2835/bcm2835_mbox.c projects/powernv/arm/broadcom/bcm2835/bcm2835_mbox.h projects/powernv/arm/broadcom/bcm2835/bcm2835_sdhci.c projects/powernv/arm/broadcom/bcm2835/bcm2835_spi.c projects/powernv/arm/broadcom/bcm2835/bcm2835_spireg.h projects/powernv/arm/broadcom/bcm2835/bcm2835_spivar.h projects/powernv/arm/broadcom/bcm2835/bcm2835_systimer.c projects/powernv/arm/broadcom/bcm2835/bcm2835_vcbus.h projects/powernv/arm/broadcom/bcm2835/bcm2835_wdog.c projects/powernv/arm/broadcom/bcm2835/bcm2835_wdog.h projects/powernv/arm/cloudabi32/cloudabi32_sysvec.c projects/powernv/arm/conf/CRB projects/powernv/arm/conf/genboardid.awk projects/powernv/arm/freescale/fsl_ocotp.c projects/powernv/arm/freescale/fsl_ocotpreg.h projects/powernv/arm/freescale/fsl_ocotpvar.h projects/powernv/arm/freescale/imx/files.imx6 projects/powernv/arm/freescale/imx/imx51_ccm.c projects/powernv/arm/freescale/imx/imx51_ccmreg.h projects/powernv/arm/freescale/imx/imx51_ccmvar.h projects/powernv/arm/freescale/imx/imx51_dpllreg.h projects/powernv/arm/freescale/imx/imx51_ipuv3.c projects/powernv/arm/freescale/imx/imx51_ipuv3_fbd.c projects/powernv/arm/freescale/imx/imx51_ipuv3reg.h projects/powernv/arm/freescale/imx/imx51_machdep.c projects/powernv/arm/freescale/imx/imx51_sdmareg.h projects/powernv/arm/freescale/imx/imx51_ssireg.h projects/powernv/arm/freescale/imx/imx51_tzicreg.h projects/powernv/arm/freescale/imx/imx53_machdep.c projects/powernv/arm/freescale/imx/imx6_anatop.c projects/powernv/arm/freescale/imx/imx6_anatopreg.h projects/powernv/arm/freescale/imx/imx6_anatopvar.h projects/powernv/arm/freescale/imx/imx6_ccm.c projects/powernv/arm/freescale/imx/imx6_ccmreg.h projects/powernv/arm/freescale/imx/imx6_machdep.c projects/powernv/arm/freescale/imx/imx6_mp.c projects/powernv/arm/freescale/imx/imx6_pl310.c projects/powernv/arm/freescale/imx/imx6_usbphy.c projects/powernv/arm/freescale/imx/imx_gpt.c projects/powernv/arm/freescale/imx/imx_gptreg.h projects/powernv/arm/freescale/imx/imx_machdep.c projects/powernv/arm/freescale/imx/imx_machdep.h projects/powernv/arm/freescale/imx/imx_nop_usbphy.c projects/powernv/arm/freescale/imx/imx_wdog.c projects/powernv/arm/freescale/imx/imx_wdogreg.h projects/powernv/arm/freescale/imx/tzic.c projects/powernv/arm/freescale/vybrid/vf_anadig.c projects/powernv/arm/freescale/vybrid/vf_ccm.c projects/powernv/arm/freescale/vybrid/vf_common.h projects/powernv/arm/freescale/vybrid/vf_dcu4.c projects/powernv/arm/freescale/vybrid/vf_dmamux.c projects/powernv/arm/freescale/vybrid/vf_dmamux.h projects/powernv/arm/freescale/vybrid/vf_edma.c projects/powernv/arm/freescale/vybrid/vf_edma.h projects/powernv/arm/freescale/vybrid/vf_ehci.c projects/powernv/arm/freescale/vybrid/vf_gpio.c projects/powernv/arm/freescale/vybrid/vf_i2c.c projects/powernv/arm/freescale/vybrid/vf_iomuxc.c projects/powernv/arm/freescale/vybrid/vf_iomuxc.h projects/powernv/arm/freescale/vybrid/vf_machdep.c projects/powernv/arm/freescale/vybrid/vf_mscm.c projects/powernv/arm/freescale/vybrid/vf_nfc.c projects/powernv/arm/freescale/vybrid/vf_port.c projects/powernv/arm/freescale/vybrid/vf_port.h projects/powernv/arm/freescale/vybrid/vf_sai.c projects/powernv/arm/freescale/vybrid/vf_src.c projects/powernv/arm/freescale/vybrid/vf_src.h projects/powernv/arm/freescale/vybrid/vf_tcon.c projects/powernv/arm/freescale/vybrid/vf_uart.c projects/powernv/arm/include/_bus.h projects/powernv/arm/include/_inttypes.h projects/powernv/arm/include/_stdint.h projects/powernv/arm/include/armreg.h projects/powernv/arm/include/asmacros.h projects/powernv/arm/include/at91_gpio.h projects/powernv/arm/include/atags.h projects/powernv/arm/include/atomic.h projects/powernv/arm/include/blockio.h projects/powernv/arm/include/board.h projects/powernv/arm/include/bus.h projects/powernv/arm/include/bus_dma.h projects/powernv/arm/include/clock.h projects/powernv/arm/include/counter.h projects/powernv/arm/include/cpufunc.h projects/powernv/arm/include/disassem.h projects/powernv/arm/include/elf.h projects/powernv/arm/include/fdt.h projects/powernv/arm/include/fiq.h projects/powernv/arm/include/frame.h projects/powernv/arm/include/gdb_machdep.h projects/powernv/arm/include/intr.h projects/powernv/arm/include/kdb.h projects/powernv/arm/include/memdev.h projects/powernv/arm/include/metadata.h projects/powernv/arm/include/minidump.h projects/powernv/arm/include/ofw_machdep.h projects/powernv/arm/include/pcb.h projects/powernv/arm/include/pcpu.h projects/powernv/arm/include/physmem.h projects/powernv/arm/include/pl310.h projects/powernv/arm/include/pmc_mdep.h projects/powernv/arm/include/psl.h projects/powernv/arm/include/runq.h projects/powernv/arm/include/sc_machdep.h projects/powernv/arm/include/sf_buf.h projects/powernv/arm/include/stdarg.h projects/powernv/arm/include/sysarch.h projects/powernv/arm/include/sysreg.h projects/powernv/arm/include/ucontext.h projects/powernv/arm/include/undefined.h projects/powernv/arm/include/utrap.h projects/powernv/arm/include/vdso.h projects/powernv/arm/include/vfp.h projects/powernv/arm/include/vm.h projects/powernv/arm/lpc/if_lpe.c projects/powernv/arm/lpc/if_lpereg.h projects/powernv/arm/lpc/lpc_dmac.c projects/powernv/arm/lpc/lpc_fb.c projects/powernv/arm/lpc/lpc_gpio.c projects/powernv/arm/lpc/lpc_intc.c projects/powernv/arm/lpc/lpc_machdep.c projects/powernv/arm/lpc/lpc_mmc.c projects/powernv/arm/lpc/lpc_ohci.c projects/powernv/arm/lpc/lpc_pll.c projects/powernv/arm/lpc/lpc_pwr.c projects/powernv/arm/lpc/lpc_rtc.c projects/powernv/arm/lpc/lpc_spi.c projects/powernv/arm/lpc/lpc_timer.c projects/powernv/arm/lpc/lpcreg.h projects/powernv/arm/lpc/lpcvar.h projects/powernv/arm/lpc/ssd1289.c projects/powernv/arm/mv/armadaxp/armadaxp.c projects/powernv/arm/mv/armadaxp/armadaxp_mp.c projects/powernv/arm/mv/gpio.c projects/powernv/arm/mv/ic.c projects/powernv/arm/mv/mpic.c projects/powernv/arm/mv/mv_localbus.c projects/powernv/arm/mv/mv_machdep.c projects/powernv/arm/mv/mv_ts.c projects/powernv/arm/mv/mvvar.h projects/powernv/arm/mv/timer.c projects/powernv/arm/rockchip/rk30xx_gpio.c projects/powernv/arm/rockchip/rk30xx_grf.c projects/powernv/arm/rockchip/rk30xx_grf.h projects/powernv/arm/rockchip/rk30xx_machdep.c projects/powernv/arm/rockchip/rk30xx_pmu.c projects/powernv/arm/rockchip/rk30xx_pmu.h projects/powernv/arm/rockchip/rk30xx_wdog.c projects/powernv/arm/rockchip/rk30xx_wdog.h projects/powernv/arm/samsung/exynos/exynos5_machdep.c projects/powernv/arm/samsung/exynos/exynos5_mp.c projects/powernv/arm/ti/aintc.c projects/powernv/arm/ti/am335x/am335x_dmtimer.c projects/powernv/arm/ti/am335x/am335x_lcd.c projects/powernv/arm/ti/am335x/am335x_lcd.h projects/powernv/arm/ti/am335x/am335x_lcd_syscons.c projects/powernv/arm/ti/am335x/am335x_pmic.c projects/powernv/arm/ti/am335x/am335x_prcm.c projects/powernv/arm/ti/am335x/am335x_pwm.h projects/powernv/arm/ti/am335x/am335x_reg.h projects/powernv/arm/ti/am335x/am335x_scm.h projects/powernv/arm/ti/am335x/am335x_scm_padconf.c projects/powernv/arm/ti/am335x/am335x_usbss.c projects/powernv/arm/ti/cpsw/if_cpsw.c projects/powernv/arm/ti/cpsw/if_cpswreg.h projects/powernv/arm/ti/cpsw/if_cpswvar.h projects/powernv/arm/ti/omap4/omap4_l2cache.c projects/powernv/arm/ti/omap4/omap4_mp.c projects/powernv/arm/ti/omap4/omap4_prcm_clks.c projects/powernv/arm/ti/omap4/omap4_reg.h projects/powernv/arm/ti/omap4/omap4_scm_padconf.c projects/powernv/arm/ti/omap4/omap4_smc.h projects/powernv/arm/ti/omap4/pandaboard/pandaboard.c projects/powernv/arm/ti/ti_cpuid.c projects/powernv/arm/ti/ti_cpuid.h projects/powernv/arm/ti/ti_edma3.h projects/powernv/arm/ti/ti_gpio.c projects/powernv/arm/ti/ti_i2c.c projects/powernv/arm/ti/ti_i2c.h projects/powernv/arm/ti/ti_machdep.c projects/powernv/arm/ti/ti_mbox.c projects/powernv/arm/ti/ti_mbox.h projects/powernv/arm/ti/ti_prcm.c projects/powernv/arm/ti/ti_prcm.h projects/powernv/arm/ti/ti_pruss.c projects/powernv/arm/ti/ti_pruss.h projects/powernv/arm/ti/ti_scm.c projects/powernv/arm/ti/ti_scm.h projects/powernv/arm/ti/ti_sdhci.c projects/powernv/arm/ti/ti_sdma.c projects/powernv/arm/ti/ti_sdma.h projects/powernv/arm/ti/ti_sdmareg.h projects/powernv/arm/ti/ti_smc.h projects/powernv/arm/ti/tivar.h projects/powernv/arm/ti/twl/twl.c projects/powernv/arm/ti/twl/twl.h projects/powernv/arm/ti/twl/twl_clks.c projects/powernv/arm/ti/twl/twl_clks.h projects/powernv/arm/ti/twl/twl_vreg.c projects/powernv/arm/ti/twl/twl_vreg.h projects/powernv/arm/ti/usb/omap_ehci.c projects/powernv/arm/ti/usb/omap_usb.h projects/powernv/arm/versatile/pl050.c projects/powernv/arm/versatile/sp804.c projects/powernv/arm/versatile/versatile_clcd.c projects/powernv/arm/versatile/versatile_machdep.c projects/powernv/arm/versatile/versatile_pci.c projects/powernv/arm/versatile/versatile_sic.c projects/powernv/arm/xilinx/uart_dev_cdnc.c projects/powernv/arm/xilinx/zy7_devcfg.c projects/powernv/arm/xilinx/zy7_ehci.c projects/powernv/arm/xilinx/zy7_gpio.c projects/powernv/arm/xilinx/zy7_l2cache.c projects/powernv/arm/xilinx/zy7_machdep.c projects/powernv/arm/xilinx/zy7_reg.h projects/powernv/arm/xilinx/zy7_slcr.c projects/powernv/arm/xilinx/zy7_slcr.h projects/powernv/arm/xscale/i8134x/crb_machdep.c projects/powernv/arm/xscale/i8134x/i81342.c projects/powernv/arm/xscale/i8134x/i81342_mcu.c projects/powernv/arm/xscale/i8134x/i81342_pci.c projects/powernv/arm/xscale/i8134x/i81342_space.c projects/powernv/arm/xscale/i8134x/i81342reg.h projects/powernv/arm/xscale/i8134x/i81342var.h projects/powernv/arm/xscale/i8134x/iq81342_7seg.c projects/powernv/arm/xscale/i8134x/iq81342reg.h projects/powernv/arm/xscale/i8134x/iq81342var.h projects/powernv/arm/xscale/i8134x/obio.c projects/powernv/arm/xscale/i8134x/obiovar.h projects/powernv/arm/xscale/i8134x/uart_bus_i81342.c projects/powernv/arm/xscale/i8134x/uart_cpu_i81342.c projects/powernv/arm/xscale/ixp425/avila_ata.c projects/powernv/arm/xscale/ixp425/avila_gpio.c projects/powernv/arm/xscale/ixp425/avila_led.c projects/powernv/arm/xscale/ixp425/avila_machdep.c projects/powernv/arm/xscale/ixp425/cambria_exp_space.c projects/powernv/arm/xscale/ixp425/cambria_fled.c projects/powernv/arm/xscale/ixp425/cambria_gpio.c projects/powernv/arm/xscale/ixp425/cambria_led.c projects/powernv/arm/xscale/ixp425/if_npe.c projects/powernv/arm/xscale/ixp425/ixdp425_pci.c projects/powernv/arm/xscale/ixp425/ixdp425reg.h projects/powernv/arm/xscale/ixp425/ixp425.c projects/powernv/arm/xscale/ixp425/ixp425_a4x_space.c projects/powernv/arm/xscale/ixp425/ixp425_iic.c projects/powernv/arm/xscale/ixp425/ixp425_intr.h projects/powernv/arm/xscale/ixp425/ixp425_mem.c projects/powernv/arm/xscale/ixp425/ixp425_npe.c projects/powernv/arm/xscale/ixp425/ixp425_npereg.h projects/powernv/arm/xscale/ixp425/ixp425_npevar.h projects/powernv/arm/xscale/ixp425/ixp425_pci.c projects/powernv/arm/xscale/ixp425/ixp425_pci_space.c projects/powernv/arm/xscale/ixp425/ixp425_space.c projects/powernv/arm/xscale/ixp425/ixp425_timer.c projects/powernv/arm/xscale/ixp425/ixp425_wdog.c projects/powernv/arm/xscale/ixp425/ixp425reg.h projects/powernv/arm/xscale/ixp425/ixp425var.h projects/powernv/arm/xscale/ixp425/uart_bus_ixp425.c projects/powernv/arm/xscale/ixp425/uart_cpu_ixp425.c projects/powernv/arm/xscale/pxa/if_smc_smi.c projects/powernv/arm/xscale/pxa/pxa_gpio.c projects/powernv/arm/xscale/pxa/pxa_icu.c projects/powernv/arm/xscale/pxa/pxa_machdep.c projects/powernv/arm/xscale/pxa/pxa_obio.c projects/powernv/arm/xscale/pxa/pxa_smi.c projects/powernv/arm/xscale/pxa/pxa_space.c projects/powernv/arm/xscale/pxa/pxa_timer.c projects/powernv/arm/xscale/pxa/pxareg.h projects/powernv/arm/xscale/pxa/pxavar.h projects/powernv/arm/xscale/pxa/uart_bus_pxa.c projects/powernv/arm/xscale/pxa/uart_cpu_pxa.c projects/powernv/arm64/arm64/efirt_machdep.c projects/powernv/arm64/arm64/exception.S projects/powernv/arm64/arm64/gic_v3.c projects/powernv/arm64/arm64/gicv3_its.c projects/powernv/arm64/arm64/locore.S projects/powernv/arm64/arm64/machdep.c projects/powernv/arm64/arm64/pmap.c projects/powernv/arm64/arm64/trap.c projects/powernv/arm64/cloudabi64/cloudabi64_sysvec.c projects/powernv/arm64/conf/GENERIC projects/powernv/arm64/include/armreg.h projects/powernv/arm64/include/atomic.h projects/powernv/arm64/include/profile.h projects/powernv/arm64/include/stdarg.h projects/powernv/cam/ata/ata_all.c projects/powernv/cam/ata/ata_all.h projects/powernv/cam/ata/ata_da.c projects/powernv/cam/ata/ata_pmp.c projects/powernv/cam/ata/ata_xpt.c projects/powernv/cam/cam.c projects/powernv/cam/cam.h projects/powernv/cam/cam_ccb.h projects/powernv/cam/cam_compat.c projects/powernv/cam/cam_compat.h projects/powernv/cam/cam_debug.h projects/powernv/cam/cam_periph.c projects/powernv/cam/cam_periph.h projects/powernv/cam/cam_queue.c projects/powernv/cam/cam_queue.h projects/powernv/cam/cam_sim.c projects/powernv/cam/cam_sim.h projects/powernv/cam/cam_xpt.c projects/powernv/cam/cam_xpt.h projects/powernv/cam/cam_xpt_internal.h projects/powernv/cam/cam_xpt_periph.h projects/powernv/cam/cam_xpt_sim.h projects/powernv/cam/ctl/ctl.c projects/powernv/cam/ctl/ctl.h projects/powernv/cam/ctl/ctl_backend.c projects/powernv/cam/ctl/ctl_backend.h projects/powernv/cam/ctl/ctl_backend_block.c projects/powernv/cam/ctl/ctl_backend_ramdisk.c projects/powernv/cam/ctl/ctl_cmd_table.c projects/powernv/cam/ctl/ctl_debug.h projects/powernv/cam/ctl/ctl_error.c projects/powernv/cam/ctl/ctl_error.h projects/powernv/cam/ctl/ctl_frontend.c projects/powernv/cam/ctl/ctl_frontend.h projects/powernv/cam/ctl/ctl_frontend_cam_sim.c projects/powernv/cam/ctl/ctl_frontend_iscsi.c projects/powernv/cam/ctl/ctl_frontend_iscsi.h projects/powernv/cam/ctl/ctl_ha.h projects/powernv/cam/ctl/ctl_io.h projects/powernv/cam/ctl/ctl_ioctl.h projects/powernv/cam/ctl/ctl_private.h projects/powernv/cam/ctl/ctl_scsi_all.c projects/powernv/cam/ctl/ctl_scsi_all.h projects/powernv/cam/ctl/ctl_ser_table.c projects/powernv/cam/ctl/ctl_util.c projects/powernv/cam/ctl/ctl_util.h projects/powernv/cam/ctl/scsi_ctl.c projects/powernv/cam/mmc/mmc_da.c projects/powernv/cam/mmc/mmc_xpt.c projects/powernv/cam/nvme/nvme_da.c projects/powernv/cam/nvme/nvme_xpt.c projects/powernv/cam/scsi/scsi_all.c projects/powernv/cam/scsi/scsi_cd.c projects/powernv/cam/scsi/scsi_cd.h projects/powernv/cam/scsi/scsi_ch.c projects/powernv/cam/scsi/scsi_ch.h projects/powernv/cam/scsi/scsi_da.c projects/powernv/cam/scsi/scsi_dvcfg.h projects/powernv/cam/scsi/scsi_enc.c projects/powernv/cam/scsi/scsi_enc_internal.h projects/powernv/cam/scsi/scsi_enc_safte.c projects/powernv/cam/scsi/scsi_enc_ses.c projects/powernv/cam/scsi/scsi_low.c projects/powernv/cam/scsi/scsi_low.h projects/powernv/cam/scsi/scsi_pass.c projects/powernv/cam/scsi/scsi_pass.h projects/powernv/cam/scsi/scsi_pt.c projects/powernv/cam/scsi/scsi_pt.h projects/powernv/cam/scsi/scsi_sa.c projects/powernv/cam/scsi/scsi_sa.h projects/powernv/cam/scsi/scsi_sg.c projects/powernv/cam/scsi/scsi_targ_bh.c projects/powernv/cam/scsi/scsi_target.c projects/powernv/cam/scsi/scsi_targetio.h projects/powernv/cam/scsi/scsi_xpt.c projects/powernv/cam/scsi/smp_all.c projects/powernv/cam/scsi/smp_all.h projects/powernv/cddl/boot/zfs/zfssubr.c projects/powernv/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/powernv/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/powernv/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h projects/powernv/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c projects/powernv/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c projects/powernv/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/powernv/cddl/contrib/opensolaris/uts/common/sys/fasttrap_impl.h projects/powernv/cddl/contrib/opensolaris/uts/common/sys/sysmacros.h projects/powernv/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c projects/powernv/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c projects/powernv/cddl/dev/dtrace/amd64/dtrace_subr.c projects/powernv/cddl/dev/dtrace/dtrace_ioctl.c projects/powernv/cddl/dev/dtrace/i386/dtrace_subr.c projects/powernv/compat/freebsd32/freebsd32.h projects/powernv/compat/freebsd32/freebsd32_capability.c projects/powernv/compat/freebsd32/freebsd32_ipc.h projects/powernv/compat/freebsd32/freebsd32_misc.c projects/powernv/compat/freebsd32/freebsd32_misc.h projects/powernv/compat/freebsd32/freebsd32_signal.h projects/powernv/compat/freebsd32/freebsd32_util.h projects/powernv/compat/freebsd32/syscalls.master projects/powernv/compat/ia32/ia32_signal.h projects/powernv/compat/ia32/ia32_sysvec.c projects/powernv/compat/ia32/ia32_util.h projects/powernv/compat/linsysfs/linsysfs.c projects/powernv/compat/linux/linux_dtrace.h projects/powernv/compat/linux/linux_emul.c projects/powernv/compat/linux/linux_emul.h projects/powernv/compat/linux/linux_file.c projects/powernv/compat/linux/linux_file.h projects/powernv/compat/linux/linux_fork.c projects/powernv/compat/linux/linux_futex.c projects/powernv/compat/linux/linux_futex.h projects/powernv/compat/linux/linux_getcwd.c projects/powernv/compat/linux/linux_ioctl.c projects/powernv/compat/linux/linux_ioctl.h projects/powernv/compat/linux/linux_ipc.c projects/powernv/compat/linux/linux_ipc.h projects/powernv/compat/linux/linux_mib.c projects/powernv/compat/linux/linux_mib.h projects/powernv/compat/linux/linux_misc.c projects/powernv/compat/linux/linux_misc.h projects/powernv/compat/linux/linux_signal.c projects/powernv/compat/linux/linux_signal.h projects/powernv/compat/linux/linux_socket.c projects/powernv/compat/linux/linux_socket.h projects/powernv/compat/linux/linux_stats.c projects/powernv/compat/linux/linux_sysctl.c projects/powernv/compat/linux/linux_sysproto.h projects/powernv/compat/linux/linux_time.c projects/powernv/compat/linux/linux_uid16.c projects/powernv/compat/linux/linux_util.c projects/powernv/compat/linux/linux_util.h projects/powernv/compat/linuxkpi/common/src/linux_page.c projects/powernv/compat/linuxkpi/common/src/linux_rcu.c projects/powernv/compat/netbsd/dvcfg.h projects/powernv/conf/NOTES projects/powernv/conf/files projects/powernv/conf/files.arm64 projects/powernv/conf/files.i386 projects/powernv/conf/files.powerpc projects/powernv/conf/kern.post.mk projects/powernv/conf/ldscript.powerpc64 projects/powernv/conf/options projects/powernv/conf/options.arm projects/powernv/contrib/dev/acpica/changes.txt projects/powernv/contrib/dev/acpica/common/adisasm.c projects/powernv/contrib/dev/acpica/common/dmswitch.c projects/powernv/contrib/dev/acpica/common/dmtable.c projects/powernv/contrib/dev/acpica/common/dmtables.c projects/powernv/contrib/dev/acpica/common/dmtbdump.c projects/powernv/contrib/dev/acpica/compiler/aslcodegen.c projects/powernv/contrib/dev/acpica/compiler/aslcompile.c projects/powernv/contrib/dev/acpica/compiler/asldebug.c projects/powernv/contrib/dev/acpica/compiler/aslfiles.c projects/powernv/contrib/dev/acpica/compiler/asloptions.c projects/powernv/contrib/dev/acpica/compiler/aslparseop.c projects/powernv/contrib/dev/acpica/compiler/aslstartup.c projects/powernv/contrib/dev/acpica/compiler/aslsupport.l projects/powernv/contrib/dev/acpica/compiler/asltree.c projects/powernv/contrib/dev/acpica/compiler/aslutils.c projects/powernv/contrib/dev/acpica/compiler/cvcompiler.c projects/powernv/contrib/dev/acpica/compiler/cvdisasm.c projects/powernv/contrib/dev/acpica/compiler/cvparser.c projects/powernv/contrib/dev/acpica/compiler/dtcompile.c projects/powernv/contrib/dev/acpica/compiler/dttable1.c projects/powernv/contrib/dev/acpica/compiler/prscan.c projects/powernv/contrib/dev/acpica/components/debugger/dbfileio.c projects/powernv/contrib/dev/acpica/components/disassembler/dmwalk.c projects/powernv/contrib/dev/acpica/components/dispatcher/dspkginit.c projects/powernv/contrib/dev/acpica/components/executer/exdump.c projects/powernv/contrib/dev/acpica/components/hardware/hwvalid.c projects/powernv/contrib/dev/acpica/components/namespace/nsxfeval.c projects/powernv/contrib/dev/acpica/components/parser/psutils.c projects/powernv/contrib/dev/acpica/components/utilities/utdebug.c projects/powernv/contrib/dev/acpica/components/utilities/utnonansi.c projects/powernv/contrib/dev/acpica/components/utilities/utosi.c projects/powernv/contrib/dev/acpica/components/utilities/uttrack.c projects/powernv/contrib/dev/acpica/include/acexcep.h projects/powernv/contrib/dev/acpica/include/acglobal.h projects/powernv/contrib/dev/acpica/include/acpixf.h projects/powernv/contrib/dev/acpica/include/actypes.h projects/powernv/contrib/dev/acpica/include/acutils.h projects/powernv/contrib/dev/acpica/os_specific/service_layers/osgendbg.c projects/powernv/contrib/zstd/lib/common/bitstream.h projects/powernv/contrib/zstd/lib/common/zstd_internal.h projects/powernv/contrib/zstd/lib/compress/zstd_compress.h projects/powernv/contrib/zstd/programs/fileio.c projects/powernv/contrib/zstd/programs/zstdcli.c projects/powernv/ddb/db_access.c projects/powernv/ddb/db_access.h projects/powernv/ddb/db_break.c projects/powernv/ddb/db_break.h projects/powernv/ddb/db_capture.c projects/powernv/ddb/db_command.c projects/powernv/ddb/db_command.h projects/powernv/ddb/db_examine.c projects/powernv/ddb/db_expr.c projects/powernv/ddb/db_input.c projects/powernv/ddb/db_lex.c projects/powernv/ddb/db_lex.h projects/powernv/ddb/db_main.c projects/powernv/ddb/db_output.c projects/powernv/ddb/db_output.h projects/powernv/ddb/db_print.c projects/powernv/ddb/db_run.c projects/powernv/ddb/db_script.c projects/powernv/ddb/db_sym.c projects/powernv/ddb/db_sym.h projects/powernv/ddb/db_textdump.c projects/powernv/ddb/db_thread.c projects/powernv/ddb/db_variables.c projects/powernv/ddb/db_variables.h projects/powernv/ddb/db_watch.c projects/powernv/ddb/db_watch.h projects/powernv/ddb/db_write_cmd.c projects/powernv/dev/aac/aac.c projects/powernv/dev/aac/aac_cam.c projects/powernv/dev/aac/aac_debug.c projects/powernv/dev/aac/aac_disk.c projects/powernv/dev/aac/aac_linux.c projects/powernv/dev/aac/aac_pci.c projects/powernv/dev/aac/aac_tables.h projects/powernv/dev/aac/aacreg.h projects/powernv/dev/aac/aacvar.h projects/powernv/dev/aacraid/aacraid.c projects/powernv/dev/aacraid/aacraid_cam.c projects/powernv/dev/aacraid/aacraid_debug.c projects/powernv/dev/aacraid/aacraid_debug.h projects/powernv/dev/aacraid/aacraid_linux.c projects/powernv/dev/aacraid/aacraid_pci.c projects/powernv/dev/aacraid/aacraid_reg.h projects/powernv/dev/aacraid/aacraid_var.h projects/powernv/dev/acpica/acpi.c projects/powernv/dev/acpica/acpi_cpu.c projects/powernv/dev/adb/adb.h projects/powernv/dev/adb/adb_bus.c projects/powernv/dev/adb/adb_buttons.c projects/powernv/dev/adb/adb_kbd.c projects/powernv/dev/adb/adb_mouse.c projects/powernv/dev/adb/adbvar.h projects/powernv/dev/adlink/adlink.c projects/powernv/dev/advansys/adv_isa.c projects/powernv/dev/advansys/adv_pci.c projects/powernv/dev/advansys/advansys.c projects/powernv/dev/advansys/advansys.h projects/powernv/dev/advansys/advlib.c projects/powernv/dev/advansys/advlib.h projects/powernv/dev/advansys/adw_pci.c projects/powernv/dev/advansys/adwcam.c projects/powernv/dev/advansys/adwlib.c projects/powernv/dev/advansys/adwlib.h projects/powernv/dev/advansys/adwvar.h projects/powernv/dev/ae/if_ae.c projects/powernv/dev/ae/if_aereg.h projects/powernv/dev/ae/if_aevar.h projects/powernv/dev/age/if_age.c projects/powernv/dev/age/if_agereg.h projects/powernv/dev/age/if_agevar.h projects/powernv/dev/agp/agp.c projects/powernv/dev/agp/agp_ali.c projects/powernv/dev/agp/agp_amd.c projects/powernv/dev/agp/agp_amd64.c projects/powernv/dev/agp/agp_apple.c projects/powernv/dev/agp/agp_ati.c projects/powernv/dev/agp/agp_i810.c projects/powernv/dev/agp/agp_i810.h projects/powernv/dev/agp/agp_intel.c projects/powernv/dev/agp/agp_nvidia.c projects/powernv/dev/agp/agp_sis.c projects/powernv/dev/agp/agp_via.c projects/powernv/dev/agp/agppriv.h projects/powernv/dev/agp/agpreg.h projects/powernv/dev/agp/agpvar.h projects/powernv/dev/aha/aha.c projects/powernv/dev/aha/aha_isa.c projects/powernv/dev/aha/ahareg.h projects/powernv/dev/ahci/ahci.c projects/powernv/dev/ahci/ahci.h projects/powernv/dev/ahci/ahci_pci.c projects/powernv/dev/ahci/ahciem.c projects/powernv/dev/aic/aic.c projects/powernv/dev/aic/aic6360reg.h projects/powernv/dev/aic/aic_isa.c projects/powernv/dev/aic/aic_pccard.c projects/powernv/dev/aic/aicvar.h projects/powernv/dev/aic7xxx/ahc_isa.c projects/powernv/dev/aic7xxx/aic7770.c projects/powernv/dev/aic7xxx/aic79xx.c projects/powernv/dev/aic7xxx/aic79xx.h projects/powernv/dev/aic7xxx/aic79xx_inline.h projects/powernv/dev/aic7xxx/aic79xx_pci.c projects/powernv/dev/aic7xxx/aic7xxx.c projects/powernv/dev/aic7xxx/aic7xxx.h projects/powernv/dev/aic7xxx/aic7xxx_93cx6.h projects/powernv/dev/aic7xxx/aic7xxx_inline.h projects/powernv/dev/aic7xxx/aic7xxx_pci.c projects/powernv/dev/aic7xxx/aicasm/aicasm.c projects/powernv/dev/aic7xxx/aicasm/aicasm.h projects/powernv/dev/aic7xxx/aicasm/aicasm_gram.y projects/powernv/dev/aic7xxx/aicasm/aicasm_insformat.h projects/powernv/dev/aic7xxx/aicasm/aicasm_macro_gram.y projects/powernv/dev/aic7xxx/aicasm/aicasm_macro_scan.l projects/powernv/dev/aic7xxx/aicasm/aicasm_scan.l projects/powernv/dev/aic7xxx/aicasm/aicasm_symbol.c projects/powernv/dev/aic7xxx/aicasm/aicasm_symbol.h projects/powernv/dev/al_eth/al_eth.c projects/powernv/dev/alc/if_alc.c projects/powernv/dev/alc/if_alcreg.h projects/powernv/dev/alc/if_alcvar.h projects/powernv/dev/ale/if_ale.c projects/powernv/dev/ale/if_alereg.h projects/powernv/dev/ale/if_alevar.h projects/powernv/dev/altera/atse/a_api.h projects/powernv/dev/altera/atse/if_atse.c projects/powernv/dev/altera/atse/if_atse_fdt.c projects/powernv/dev/altera/atse/if_atse_nexus.c projects/powernv/dev/altera/atse/if_atsereg.h projects/powernv/dev/altera/avgen/altera_avgen.c projects/powernv/dev/altera/avgen/altera_avgen.h projects/powernv/dev/altera/avgen/altera_avgen_fdt.c projects/powernv/dev/altera/avgen/altera_avgen_nexus.c projects/powernv/dev/altera/jtag_uart/altera_jtag_uart.h projects/powernv/dev/altera/jtag_uart/altera_jtag_uart_cons.c projects/powernv/dev/altera/jtag_uart/altera_jtag_uart_fdt.c projects/powernv/dev/altera/jtag_uart/altera_jtag_uart_nexus.c projects/powernv/dev/altera/jtag_uart/altera_jtag_uart_tty.c projects/powernv/dev/altera/sdcard/altera_sdcard.c projects/powernv/dev/altera/sdcard/altera_sdcard.h projects/powernv/dev/altera/sdcard/altera_sdcard_disk.c projects/powernv/dev/altera/sdcard/altera_sdcard_fdt.c projects/powernv/dev/altera/sdcard/altera_sdcard_io.c projects/powernv/dev/altera/sdcard/altera_sdcard_nexus.c projects/powernv/dev/amdsbwd/amdsbwd.c projects/powernv/dev/amdtemp/amdtemp.c projects/powernv/dev/amr/amr.c projects/powernv/dev/amr/amr_cam.c projects/powernv/dev/amr/amr_disk.c projects/powernv/dev/amr/amr_linux.c projects/powernv/dev/amr/amr_pci.c projects/powernv/dev/amr/amr_tables.h projects/powernv/dev/amr/amrio.h projects/powernv/dev/amr/amrreg.h projects/powernv/dev/amr/amrvar.h projects/powernv/dev/an/if_an_isa.c projects/powernv/dev/arcmsr/arcmsr.c projects/powernv/dev/arcmsr/arcmsr.h projects/powernv/dev/asmc/asmc.c projects/powernv/dev/asmc/asmcvar.h projects/powernv/dev/ata/ata-all.c projects/powernv/dev/ata/ata-all.h projects/powernv/dev/ata/ata-card.c projects/powernv/dev/ata/ata-dma.c projects/powernv/dev/ata/ata-isa.c projects/powernv/dev/ata/ata-lowlevel.c projects/powernv/dev/ata/ata-pci.c projects/powernv/dev/ata/ata-pci.h projects/powernv/dev/ata/ata-sata.c projects/powernv/dev/ata/chipsets/ata-acard.c projects/powernv/dev/ata/chipsets/ata-acerlabs.c projects/powernv/dev/ata/chipsets/ata-amd.c projects/powernv/dev/ata/chipsets/ata-ati.c projects/powernv/dev/ata/chipsets/ata-cenatek.c projects/powernv/dev/ata/chipsets/ata-cypress.c projects/powernv/dev/ata/chipsets/ata-cyrix.c projects/powernv/dev/ata/chipsets/ata-fsl.c projects/powernv/dev/ata/chipsets/ata-highpoint.c projects/powernv/dev/ata/chipsets/ata-intel.c projects/powernv/dev/ata/chipsets/ata-ite.c projects/powernv/dev/ata/chipsets/ata-jmicron.c projects/powernv/dev/ata/chipsets/ata-marvell.c projects/powernv/dev/ata/chipsets/ata-micron.c projects/powernv/dev/ata/chipsets/ata-national.c projects/powernv/dev/ata/chipsets/ata-netcell.c projects/powernv/dev/ata/chipsets/ata-nvidia.c projects/powernv/dev/ata/chipsets/ata-promise.c projects/powernv/dev/ata/chipsets/ata-serverworks.c projects/powernv/dev/ata/chipsets/ata-siliconimage.c projects/powernv/dev/ata/chipsets/ata-sis.c projects/powernv/dev/ata/chipsets/ata-via.c projects/powernv/dev/ath/ah_osdep.c projects/powernv/dev/ath/ah_osdep.h projects/powernv/dev/ath/ath_dfs/null/dfs_null.c projects/powernv/dev/ath/ath_hal/ah.c projects/powernv/dev/ath/ath_hal/ah.h projects/powernv/dev/ath/ath_hal/ah_btcoex.h projects/powernv/dev/ath/ath_hal/ah_debug.h projects/powernv/dev/ath/ath_hal/ah_decode.h projects/powernv/dev/ath/ath_hal/ah_desc.h projects/powernv/dev/ath/ath_hal/ah_devid.h projects/powernv/dev/ath/ath_hal/ah_diagcodes.h projects/powernv/dev/ath/ath_hal/ah_eeprom.h projects/powernv/dev/ath/ath_hal/ah_eeprom_9287.c projects/powernv/dev/ath/ath_hal/ah_eeprom_9287.h projects/powernv/dev/ath/ath_hal/ah_eeprom_v1.c projects/powernv/dev/ath/ath_hal/ah_eeprom_v1.h projects/powernv/dev/ath/ath_hal/ah_eeprom_v14.c projects/powernv/dev/ath/ath_hal/ah_eeprom_v14.h projects/powernv/dev/ath/ath_hal/ah_eeprom_v3.c projects/powernv/dev/ath/ath_hal/ah_eeprom_v3.h projects/powernv/dev/ath/ath_hal/ah_eeprom_v4k.c projects/powernv/dev/ath/ath_hal/ah_eeprom_v4k.h projects/powernv/dev/ath/ath_hal/ah_internal.h projects/powernv/dev/ath/ath_hal/ah_regdomain.c projects/powernv/dev/ath/ath_hal/ah_regdomain.h projects/powernv/dev/ath/ath_hal/ah_regdomain/ah_rd_ctry.h projects/powernv/dev/ath/ath_hal/ah_regdomain/ah_rd_domains.h projects/powernv/dev/ath/ath_hal/ah_regdomain/ah_rd_freqbands.h projects/powernv/dev/ath/ath_hal/ah_regdomain/ah_rd_regenum.h projects/powernv/dev/ath/ath_hal/ah_regdomain/ah_rd_regmap.h projects/powernv/dev/ath/ath_hal/ah_soc.h projects/powernv/dev/ath/ath_hal/ar5210/ar5210.h projects/powernv/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/powernv/dev/ath/ath_hal/ar5210/ar5210_beacon.c projects/powernv/dev/ath/ath_hal/ar5210/ar5210_interrupts.c projects/powernv/dev/ath/ath_hal/ar5210/ar5210_keycache.c projects/powernv/dev/ath/ath_hal/ar5210/ar5210_misc.c projects/powernv/dev/ath/ath_hal/ar5210/ar5210_phy.c projects/powernv/dev/ath/ath_hal/ar5210/ar5210_power.c projects/powernv/dev/ath/ath_hal/ar5210/ar5210_recv.c projects/powernv/dev/ath/ath_hal/ar5210/ar5210_reset.c projects/powernv/dev/ath/ath_hal/ar5210/ar5210_xmit.c projects/powernv/dev/ath/ath_hal/ar5210/ar5210desc.h projects/powernv/dev/ath/ath_hal/ar5210/ar5210phy.h projects/powernv/dev/ath/ath_hal/ar5210/ar5210reg.h projects/powernv/dev/ath/ath_hal/ar5211/ar5211.h projects/powernv/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/powernv/dev/ath/ath_hal/ar5211/ar5211_beacon.c projects/powernv/dev/ath/ath_hal/ar5211/ar5211_interrupts.c projects/powernv/dev/ath/ath_hal/ar5211/ar5211_keycache.c projects/powernv/dev/ath/ath_hal/ar5211/ar5211_misc.c projects/powernv/dev/ath/ath_hal/ar5211/ar5211_phy.c projects/powernv/dev/ath/ath_hal/ar5211/ar5211_power.c projects/powernv/dev/ath/ath_hal/ar5211/ar5211_recv.c projects/powernv/dev/ath/ath_hal/ar5211/ar5211_reset.c projects/powernv/dev/ath/ath_hal/ar5211/ar5211_xmit.c projects/powernv/dev/ath/ath_hal/ar5211/ar5211desc.h projects/powernv/dev/ath/ath_hal/ar5211/ar5211phy.h projects/powernv/dev/ath/ath_hal/ar5211/ar5211reg.h projects/powernv/dev/ath/ath_hal/ar5212/ar2316.c projects/powernv/dev/ath/ath_hal/ar5212/ar2317.c projects/powernv/dev/ath/ath_hal/ar5212/ar2413.c projects/powernv/dev/ath/ath_hal/ar5212/ar2425.c projects/powernv/dev/ath/ath_hal/ar5212/ar5111.c projects/powernv/dev/ath/ath_hal/ar5212/ar5112.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212.h projects/powernv/dev/ath/ath_hal/ar5212/ar5212_ani.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_beacon.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_eeprom.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_gpio.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_interrupts.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_keycache.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_misc.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_phy.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_power.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_recv.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_reset.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_rfgain.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212_xmit.c projects/powernv/dev/ath/ath_hal/ar5212/ar5212desc.h projects/powernv/dev/ath/ath_hal/ar5212/ar5212phy.h projects/powernv/dev/ath/ath_hal/ar5212/ar5212reg.h projects/powernv/dev/ath/ath_hal/ar5212/ar5311reg.h projects/powernv/dev/ath/ath_hal/ar5212/ar5413.c projects/powernv/dev/ath/ath_hal/ar5312/ar5312.h projects/powernv/dev/ath/ath_hal/ar5312/ar5312_attach.c projects/powernv/dev/ath/ath_hal/ar5312/ar5312_eeprom.c projects/powernv/dev/ath/ath_hal/ar5312/ar5312_gpio.c projects/powernv/dev/ath/ath_hal/ar5312/ar5312_interrupts.c projects/powernv/dev/ath/ath_hal/ar5312/ar5312_misc.c projects/powernv/dev/ath/ath_hal/ar5312/ar5312_power.c projects/powernv/dev/ath/ath_hal/ar5312/ar5312_reset.c projects/powernv/dev/ath/ath_hal/ar5312/ar5312phy.h projects/powernv/dev/ath/ath_hal/ar5312/ar5312reg.h projects/powernv/dev/ath/ath_hal/ar5312/ar5315_gpio.c projects/powernv/dev/ath/ath_hal/ar5416/ar2133.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416.h projects/powernv/dev/ath/ath_hal/ar5416/ar5416_ani.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_beacon.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_btcoex.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_btcoex.h projects/powernv/dev/ath/ath_hal/ar5416/ar5416_cal.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_cal.h projects/powernv/dev/ath/ath_hal/ar5416/ar5416_cal_adcdc.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_cal_adcgain.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_cal_iq.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_eeprom.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_gpio.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_interrupts.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_keycache.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_misc.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_phy.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_power.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_radar.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_recv.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_spectral.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416_xmit.c projects/powernv/dev/ath/ath_hal/ar5416/ar5416desc.h projects/powernv/dev/ath/ath_hal/ar5416/ar5416phy.h projects/powernv/dev/ath/ath_hal/ar5416/ar5416reg.h projects/powernv/dev/ath/ath_hal/ar9001/ar9130_attach.c projects/powernv/dev/ath/ath_hal/ar9001/ar9130_eeprom.c projects/powernv/dev/ath/ath_hal/ar9001/ar9130_eeprom.h projects/powernv/dev/ath/ath_hal/ar9001/ar9130_phy.c projects/powernv/dev/ath/ath_hal/ar9001/ar9130_phy.h projects/powernv/dev/ath/ath_hal/ar9001/ar9130reg.h projects/powernv/dev/ath/ath_hal/ar9001/ar9160_attach.c projects/powernv/dev/ath/ath_hal/ar9002/ar9002phy.h projects/powernv/dev/ath/ath_hal/ar9002/ar9280.c projects/powernv/dev/ath/ath_hal/ar9002/ar9280.h projects/powernv/dev/ath/ath_hal/ar9002/ar9280_attach.c projects/powernv/dev/ath/ath_hal/ar9002/ar9280_olc.c projects/powernv/dev/ath/ath_hal/ar9002/ar9280_olc.h projects/powernv/dev/ath/ath_hal/ar9002/ar9285.c projects/powernv/dev/ath/ath_hal/ar9002/ar9285.h projects/powernv/dev/ath/ath_hal/ar9002/ar9285_attach.c projects/powernv/dev/ath/ath_hal/ar9002/ar9285_btcoex.c projects/powernv/dev/ath/ath_hal/ar9002/ar9285_cal.c projects/powernv/dev/ath/ath_hal/ar9002/ar9285_cal.h projects/powernv/dev/ath/ath_hal/ar9002/ar9285_diversity.c projects/powernv/dev/ath/ath_hal/ar9002/ar9285_diversity.h projects/powernv/dev/ath/ath_hal/ar9002/ar9285_phy.c projects/powernv/dev/ath/ath_hal/ar9002/ar9285_phy.h projects/powernv/dev/ath/ath_hal/ar9002/ar9285_reset.c projects/powernv/dev/ath/ath_hal/ar9002/ar9285an.h projects/powernv/dev/ath/ath_hal/ar9002/ar9285phy.h projects/powernv/dev/ath/ath_hal/ar9002/ar9287.c projects/powernv/dev/ath/ath_hal/ar9002/ar9287.h projects/powernv/dev/ath/ath_hal/ar9002/ar9287_attach.c projects/powernv/dev/ath/ath_hal/ar9002/ar9287_cal.c projects/powernv/dev/ath/ath_hal/ar9002/ar9287_cal.h projects/powernv/dev/ath/ath_hal/ar9002/ar9287_olc.c projects/powernv/dev/ath/ath_hal/ar9002/ar9287_olc.h projects/powernv/dev/ath/ath_hal/ar9002/ar9287_reset.c projects/powernv/dev/ath/ath_hal/ar9002/ar9287_reset.h projects/powernv/dev/ath/ath_hal/ar9002/ar9287an.h projects/powernv/dev/ath/ath_hal/ar9002/ar9287phy.h projects/powernv/dev/ath/ath_hal/ar9003/ar9300_btcoex.h projects/powernv/dev/ath/ath_hal/ar9003/ar9300_devid.h projects/powernv/dev/ath/ath_rate/amrr/amrr.c projects/powernv/dev/ath/ath_rate/amrr/amrr.h projects/powernv/dev/ath/ath_rate/onoe/onoe.c projects/powernv/dev/ath/ath_rate/onoe/onoe.h projects/powernv/dev/ath/ath_rate/sample/sample.c projects/powernv/dev/ath/ath_rate/sample/sample.h projects/powernv/dev/ath/ath_rate/sample/tx_schedules.h projects/powernv/dev/ath/if_ath.c projects/powernv/dev/ath/if_ath_ahb.c projects/powernv/dev/ath/if_ath_alq.c projects/powernv/dev/ath/if_ath_alq.h projects/powernv/dev/ath/if_ath_beacon.c projects/powernv/dev/ath/if_ath_beacon.h projects/powernv/dev/ath/if_ath_btcoex.c projects/powernv/dev/ath/if_ath_btcoex.h projects/powernv/dev/ath/if_ath_debug.c projects/powernv/dev/ath/if_ath_debug.h projects/powernv/dev/ath/if_ath_keycache.c projects/powernv/dev/ath/if_ath_keycache.h projects/powernv/dev/ath/if_ath_led.c projects/powernv/dev/ath/if_ath_led.h projects/powernv/dev/ath/if_ath_lna_div.c projects/powernv/dev/ath/if_ath_lna_div.h projects/powernv/dev/ath/if_ath_misc.h projects/powernv/dev/ath/if_ath_pci.c projects/powernv/dev/ath/if_ath_rx.c projects/powernv/dev/ath/if_ath_rx.h projects/powernv/dev/ath/if_ath_rx_edma.c projects/powernv/dev/ath/if_ath_rx_edma.h projects/powernv/dev/ath/if_ath_spectral.c projects/powernv/dev/ath/if_ath_spectral.h projects/powernv/dev/ath/if_ath_sysctl.c projects/powernv/dev/ath/if_ath_sysctl.h projects/powernv/dev/ath/if_ath_tdma.c projects/powernv/dev/ath/if_ath_tdma.h projects/powernv/dev/ath/if_ath_tsf.h projects/powernv/dev/ath/if_ath_tx.c projects/powernv/dev/ath/if_ath_tx.h projects/powernv/dev/ath/if_ath_tx_edma.c projects/powernv/dev/ath/if_ath_tx_edma.h projects/powernv/dev/ath/if_ath_tx_ht.c projects/powernv/dev/ath/if_ath_tx_ht.h projects/powernv/dev/ath/if_athdfs.h projects/powernv/dev/ath/if_athioctl.h projects/powernv/dev/ath/if_athrate.h projects/powernv/dev/ath/if_athvar.h projects/powernv/dev/atkbdc/atkbd.c projects/powernv/dev/atkbdc/atkbd_atkbdc.c projects/powernv/dev/atkbdc/atkbdc.c projects/powernv/dev/atkbdc/atkbdc_ebus.c projects/powernv/dev/atkbdc/atkbdc_isa.c projects/powernv/dev/atkbdc/atkbdc_subr.c projects/powernv/dev/atkbdc/atkbdc_subr.h projects/powernv/dev/atkbdc/atkbdcreg.h projects/powernv/dev/atkbdc/atkbdreg.h projects/powernv/dev/auxio/auxio.c projects/powernv/dev/auxio/auxioreg.h projects/powernv/dev/axgbe/xgbe-drv.c projects/powernv/dev/axgbe/xgbe-mdio.c projects/powernv/dev/bfe/if_bfe.c projects/powernv/dev/bfe/if_bfereg.h projects/powernv/dev/bhnd/bcma/bcma.c projects/powernv/dev/bhnd/bcma/bcma.h projects/powernv/dev/bhnd/bcma/bcma_bhndb.c projects/powernv/dev/bhnd/bcma/bcma_dmp.h projects/powernv/dev/bhnd/bcma/bcma_erom.c projects/powernv/dev/bhnd/bcma/bcma_eromreg.h projects/powernv/dev/bhnd/bcma/bcma_eromvar.h projects/powernv/dev/bhnd/bcma/bcma_subr.c projects/powernv/dev/bhnd/bcma/bcmavar.h projects/powernv/dev/bhnd/bhnd.c projects/powernv/dev/bhnd/bhnd.h projects/powernv/dev/bhnd/bhnd_bus_if.m projects/powernv/dev/bhnd/bhnd_debug.h projects/powernv/dev/bhnd/bhnd_erom.c projects/powernv/dev/bhnd/bhnd_erom.h projects/powernv/dev/bhnd/bhnd_erom_types.h projects/powernv/dev/bhnd/bhnd_eromvar.h projects/powernv/dev/bhnd/bhnd_ids.h projects/powernv/dev/bhnd/bhnd_match.h projects/powernv/dev/bhnd/bhnd_private.h projects/powernv/dev/bhnd/bhnd_subr.c projects/powernv/dev/bhnd/bhnd_types.h projects/powernv/dev/bhnd/bhndb/bhndb.c projects/powernv/dev/bhnd/bhndb/bhndb.h projects/powernv/dev/bhnd/bhndb/bhndb_hwdata.c projects/powernv/dev/bhnd/bhndb/bhndb_pci.c projects/powernv/dev/bhnd/bhndb/bhndb_pci_hwdata.c projects/powernv/dev/bhnd/bhndb/bhndb_pcireg.h projects/powernv/dev/bhnd/bhndb/bhndb_private.h projects/powernv/dev/bhnd/bhndb/bhndb_subr.c projects/powernv/dev/bhnd/bhndb/bhndbvar.h projects/powernv/dev/bhnd/bhndreg.h projects/powernv/dev/bhnd/bhndvar.h projects/powernv/dev/bhnd/cores/chipc/bhnd_pmu_chipc.c projects/powernv/dev/bhnd/cores/chipc/bhnd_sprom_chipc.c projects/powernv/dev/bhnd/cores/chipc/chipc.c projects/powernv/dev/bhnd/cores/chipc/chipc.h projects/powernv/dev/bhnd/cores/chipc/chipc_cfi.c projects/powernv/dev/bhnd/cores/chipc/chipc_gpio.c projects/powernv/dev/bhnd/cores/chipc/chipc_gpiovar.h projects/powernv/dev/bhnd/cores/chipc/chipc_private.h projects/powernv/dev/bhnd/cores/chipc/chipc_slicer.c projects/powernv/dev/bhnd/cores/chipc/chipc_slicer.h projects/powernv/dev/bhnd/cores/chipc/chipc_spi.c projects/powernv/dev/bhnd/cores/chipc/chipc_spi.h projects/powernv/dev/bhnd/cores/chipc/chipc_subr.c projects/powernv/dev/bhnd/cores/chipc/chipcreg.h projects/powernv/dev/bhnd/cores/chipc/chipcvar.h projects/powernv/dev/bhnd/cores/pci/bhnd_pci.c projects/powernv/dev/bhnd/cores/pci/bhnd_pci_hostb.c projects/powernv/dev/bhnd/cores/pci/bhnd_pci_hostbvar.h projects/powernv/dev/bhnd/cores/pci/bhnd_pcib.c projects/powernv/dev/bhnd/cores/pci/bhnd_pcibvar.h projects/powernv/dev/bhnd/cores/pci/bhnd_pcireg.h projects/powernv/dev/bhnd/cores/pci/bhnd_pcivar.h projects/powernv/dev/bhnd/cores/pcie2/bhnd_pcie2.c projects/powernv/dev/bhnd/cores/pcie2/bhnd_pcie2_hostb.c projects/powernv/dev/bhnd/cores/pcie2/bhnd_pcie2_hostbvar.h projects/powernv/dev/bhnd/cores/pcie2/bhnd_pcie2_reg.h projects/powernv/dev/bhnd/cores/pcie2/bhnd_pcie2_var.h projects/powernv/dev/bhnd/cores/pcie2/bhnd_pcie2b.c projects/powernv/dev/bhnd/cores/pcie2/bhnd_pcie2b_var.h projects/powernv/dev/bhnd/cores/pmu/bhnd_pmu.c projects/powernv/dev/bhnd/cores/pmu/bhnd_pmu.h projects/powernv/dev/bhnd/cores/pmu/bhnd_pmu_core.c projects/powernv/dev/bhnd/cores/pmu/bhnd_pmu_private.h projects/powernv/dev/bhnd/cores/pmu/bhnd_pmu_subr.c projects/powernv/dev/bhnd/cores/pmu/bhnd_pmu_types.h projects/powernv/dev/bhnd/cores/pmu/bhnd_pmureg.h projects/powernv/dev/bhnd/cores/pmu/bhnd_pmuvar.h projects/powernv/dev/bhnd/cores/usb/bhnd_ehci.c projects/powernv/dev/bhnd/cores/usb/bhnd_ohci.c projects/powernv/dev/bhnd/cores/usb/bhnd_usb.c projects/powernv/dev/bhnd/cores/usb/bhnd_usbvar.h projects/powernv/dev/bhnd/nvram/bhnd_nvram_data_sprom.c projects/powernv/dev/bhnd/nvram/bhnd_nvram_store_subr.c projects/powernv/dev/bhnd/nvram/bhnd_nvram_subr.c projects/powernv/dev/bhnd/nvram/nvram_map projects/powernv/dev/bhnd/siba/siba.c projects/powernv/dev/bhnd/siba/siba_bhndb.c projects/powernv/dev/bhnd/siba/siba_subr.c projects/powernv/dev/bhnd/siba/sibavar.h projects/powernv/dev/bhnd/tools/bus_macro.sh projects/powernv/dev/bktr/bktr_audio.c projects/powernv/dev/bktr/bktr_audio.h projects/powernv/dev/bktr/bktr_card.c projects/powernv/dev/bktr/bktr_card.h projects/powernv/dev/bktr/bktr_core.c projects/powernv/dev/bktr/bktr_core.h projects/powernv/dev/bktr/bktr_i2c.c projects/powernv/dev/bktr/bktr_i2c.h projects/powernv/dev/bktr/bktr_mem.c projects/powernv/dev/bktr/bktr_mem.h projects/powernv/dev/bktr/bktr_os.c projects/powernv/dev/bktr/bktr_os.h projects/powernv/dev/bktr/bktr_reg.h projects/powernv/dev/bktr/bktr_tuner.c projects/powernv/dev/bktr/bktr_tuner.h projects/powernv/dev/bktr/ioctl_meteor.h projects/powernv/dev/bktr/msp34xx.c projects/powernv/dev/bm/if_bm.c projects/powernv/dev/bm/if_bmreg.h projects/powernv/dev/bm/if_bmvar.h projects/powernv/dev/bnxt/bnxt.h projects/powernv/dev/bnxt/bnxt_hwrm.c projects/powernv/dev/bnxt/bnxt_hwrm.h projects/powernv/dev/bnxt/bnxt_sysctl.c projects/powernv/dev/bnxt/if_bnxt.c projects/powernv/dev/buslogic/bt.c projects/powernv/dev/buslogic/bt_isa.c projects/powernv/dev/buslogic/bt_pci.c projects/powernv/dev/buslogic/btreg.h projects/powernv/dev/bvm/bvm_console.c projects/powernv/dev/bvm/bvm_dbg.c projects/powernv/dev/bwi/bitops.h projects/powernv/dev/bwi/if_bwi_pci.c projects/powernv/dev/bwn/if_bwn.c projects/powernv/dev/bwn/if_bwn_pci.c projects/powernv/dev/bwn/if_bwn_pcivar.h projects/powernv/dev/bwn/if_bwn_phy_common.c projects/powernv/dev/bwn/if_bwn_phy_g.c projects/powernv/dev/bwn/if_bwn_phy_lp.c projects/powernv/dev/bwn/if_bwn_phy_n.c projects/powernv/dev/bwn/if_bwn_util.c projects/powernv/dev/bwn/if_bwnreg.h projects/powernv/dev/bwn/if_bwnvar.h projects/powernv/dev/cadence/if_cgem.c projects/powernv/dev/cadence/if_cgem_hw.h projects/powernv/dev/cardbus/cardbus.c projects/powernv/dev/cardbus/cardbus_cis.c projects/powernv/dev/cardbus/cardbus_cis.h projects/powernv/dev/cardbus/cardbus_device.c projects/powernv/dev/cardbus/cardbusreg.h projects/powernv/dev/cardbus/cardbusvar.h projects/powernv/dev/cas/if_cas.c projects/powernv/dev/cas/if_casreg.h projects/powernv/dev/cas/if_casvar.h projects/powernv/dev/cesa/cesa.c projects/powernv/dev/cesa/cesa.h projects/powernv/dev/cfe/cfe_api.c projects/powernv/dev/cfe/cfe_api.h projects/powernv/dev/cfe/cfe_api_int.h projects/powernv/dev/cfe/cfe_console.c projects/powernv/dev/cfe/cfe_env.c projects/powernv/dev/cfe/cfe_error.h projects/powernv/dev/cfe/cfe_ioctl.h projects/powernv/dev/cfe/cfe_resource.c projects/powernv/dev/cfi/cfi_bus_ixp4xx.c projects/powernv/dev/cfi/cfi_bus_nexus.c projects/powernv/dev/cfi/cfi_disk.c projects/powernv/dev/ciss/ciss.c projects/powernv/dev/ciss/cissio.h projects/powernv/dev/ciss/cissreg.h projects/powernv/dev/ciss/cissvar.h projects/powernv/dev/cm/if_cm_isa.c projects/powernv/dev/cm/smc90cx6.c projects/powernv/dev/cm/smc90cx6reg.h projects/powernv/dev/cm/smc90cx6var.h projects/powernv/dev/cmx/cmx_pccard.c projects/powernv/dev/cmx/cmxreg.h projects/powernv/dev/cmx/cmxvar.h projects/powernv/dev/coretemp/coretemp.c projects/powernv/dev/cpuctl/cpuctl.c projects/powernv/dev/cpufreq/ichss.c projects/powernv/dev/cs/if_cs.c projects/powernv/dev/cs/if_cs_isa.c projects/powernv/dev/cs/if_cs_pccard.c projects/powernv/dev/cs/if_csreg.h projects/powernv/dev/cs/if_csvar.h projects/powernv/dev/cxgb/bin2h.pl projects/powernv/dev/cxgb/common/cxgb_ael1002.c projects/powernv/dev/cxgb/common/cxgb_aq100x.c projects/powernv/dev/cxgb/common/cxgb_common.h projects/powernv/dev/cxgb/common/cxgb_firmware_exports.h projects/powernv/dev/cxgb/common/cxgb_mc5.c projects/powernv/dev/cxgb/common/cxgb_mv88e1xxx.c projects/powernv/dev/cxgb/common/cxgb_regs.h projects/powernv/dev/cxgb/common/cxgb_sge_defs.h projects/powernv/dev/cxgb/common/cxgb_t3_cpl.h projects/powernv/dev/cxgb/common/cxgb_t3_hw.c projects/powernv/dev/cxgb/common/cxgb_tcb.h projects/powernv/dev/cxgb/common/cxgb_tn1010.c projects/powernv/dev/cxgb/common/cxgb_vsc7323.c projects/powernv/dev/cxgb/common/cxgb_vsc8211.c projects/powernv/dev/cxgb/common/cxgb_xgmac.c projects/powernv/dev/cxgb/cxgb_adapter.h projects/powernv/dev/cxgb/cxgb_ioctl.h projects/powernv/dev/cxgb/cxgb_main.c projects/powernv/dev/cxgb/cxgb_offload.h projects/powernv/dev/cxgb/cxgb_osdep.h projects/powernv/dev/cxgb/cxgb_sge.c projects/powernv/dev/cxgb/cxgb_t3fw.h projects/powernv/dev/cxgb/sys/mvec.h projects/powernv/dev/cxgb/sys/uipc_mvec.c projects/powernv/dev/cxgb/t3b_protocol_sram.h projects/powernv/dev/cxgb/t3b_tp_eeprom.h projects/powernv/dev/cxgb/t3c_protocol_sram.h projects/powernv/dev/cxgb/t3c_tp_eeprom.h projects/powernv/dev/cxgbe/adapter.h projects/powernv/dev/cxgbe/common/common.h projects/powernv/dev/cxgbe/common/t4_hw.c projects/powernv/dev/cxgbe/common/t4_hw.h projects/powernv/dev/cxgbe/common/t4_msg.h projects/powernv/dev/cxgbe/common/t4_regs.h projects/powernv/dev/cxgbe/common/t4_regs_values.h projects/powernv/dev/cxgbe/common/t4_tcb.h projects/powernv/dev/cxgbe/iw_cxgbe/cm.c projects/powernv/dev/cxgbe/iw_cxgbe/cq.c projects/powernv/dev/cxgbe/iw_cxgbe/device.c projects/powernv/dev/cxgbe/iw_cxgbe/ev.c projects/powernv/dev/cxgbe/iw_cxgbe/id_table.c projects/powernv/dev/cxgbe/iw_cxgbe/iw_cxgbe.h projects/powernv/dev/cxgbe/iw_cxgbe/mem.c projects/powernv/dev/cxgbe/iw_cxgbe/provider.c projects/powernv/dev/cxgbe/iw_cxgbe/qp.c projects/powernv/dev/cxgbe/iw_cxgbe/resource.c projects/powernv/dev/cxgbe/iw_cxgbe/t4.h projects/powernv/dev/cxgbe/iw_cxgbe/user.h projects/powernv/dev/cxgbe/offload.h projects/powernv/dev/cxgbe/osdep.h projects/powernv/dev/cxgbe/t4_ioctl.h projects/powernv/dev/cxgbe/t4_l2t.c projects/powernv/dev/cxgbe/t4_l2t.h projects/powernv/dev/cxgbe/t4_main.c projects/powernv/dev/cxgbe/t4_netmap.c projects/powernv/dev/cxgbe/t4_sge.c projects/powernv/dev/cxgbe/t4_tracer.c projects/powernv/dev/cxgbe/t4_vf.c projects/powernv/dev/cxgbe/tom/t4_connect.c projects/powernv/dev/cxgbe/tom/t4_cpl_io.c projects/powernv/dev/cxgbe/tom/t4_ddp.c projects/powernv/dev/cxgbe/tom/t4_listen.c projects/powernv/dev/cxgbe/tom/t4_tom.c projects/powernv/dev/cxgbe/tom/t4_tom.h projects/powernv/dev/cxgbe/tom/t4_tom_l2t.c projects/powernv/dev/cxgbe/tom/t4_tom_l2t.h projects/powernv/dev/cy/cy.c projects/powernv/dev/cy/cy_isa.c projects/powernv/dev/cy/cy_pci.c projects/powernv/dev/cy/cyvar.h projects/powernv/dev/de/dc21040reg.h projects/powernv/dev/de/if_de.c projects/powernv/dev/de/if_devar.h projects/powernv/dev/dpaa/bman_fdt.c projects/powernv/dev/dpaa/qman_fdt.c projects/powernv/dev/dpt/dpt.h projects/powernv/dev/dpt/dpt_pci.c projects/powernv/dev/dpt/dpt_scsi.c projects/powernv/dev/drm/mga_state.c projects/powernv/dev/drm2/drm_gem.c projects/powernv/dev/drm2/drm_gem_names.c projects/powernv/dev/drm2/drm_gem_names.h projects/powernv/dev/drm2/drm_linux_list_sort.c projects/powernv/dev/drm2/i915/i915_drv.c projects/powernv/dev/drm2/i915/i915_gem.c projects/powernv/dev/drm2/radeon/radeon_drv.c projects/powernv/dev/e1000/e1000_82543.c projects/powernv/dev/e1000/e1000_api.c projects/powernv/dev/e1000/e1000_hw.h projects/powernv/dev/e1000/e1000_ich8lan.c projects/powernv/dev/e1000/e1000_ich8lan.h projects/powernv/dev/e1000/em_txrx.c projects/powernv/dev/e1000/if_em.c projects/powernv/dev/e1000/if_em.h projects/powernv/dev/e1000/igb_txrx.c projects/powernv/dev/ed/ax88x90reg.h projects/powernv/dev/ed/dl100xxreg.h projects/powernv/dev/ed/if_ed.c projects/powernv/dev/ed/if_ed_3c503.c projects/powernv/dev/ed/if_ed_hpp.c projects/powernv/dev/ed/if_ed_isa.c projects/powernv/dev/ed/if_ed_novell.c projects/powernv/dev/ed/if_ed_pccard.c projects/powernv/dev/ed/if_ed_pci.c projects/powernv/dev/ed/if_ed_rtl80x9.c projects/powernv/dev/ed/if_ed_sic.c projects/powernv/dev/ed/if_ed_wd80x3.c projects/powernv/dev/ed/if_edvar.h projects/powernv/dev/ed/rtl80x9reg.h projects/powernv/dev/ed/tc5299jreg.h projects/powernv/dev/ep/if_ep.c projects/powernv/dev/ep/if_ep_isa.c projects/powernv/dev/ep/if_ep_pccard.c projects/powernv/dev/ep/if_epreg.h projects/powernv/dev/ep/if_epvar.h projects/powernv/dev/esp/am53c974reg.h projects/powernv/dev/esp/esp_pci.c projects/powernv/dev/esp/esp_sbus.c projects/powernv/dev/esp/ncr53c9x.c projects/powernv/dev/esp/ncr53c9xreg.h projects/powernv/dev/esp/ncr53c9xvar.h projects/powernv/dev/etherswitch/arswitch/arswitch.c projects/powernv/dev/etherswitch/arswitch/arswitch_7240.c projects/powernv/dev/etherswitch/arswitch/arswitch_7240.h projects/powernv/dev/etherswitch/arswitch/arswitch_8216.c projects/powernv/dev/etherswitch/arswitch/arswitch_8216.h projects/powernv/dev/etherswitch/arswitch/arswitch_8226.c projects/powernv/dev/etherswitch/arswitch/arswitch_8226.h projects/powernv/dev/etherswitch/arswitch/arswitch_8316.c projects/powernv/dev/etherswitch/arswitch/arswitch_8316.h projects/powernv/dev/etherswitch/arswitch/arswitch_8327.c projects/powernv/dev/etherswitch/arswitch/arswitch_8327.h projects/powernv/dev/etherswitch/arswitch/arswitch_9340.c projects/powernv/dev/etherswitch/arswitch/arswitch_9340.h projects/powernv/dev/etherswitch/arswitch/arswitch_phy.c projects/powernv/dev/etherswitch/arswitch/arswitch_phy.h projects/powernv/dev/etherswitch/arswitch/arswitch_reg.c projects/powernv/dev/etherswitch/arswitch/arswitch_reg.h projects/powernv/dev/etherswitch/arswitch/arswitch_vlans.c projects/powernv/dev/etherswitch/arswitch/arswitch_vlans.h projects/powernv/dev/etherswitch/arswitch/arswitchreg.h projects/powernv/dev/etherswitch/arswitch/arswitchvar.h projects/powernv/dev/etherswitch/etherswitch.c projects/powernv/dev/etherswitch/ip17x/ip175c.c projects/powernv/dev/etherswitch/ip17x/ip175c.h projects/powernv/dev/etherswitch/ip17x/ip175d.c projects/powernv/dev/etherswitch/ip17x/ip175d.h projects/powernv/dev/etherswitch/ip17x/ip17x.c projects/powernv/dev/etherswitch/ip17x/ip17x_phy.c projects/powernv/dev/etherswitch/ip17x/ip17x_phy.h projects/powernv/dev/etherswitch/ip17x/ip17x_reg.h projects/powernv/dev/etherswitch/ip17x/ip17x_var.h projects/powernv/dev/etherswitch/ip17x/ip17x_vlans.c projects/powernv/dev/etherswitch/ip17x/ip17x_vlans.h projects/powernv/dev/etherswitch/miiproxy.c projects/powernv/dev/etherswitch/miiproxy.h projects/powernv/dev/etherswitch/rtl8366/rtl8366rb.c projects/powernv/dev/etherswitch/rtl8366/rtl8366rbvar.h projects/powernv/dev/etherswitch/ukswitch/ukswitch.c projects/powernv/dev/ex/if_ex.c projects/powernv/dev/ex/if_ex_isa.c projects/powernv/dev/ex/if_ex_pccard.c projects/powernv/dev/ex/if_exreg.h projects/powernv/dev/ex/if_exvar.h projects/powernv/dev/exca/exca.c projects/powernv/dev/exca/excareg.h projects/powernv/dev/exca/excavar.h projects/powernv/dev/extres/clk/clk_bus.c projects/powernv/dev/extres/regulator/regulator_bus.c projects/powernv/dev/fb/creator.c projects/powernv/dev/fb/creatorreg.h projects/powernv/dev/fb/fb.c projects/powernv/dev/fb/fbd.c projects/powernv/dev/fb/fbreg.h projects/powernv/dev/fb/gfb.h projects/powernv/dev/fb/machfb.c projects/powernv/dev/fb/s3_pci.c projects/powernv/dev/fb/splash.c projects/powernv/dev/fb/splash_bmp.c projects/powernv/dev/fb/splash_pcx.c projects/powernv/dev/fb/splash_txt.c projects/powernv/dev/fb/splashreg.h projects/powernv/dev/fb/vesa.c projects/powernv/dev/fb/vesa.h projects/powernv/dev/fb/vga.c projects/powernv/dev/fb/vgareg.h projects/powernv/dev/fdc/fdc_acpi.c projects/powernv/dev/fdc/fdc_isa.c projects/powernv/dev/fdc/fdc_pccard.c projects/powernv/dev/fdc/fdcvar.h projects/powernv/dev/fdt/fdt_common.c projects/powernv/dev/fdt/fdt_common.h projects/powernv/dev/fdt/fdt_powerpc.c projects/powernv/dev/fdt/fdt_slicer.c projects/powernv/dev/fdt/simplebus.c projects/powernv/dev/fe/if_fe_isa.c projects/powernv/dev/ffec/if_ffec.c projects/powernv/dev/ffec/if_ffecreg.h projects/powernv/dev/filemon/filemon.c projects/powernv/dev/filemon/filemon.h projects/powernv/dev/filemon/filemon_wrapper.c projects/powernv/dev/firewire/firewire.c projects/powernv/dev/firewire/firewire.h projects/powernv/dev/firewire/firewire_phy.h projects/powernv/dev/firewire/firewirereg.h projects/powernv/dev/firewire/fwdev.c projects/powernv/dev/firewire/fwohci.c projects/powernv/dev/firewire/fwohci_pci.c projects/powernv/dev/firewire/fwohcireg.h projects/powernv/dev/firewire/fwohcivar.h projects/powernv/dev/firewire/iec13213.h projects/powernv/dev/firewire/iec68113.h projects/powernv/dev/firewire/if_fwe.c projects/powernv/dev/firewire/if_fwip.c projects/powernv/dev/firewire/sbp.c projects/powernv/dev/firewire/sbp.h projects/powernv/dev/flash/at45d.c projects/powernv/dev/flash/mx25l.c projects/powernv/dev/flash/mx25lreg.h projects/powernv/dev/fxp/if_fxp.c projects/powernv/dev/fxp/if_fxpreg.h projects/powernv/dev/fxp/if_fxpvar.h projects/powernv/dev/gem/if_gem.c projects/powernv/dev/gem/if_gem_pci.c projects/powernv/dev/gem/if_gem_sbus.c projects/powernv/dev/gem/if_gemreg.h projects/powernv/dev/gem/if_gemvar.h projects/powernv/dev/glxiic/glxiic.c projects/powernv/dev/glxsb/glxsb.h projects/powernv/dev/glxsb/glxsb_hash.c projects/powernv/dev/gpio/gpiobus.c projects/powernv/dev/gpio/gpiobusvar.h projects/powernv/dev/gpio/gpioc.c projects/powernv/dev/gpio/gpioiic.c projects/powernv/dev/gpio/gpioled.c projects/powernv/dev/gpio/ofw_gpiobus.c projects/powernv/dev/gxemul/cons/gxemul_cons.c projects/powernv/dev/gxemul/disk/gxemul_disk.c projects/powernv/dev/gxemul/disk/gxemul_diskreg.h projects/powernv/dev/gxemul/ether/gxreg.h projects/powernv/dev/gxemul/ether/if_gx.c projects/powernv/dev/hifn/hifn7751.c projects/powernv/dev/hifn/hifn7751reg.h projects/powernv/dev/hifn/hifn7751var.h projects/powernv/dev/hme/if_hme.c projects/powernv/dev/hme/if_hme_pci.c projects/powernv/dev/hme/if_hme_sbus.c projects/powernv/dev/hme/if_hmereg.h projects/powernv/dev/hme/if_hmevar.h projects/powernv/dev/hpt27xx/array.h projects/powernv/dev/hpt27xx/him.h projects/powernv/dev/hpt27xx/himfuncs.h projects/powernv/dev/hpt27xx/hpt27xx_config.c projects/powernv/dev/hpt27xx/hpt27xx_config.h projects/powernv/dev/hpt27xx/hpt27xx_os_bsd.c projects/powernv/dev/hpt27xx/hpt27xx_osm_bsd.c projects/powernv/dev/hpt27xx/hptintf.h projects/powernv/dev/hpt27xx/ldm.h projects/powernv/dev/hpt27xx/list.h projects/powernv/dev/hpt27xx/os_bsd.h projects/powernv/dev/hpt27xx/osm.h projects/powernv/dev/hpt27xx/wj.h projects/powernv/dev/hptiop/hptiop.c projects/powernv/dev/hptiop/hptiop.h projects/powernv/dev/hptmv/access601.h projects/powernv/dev/hptmv/array.h projects/powernv/dev/hptmv/atapi.h projects/powernv/dev/hptmv/command.h projects/powernv/dev/hptmv/entry.c projects/powernv/dev/hptmv/global.h projects/powernv/dev/hptmv/gui_lib.c projects/powernv/dev/hptmv/hptintf.h projects/powernv/dev/hptmv/hptproc.c projects/powernv/dev/hptmv/ioctl.c projects/powernv/dev/hptmv/mv.c projects/powernv/dev/hptmv/mvOs.h projects/powernv/dev/hptmv/mvSata.h projects/powernv/dev/hptmv/mvStorageDev.h projects/powernv/dev/hptmv/osbsd.h projects/powernv/dev/hptmv/raid5n.h projects/powernv/dev/hptmv/vdevice.h projects/powernv/dev/hptnr/array.h projects/powernv/dev/hptnr/him.h projects/powernv/dev/hptnr/himfuncs.h projects/powernv/dev/hptnr/hptintf.h projects/powernv/dev/hptnr/hptnr_config.c projects/powernv/dev/hptnr/hptnr_config.h projects/powernv/dev/hptnr/hptnr_os_bsd.c projects/powernv/dev/hptnr/hptnr_osm_bsd.c projects/powernv/dev/hptnr/ldm.h projects/powernv/dev/hptnr/list.h projects/powernv/dev/hptnr/os_bsd.h projects/powernv/dev/hptnr/osm.h projects/powernv/dev/hptnr/wj.h projects/powernv/dev/hptrr/array.h projects/powernv/dev/hptrr/him.h projects/powernv/dev/hptrr/himfuncs.h projects/powernv/dev/hptrr/hptintf.h projects/powernv/dev/hptrr/hptrr_config.c projects/powernv/dev/hptrr/hptrr_config.h projects/powernv/dev/hptrr/hptrr_os_bsd.c projects/powernv/dev/hptrr/hptrr_osm_bsd.c projects/powernv/dev/hptrr/ldm.h projects/powernv/dev/hptrr/list.h projects/powernv/dev/hptrr/os_bsd.h projects/powernv/dev/hptrr/osm.h projects/powernv/dev/hwpmc/hwpmc_amd.c projects/powernv/dev/hwpmc/hwpmc_amd.h projects/powernv/dev/hwpmc/hwpmc_arm.c projects/powernv/dev/hwpmc/hwpmc_core.c projects/powernv/dev/hwpmc/hwpmc_core.h projects/powernv/dev/hwpmc/hwpmc_intel.c projects/powernv/dev/hwpmc/hwpmc_logging.c projects/powernv/dev/hwpmc/hwpmc_mips.c projects/powernv/dev/hwpmc/hwpmc_mips24k.c projects/powernv/dev/hwpmc/hwpmc_mod.c projects/powernv/dev/hwpmc/hwpmc_mpc7xxx.c projects/powernv/dev/hwpmc/hwpmc_octeon.c projects/powernv/dev/hwpmc/hwpmc_pentium.c projects/powernv/dev/hwpmc/hwpmc_pentium.h projects/powernv/dev/hwpmc/hwpmc_piv.c projects/powernv/dev/hwpmc/hwpmc_piv.h projects/powernv/dev/hwpmc/hwpmc_powerpc.c projects/powernv/dev/hwpmc/hwpmc_powerpc.h projects/powernv/dev/hwpmc/hwpmc_ppc970.c projects/powernv/dev/hwpmc/hwpmc_ppro.c projects/powernv/dev/hwpmc/hwpmc_ppro.h projects/powernv/dev/hwpmc/hwpmc_soft.c projects/powernv/dev/hwpmc/hwpmc_soft.h projects/powernv/dev/hwpmc/hwpmc_sparc64.c projects/powernv/dev/hwpmc/hwpmc_tsc.c projects/powernv/dev/hwpmc/hwpmc_tsc.h projects/powernv/dev/hwpmc/hwpmc_uncore.c projects/powernv/dev/hwpmc/hwpmc_uncore.h projects/powernv/dev/hwpmc/hwpmc_x86.c projects/powernv/dev/hwpmc/hwpmc_xscale.c projects/powernv/dev/hwpmc/hwpmc_xscale.h projects/powernv/dev/hwpmc/pmc_events.h projects/powernv/dev/hyperv/include/hyperv.h projects/powernv/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c projects/powernv/dev/hyperv/storvsc/hv_vstorage.h projects/powernv/dev/hyperv/utilities/hv_kvp.h projects/powernv/dev/ic/cd1400.h projects/powernv/dev/ic/cd180.h projects/powernv/dev/ic/i8259.h projects/powernv/dev/ic/quicc.h projects/powernv/dev/ic/sab82532.h projects/powernv/dev/ic/via6522reg.h projects/powernv/dev/ic/z8530.h projects/powernv/dev/ichwd/ichwd.c projects/powernv/dev/ichwd/ichwd.h projects/powernv/dev/ida/ida.c projects/powernv/dev/ida/ida_disk.c projects/powernv/dev/ida/ida_pci.c projects/powernv/dev/ida/idareg.h projects/powernv/dev/ida/idavar.h projects/powernv/dev/iicbus/ad7417.c projects/powernv/dev/iicbus/ad7418.c projects/powernv/dev/iicbus/adt746x.c projects/powernv/dev/iicbus/ds1631.c projects/powernv/dev/iicbus/ds1672.c projects/powernv/dev/iicbus/ds1775.c projects/powernv/dev/iicbus/ds3231.c projects/powernv/dev/iicbus/icee.c projects/powernv/dev/iicbus/if_ic.c projects/powernv/dev/iicbus/iic.c projects/powernv/dev/iicbus/iic.h projects/powernv/dev/iicbus/iicbb.c projects/powernv/dev/iicbus/iicbus.c projects/powernv/dev/iicbus/iicbus.h projects/powernv/dev/iicbus/iicoc.c projects/powernv/dev/iicbus/iicoc.h projects/powernv/dev/iicbus/iiconf.c projects/powernv/dev/iicbus/iiconf.h projects/powernv/dev/iicbus/iicsmb.c projects/powernv/dev/iicbus/max6690.c projects/powernv/dev/iicbus/s35390a.c projects/powernv/dev/iicbus/twsi/a10_twsi.c projects/powernv/dev/iir/iir.c projects/powernv/dev/iir/iir.h projects/powernv/dev/iir/iir_ctrl.c projects/powernv/dev/iir/iir_pci.c projects/powernv/dev/intpm/intpm.c projects/powernv/dev/io/iodev.c projects/powernv/dev/io/iodev.h projects/powernv/dev/ioat/ioat.c projects/powernv/dev/ipmi/ipmi.c projects/powernv/dev/ipmi/ipmi_acpi.c projects/powernv/dev/ipmi/ipmi_isa.c projects/powernv/dev/ipmi/ipmi_kcs.c projects/powernv/dev/ipmi/ipmi_linux.c projects/powernv/dev/ipmi/ipmi_pci.c projects/powernv/dev/ipmi/ipmi_smbios.c projects/powernv/dev/ipmi/ipmi_smbus.c projects/powernv/dev/ipmi/ipmi_smic.c projects/powernv/dev/ipmi/ipmi_ssif.c projects/powernv/dev/ipmi/ipmivars.h projects/powernv/dev/ips/ips.c projects/powernv/dev/ips/ips.h projects/powernv/dev/ips/ips_commands.c projects/powernv/dev/ips/ips_disk.c projects/powernv/dev/ips/ips_disk.h projects/powernv/dev/ips/ips_ioctl.c projects/powernv/dev/ips/ips_ioctl.h projects/powernv/dev/ips/ips_pci.c projects/powernv/dev/ips/ipsreg.h projects/powernv/dev/ipw/if_ipw.c projects/powernv/dev/ipw/if_ipwreg.h projects/powernv/dev/ipw/if_ipwvar.h projects/powernv/dev/isci/environment.h projects/powernv/dev/isci/isci.c projects/powernv/dev/isci/isci.h projects/powernv/dev/isci/isci_controller.c projects/powernv/dev/isci/isci_domain.c projects/powernv/dev/isci/isci_interrupt.c projects/powernv/dev/isci/isci_io_request.c projects/powernv/dev/isci/isci_logger.c projects/powernv/dev/isci/isci_oem_parameters.c projects/powernv/dev/isci/isci_remote_device.c projects/powernv/dev/isci/isci_sysctl.c projects/powernv/dev/isci/isci_task_request.c projects/powernv/dev/isci/isci_timer.c projects/powernv/dev/isci/scil/intel_ata.h projects/powernv/dev/isci/scil/intel_pci.h projects/powernv/dev/isci/scil/intel_sas.h projects/powernv/dev/isci/scil/intel_sat.h projects/powernv/dev/isci/scil/intel_sata.h projects/powernv/dev/isci/scil/intel_scsi.h projects/powernv/dev/isci/scil/sati.c projects/powernv/dev/isci/scil/sati.h projects/powernv/dev/isci/scil/sati_abort_task_set.c projects/powernv/dev/isci/scil/sati_abort_task_set.h projects/powernv/dev/isci/scil/sati_atapi.c projects/powernv/dev/isci/scil/sati_atapi.h projects/powernv/dev/isci/scil/sati_callbacks.h projects/powernv/dev/isci/scil/sati_design.h projects/powernv/dev/isci/scil/sati_device.c projects/powernv/dev/isci/scil/sati_device.h projects/powernv/dev/isci/scil/sati_inquiry.c projects/powernv/dev/isci/scil/sati_inquiry.h projects/powernv/dev/isci/scil/sati_log_sense.c projects/powernv/dev/isci/scil/sati_log_sense.h projects/powernv/dev/isci/scil/sati_lun_reset.c projects/powernv/dev/isci/scil/sati_lun_reset.h projects/powernv/dev/isci/scil/sati_mode_pages.c projects/powernv/dev/isci/scil/sati_mode_pages.h projects/powernv/dev/isci/scil/sati_mode_select.c projects/powernv/dev/isci/scil/sati_mode_select.h projects/powernv/dev/isci/scil/sati_mode_sense.c projects/powernv/dev/isci/scil/sati_mode_sense.h projects/powernv/dev/isci/scil/sati_mode_sense_10.c projects/powernv/dev/isci/scil/sati_mode_sense_10.h projects/powernv/dev/isci/scil/sati_mode_sense_6.c projects/powernv/dev/isci/scil/sati_mode_sense_6.h projects/powernv/dev/isci/scil/sati_move.c projects/powernv/dev/isci/scil/sati_move.h projects/powernv/dev/isci/scil/sati_passthrough.c projects/powernv/dev/isci/scil/sati_passthrough.h projects/powernv/dev/isci/scil/sati_read.c projects/powernv/dev/isci/scil/sati_read.h projects/powernv/dev/isci/scil/sati_read_buffer.c projects/powernv/dev/isci/scil/sati_read_buffer.h projects/powernv/dev/isci/scil/sati_read_capacity.c projects/powernv/dev/isci/scil/sati_read_capacity.h projects/powernv/dev/isci/scil/sati_reassign_blocks.c projects/powernv/dev/isci/scil/sati_reassign_blocks.h projects/powernv/dev/isci/scil/sati_report_luns.c projects/powernv/dev/isci/scil/sati_report_luns.h projects/powernv/dev/isci/scil/sati_request_sense.c projects/powernv/dev/isci/scil/sati_request_sense.h projects/powernv/dev/isci/scil/sati_start_stop_unit.c projects/powernv/dev/isci/scil/sati_start_stop_unit.h projects/powernv/dev/isci/scil/sati_synchronize_cache.c projects/powernv/dev/isci/scil/sati_synchronize_cache.h projects/powernv/dev/isci/scil/sati_test_unit_ready.c projects/powernv/dev/isci/scil/sati_test_unit_ready.h projects/powernv/dev/isci/scil/sati_translator_sequence.h projects/powernv/dev/isci/scil/sati_types.h projects/powernv/dev/isci/scil/sati_unmap.c projects/powernv/dev/isci/scil/sati_unmap.h projects/powernv/dev/isci/scil/sati_util.c projects/powernv/dev/isci/scil/sati_util.h projects/powernv/dev/isci/scil/sati_verify.c projects/powernv/dev/isci/scil/sati_verify.h projects/powernv/dev/isci/scil/sati_write.c projects/powernv/dev/isci/scil/sati_write.h projects/powernv/dev/isci/scil/sati_write_and_verify.c projects/powernv/dev/isci/scil/sati_write_and_verify.h projects/powernv/dev/isci/scil/sati_write_buffer.c projects/powernv/dev/isci/scil/sati_write_buffer.h projects/powernv/dev/isci/scil/sati_write_long.c projects/powernv/dev/isci/scil/sati_write_long.h projects/powernv/dev/isci/scil/sci_abstract_list.c projects/powernv/dev/isci/scil/sci_abstract_list.h projects/powernv/dev/isci/scil/sci_base_controller.c projects/powernv/dev/isci/scil/sci_base_controller.h projects/powernv/dev/isci/scil/sci_base_domain.c projects/powernv/dev/isci/scil/sci_base_domain.h projects/powernv/dev/isci/scil/sci_base_iterator.c projects/powernv/dev/isci/scil/sci_base_iterator.h projects/powernv/dev/isci/scil/sci_base_library.c projects/powernv/dev/isci/scil/sci_base_library.h projects/powernv/dev/isci/scil/sci_base_logger.c projects/powernv/dev/isci/scil/sci_base_logger.h projects/powernv/dev/isci/scil/sci_base_memory_descriptor_list.c projects/powernv/dev/isci/scil/sci_base_memory_descriptor_list.h projects/powernv/dev/isci/scil/sci_base_memory_descriptor_list_decorator.c projects/powernv/dev/isci/scil/sci_base_object.c projects/powernv/dev/isci/scil/sci_base_object.h projects/powernv/dev/isci/scil/sci_base_observer.c projects/powernv/dev/isci/scil/sci_base_observer.h projects/powernv/dev/isci/scil/sci_base_phy.c projects/powernv/dev/isci/scil/sci_base_phy.h projects/powernv/dev/isci/scil/sci_base_port.c projects/powernv/dev/isci/scil/sci_base_port.h projects/powernv/dev/isci/scil/sci_base_remote_device.c projects/powernv/dev/isci/scil/sci_base_remote_device.h projects/powernv/dev/isci/scil/sci_base_request.c projects/powernv/dev/isci/scil/sci_base_request.h projects/powernv/dev/isci/scil/sci_base_state.h projects/powernv/dev/isci/scil/sci_base_state_machine.c projects/powernv/dev/isci/scil/sci_base_state_machine.h projects/powernv/dev/isci/scil/sci_base_state_machine_logger.c projects/powernv/dev/isci/scil/sci_base_state_machine_logger.h projects/powernv/dev/isci/scil/sci_base_state_machine_observer.c projects/powernv/dev/isci/scil/sci_base_state_machine_observer.h projects/powernv/dev/isci/scil/sci_base_subject.c projects/powernv/dev/isci/scil/sci_base_subject.h projects/powernv/dev/isci/scil/sci_controller.h projects/powernv/dev/isci/scil/sci_controller_constants.h projects/powernv/dev/isci/scil/sci_fast_list.h projects/powernv/dev/isci/scil/sci_iterator.h projects/powernv/dev/isci/scil/sci_library.h projects/powernv/dev/isci/scil/sci_logger.h projects/powernv/dev/isci/scil/sci_memory_descriptor_list.h projects/powernv/dev/isci/scil/sci_memory_descriptor_list_decorator.h projects/powernv/dev/isci/scil/sci_object.h projects/powernv/dev/isci/scil/sci_overview.h projects/powernv/dev/isci/scil/sci_pool.h projects/powernv/dev/isci/scil/sci_simple_list.h projects/powernv/dev/isci/scil/sci_status.h projects/powernv/dev/isci/scil/sci_types.h projects/powernv/dev/isci/scil/sci_util.c projects/powernv/dev/isci/scil/sci_util.h projects/powernv/dev/isci/scil/scic_config_parameters.h projects/powernv/dev/isci/scil/scic_controller.h projects/powernv/dev/isci/scil/scic_io_request.h projects/powernv/dev/isci/scil/scic_library.h projects/powernv/dev/isci/scil/scic_logger.h projects/powernv/dev/isci/scil/scic_overview.h projects/powernv/dev/isci/scil/scic_phy.h projects/powernv/dev/isci/scil/scic_port.h projects/powernv/dev/isci/scil/scic_remote_device.h projects/powernv/dev/isci/scil/scic_sds_controller.c projects/powernv/dev/isci/scil/scic_sds_controller.h projects/powernv/dev/isci/scil/scic_sds_controller_registers.h projects/powernv/dev/isci/scil/scic_sds_library.c projects/powernv/dev/isci/scil/scic_sds_library.h projects/powernv/dev/isci/scil/scic_sds_logger.h projects/powernv/dev/isci/scil/scic_sds_pci.c projects/powernv/dev/isci/scil/scic_sds_pci.h projects/powernv/dev/isci/scil/scic_sds_phy.c projects/powernv/dev/isci/scil/scic_sds_phy.h projects/powernv/dev/isci/scil/scic_sds_phy_registers.h projects/powernv/dev/isci/scil/scic_sds_port.c projects/powernv/dev/isci/scil/scic_sds_port.h projects/powernv/dev/isci/scil/scic_sds_port_configuration_agent.c projects/powernv/dev/isci/scil/scic_sds_port_configuration_agent.h projects/powernv/dev/isci/scil/scic_sds_port_registers.h projects/powernv/dev/isci/scil/scic_sds_remote_device.c projects/powernv/dev/isci/scil/scic_sds_remote_device.h projects/powernv/dev/isci/scil/scic_sds_remote_node_context.c projects/powernv/dev/isci/scil/scic_sds_remote_node_context.h projects/powernv/dev/isci/scil/scic_sds_remote_node_table.c projects/powernv/dev/isci/scil/scic_sds_remote_node_table.h projects/powernv/dev/isci/scil/scic_sds_request.c projects/powernv/dev/isci/scil/scic_sds_request.h projects/powernv/dev/isci/scil/scic_sds_sgpio.c projects/powernv/dev/isci/scil/scic_sds_smp_remote_device.c projects/powernv/dev/isci/scil/scic_sds_smp_request.c projects/powernv/dev/isci/scil/scic_sds_smp_request.h projects/powernv/dev/isci/scil/scic_sds_ssp_request.c projects/powernv/dev/isci/scil/scic_sds_stp_packet_request.c projects/powernv/dev/isci/scil/scic_sds_stp_packet_request.h projects/powernv/dev/isci/scil/scic_sds_stp_pio_request.h projects/powernv/dev/isci/scil/scic_sds_stp_remote_device.c projects/powernv/dev/isci/scil/scic_sds_stp_request.c projects/powernv/dev/isci/scil/scic_sds_stp_request.h projects/powernv/dev/isci/scil/scic_sds_unsolicited_frame_control.c projects/powernv/dev/isci/scil/scic_sds_unsolicited_frame_control.h projects/powernv/dev/isci/scil/scic_sgpio.h projects/powernv/dev/isci/scil/scic_task_request.h projects/powernv/dev/isci/scil/scic_user_callback.h projects/powernv/dev/isci/scil/scif_config_parameters.h projects/powernv/dev/isci/scil/scif_controller.h projects/powernv/dev/isci/scil/scif_domain.h projects/powernv/dev/isci/scil/scif_io_request.h projects/powernv/dev/isci/scil/scif_library.h projects/powernv/dev/isci/scil/scif_logger.h projects/powernv/dev/isci/scil/scif_overview.h projects/powernv/dev/isci/scil/scif_remote_device.h projects/powernv/dev/isci/scil/scif_sas_constants.h projects/powernv/dev/isci/scil/scif_sas_controller.c projects/powernv/dev/isci/scil/scif_sas_controller.h projects/powernv/dev/isci/scil/scif_sas_controller_state_handlers.c projects/powernv/dev/isci/scil/scif_sas_controller_states.c projects/powernv/dev/isci/scil/scif_sas_design.h projects/powernv/dev/isci/scil/scif_sas_domain.c projects/powernv/dev/isci/scil/scif_sas_domain.h projects/powernv/dev/isci/scil/scif_sas_domain_state_handlers.c projects/powernv/dev/isci/scil/scif_sas_domain_states.c projects/powernv/dev/isci/scil/scif_sas_high_priority_request_queue.c projects/powernv/dev/isci/scil/scif_sas_high_priority_request_queue.h projects/powernv/dev/isci/scil/scif_sas_internal_io_request.c projects/powernv/dev/isci/scil/scif_sas_internal_io_request.h projects/powernv/dev/isci/scil/scif_sas_io_request.c projects/powernv/dev/isci/scil/scif_sas_io_request.h projects/powernv/dev/isci/scil/scif_sas_io_request_state_handlers.c projects/powernv/dev/isci/scil/scif_sas_io_request_states.c projects/powernv/dev/isci/scil/scif_sas_library.c projects/powernv/dev/isci/scil/scif_sas_library.h projects/powernv/dev/isci/scil/scif_sas_logger.h projects/powernv/dev/isci/scil/scif_sas_remote_device.c projects/powernv/dev/isci/scil/scif_sas_remote_device.h projects/powernv/dev/isci/scil/scif_sas_remote_device_ready_substate_handlers.c projects/powernv/dev/isci/scil/scif_sas_remote_device_ready_substates.c projects/powernv/dev/isci/scil/scif_sas_remote_device_starting_substate_handlers.c projects/powernv/dev/isci/scil/scif_sas_remote_device_starting_substates.c projects/powernv/dev/isci/scil/scif_sas_remote_device_state_handlers.c projects/powernv/dev/isci/scil/scif_sas_remote_device_states.c projects/powernv/dev/isci/scil/scif_sas_request.c projects/powernv/dev/isci/scil/scif_sas_request.h projects/powernv/dev/isci/scil/scif_sas_sati_binding.h projects/powernv/dev/isci/scil/scif_sas_smp_activity_clear_affiliation.c projects/powernv/dev/isci/scil/scif_sas_smp_io_request.c projects/powernv/dev/isci/scil/scif_sas_smp_io_request.h projects/powernv/dev/isci/scil/scif_sas_smp_phy.c projects/powernv/dev/isci/scil/scif_sas_smp_phy.h projects/powernv/dev/isci/scil/scif_sas_smp_remote_device.c projects/powernv/dev/isci/scil/scif_sas_smp_remote_device.h projects/powernv/dev/isci/scil/scif_sas_stp_io_request.c projects/powernv/dev/isci/scil/scif_sas_stp_io_request.h projects/powernv/dev/isci/scil/scif_sas_stp_remote_device.c projects/powernv/dev/isci/scil/scif_sas_stp_remote_device.h projects/powernv/dev/isci/scil/scif_sas_stp_task_request.c projects/powernv/dev/isci/scil/scif_sas_stp_task_request.h projects/powernv/dev/isci/scil/scif_sas_task_request.c projects/powernv/dev/isci/scil/scif_sas_task_request.h projects/powernv/dev/isci/scil/scif_sas_task_request_state_handlers.c projects/powernv/dev/isci/scil/scif_sas_task_request_states.c projects/powernv/dev/isci/scil/scif_sas_timer.c projects/powernv/dev/isci/scil/scif_task_request.h projects/powernv/dev/isci/scil/scif_user_callback.h projects/powernv/dev/isci/scil/scu_bios_definitions.h projects/powernv/dev/isci/scil/scu_completion_codes.h projects/powernv/dev/isci/scil/scu_constants.h projects/powernv/dev/isci/scil/scu_event_codes.h projects/powernv/dev/isci/scil/scu_registers.h projects/powernv/dev/isci/scil/scu_remote_node_context.h projects/powernv/dev/isci/scil/scu_task_context.h projects/powernv/dev/isci/scil/scu_unsolicited_frame.h projects/powernv/dev/isci/scil/scu_viit_data.h projects/powernv/dev/isci/types.h projects/powernv/dev/iscsi/icl.c projects/powernv/dev/iscsi/icl.h projects/powernv/dev/iscsi/icl_soft.c projects/powernv/dev/iscsi/iscsi.c projects/powernv/dev/iscsi/iscsi.h projects/powernv/dev/iscsi/iscsi_ioctl.h projects/powernv/dev/iscsi/iscsi_proto.h projects/powernv/dev/iscsi_initiator/isc_cam.c projects/powernv/dev/iscsi_initiator/isc_sm.c projects/powernv/dev/iscsi_initiator/isc_soc.c projects/powernv/dev/iscsi_initiator/isc_subr.c projects/powernv/dev/iscsi_initiator/iscsi.c projects/powernv/dev/iscsi_initiator/iscsi.h projects/powernv/dev/iscsi_initiator/iscsi_subr.c projects/powernv/dev/iscsi_initiator/iscsivar.h projects/powernv/dev/isp/isp.c projects/powernv/dev/isp/isp_freebsd.c projects/powernv/dev/isp/isp_freebsd.h projects/powernv/dev/isp/isp_ioctl.h projects/powernv/dev/isp/isp_library.c projects/powernv/dev/isp/isp_library.h projects/powernv/dev/isp/isp_pci.c projects/powernv/dev/isp/isp_sbus.c projects/powernv/dev/isp/isp_stds.h projects/powernv/dev/isp/isp_target.c projects/powernv/dev/isp/isp_target.h projects/powernv/dev/isp/ispmbox.h projects/powernv/dev/isp/ispreg.h projects/powernv/dev/isp/ispvar.h projects/powernv/dev/ispfw/asm_1000.h projects/powernv/dev/ispfw/asm_1040.h projects/powernv/dev/ispfw/asm_1080.h projects/powernv/dev/ispfw/asm_12160.h projects/powernv/dev/ispfw/asm_2100.h projects/powernv/dev/ispfw/asm_2200.h projects/powernv/dev/ispfw/asm_2300.h projects/powernv/dev/ispfw/asm_2322.h projects/powernv/dev/ispfw/asm_2400.h projects/powernv/dev/ispfw/asm_2500.h projects/powernv/dev/ispfw/ispfw.c projects/powernv/dev/iwi/if_iwi.c projects/powernv/dev/iwi/if_iwireg.h projects/powernv/dev/iwi/if_iwivar.h projects/powernv/dev/iwm/if_iwmreg.h projects/powernv/dev/ixgbe/if_bypass.c projects/powernv/dev/ixgbe/if_fdir.c projects/powernv/dev/ixgbe/if_ix.c projects/powernv/dev/ixgbe/if_ixv.c projects/powernv/dev/ixgbe/if_sriov.c projects/powernv/dev/ixgbe/ix_txrx.c projects/powernv/dev/ixgbe/ixgbe.h projects/powernv/dev/ixgbe/ixgbe_common.c projects/powernv/dev/ixgbe/ixgbe_fdir.h projects/powernv/dev/ixgbe/ixgbe_osdep.c projects/powernv/dev/ixgbe/ixgbe_osdep.h projects/powernv/dev/ixgbe/ixgbe_phy.c projects/powernv/dev/ixgbe/ixgbe_sriov.h projects/powernv/dev/ixgbe/ixgbe_type.h projects/powernv/dev/ixgbe/ixgbe_vf.h projects/powernv/dev/jme/if_jme.c projects/powernv/dev/jme/if_jmereg.h projects/powernv/dev/jme/if_jmevar.h projects/powernv/dev/joy/joy.c projects/powernv/dev/joy/joy_isa.c projects/powernv/dev/joy/joyvar.h projects/powernv/dev/kbd/kbd.c projects/powernv/dev/kbd/kbdreg.h projects/powernv/dev/kbd/kbdtables.h projects/powernv/dev/kbdmux/kbdmux.c projects/powernv/dev/ksyms/ksyms.c projects/powernv/dev/le/am7990.c projects/powernv/dev/le/am79900.c projects/powernv/dev/le/am79900reg.h projects/powernv/dev/le/am79900var.h projects/powernv/dev/le/am7990reg.h projects/powernv/dev/le/am7990var.h projects/powernv/dev/le/if_le_isa.c projects/powernv/dev/le/if_le_lebuffer.c projects/powernv/dev/le/if_le_ledma.c projects/powernv/dev/le/if_le_pci.c projects/powernv/dev/le/lance.c projects/powernv/dev/le/lancereg.h projects/powernv/dev/le/lancevar.h projects/powernv/dev/le/lebuffer_sbus.c projects/powernv/dev/led/led.c projects/powernv/dev/lmc/if_lmc.c projects/powernv/dev/lmc/if_lmc.h projects/powernv/dev/malo/if_malo.c projects/powernv/dev/malo/if_malo.h projects/powernv/dev/malo/if_malo_pci.c projects/powernv/dev/malo/if_malohal.c projects/powernv/dev/malo/if_malohal.h projects/powernv/dev/malo/if_maloioctl.h projects/powernv/dev/mc146818/mc146818.c projects/powernv/dev/mc146818/mc146818reg.h projects/powernv/dev/mc146818/mc146818var.h projects/powernv/dev/md/md.c projects/powernv/dev/mem/memdev.c projects/powernv/dev/mem/memutil.c projects/powernv/dev/mfi/mfi.c projects/powernv/dev/mfi/mfi_cam.c projects/powernv/dev/mfi/mfi_debug.c projects/powernv/dev/mfi/mfi_disk.c projects/powernv/dev/mfi/mfi_ioctl.h projects/powernv/dev/mfi/mfi_linux.c projects/powernv/dev/mfi/mfi_pci.c projects/powernv/dev/mfi/mfi_syspd.c projects/powernv/dev/mfi/mfi_tbolt.c projects/powernv/dev/mfi/mfireg.h projects/powernv/dev/mfi/mfivar.h projects/powernv/dev/mii/acphy.c projects/powernv/dev/mii/acphyreg.h projects/powernv/dev/mii/atphy.c projects/powernv/dev/mii/atphyreg.h projects/powernv/dev/mii/axphy.c projects/powernv/dev/mii/bmtphy.c projects/powernv/dev/mii/bmtphyreg.h projects/powernv/dev/mii/e1000phy.c projects/powernv/dev/mii/gentbi.c projects/powernv/dev/mii/icsphy.c projects/powernv/dev/mii/icsphyreg.h projects/powernv/dev/mii/ip1000phy.c projects/powernv/dev/mii/ip1000phyreg.h projects/powernv/dev/mii/jmphy.c projects/powernv/dev/mii/jmphyreg.h projects/powernv/dev/mii/lxtphy.c projects/powernv/dev/mii/lxtphyreg.h projects/powernv/dev/mii/mii.c projects/powernv/dev/mii/mii.h projects/powernv/dev/mii/mii_bitbang.c projects/powernv/dev/mii/mii_bitbang.h projects/powernv/dev/mii/mii_physubr.c projects/powernv/dev/mii/miivar.h projects/powernv/dev/mii/nsgphy.c projects/powernv/dev/mii/nsphy.c projects/powernv/dev/mii/nsphyreg.h projects/powernv/dev/mii/nsphyter.c projects/powernv/dev/mii/nsphyterreg.h projects/powernv/dev/mii/qsphy.c projects/powernv/dev/mii/qsphyreg.h projects/powernv/dev/mii/rdcphy.c projects/powernv/dev/mii/rdcphyreg.h projects/powernv/dev/mii/smcphy.c projects/powernv/dev/mii/smscphy.c projects/powernv/dev/mii/tdkphy.c projects/powernv/dev/mii/tdkphyreg.h projects/powernv/dev/mii/tlphy.c projects/powernv/dev/mii/tlphyreg.h projects/powernv/dev/mii/ukphy.c projects/powernv/dev/mii/ukphy_subr.c projects/powernv/dev/mk48txx/mk48txx.c projects/powernv/dev/mk48txx/mk48txxreg.h projects/powernv/dev/mk48txx/mk48txxvar.h projects/powernv/dev/mlx/mlx.c projects/powernv/dev/mlx/mlx_disk.c projects/powernv/dev/mlx/mlx_pci.c projects/powernv/dev/mlx/mlxio.h projects/powernv/dev/mlx/mlxreg.h projects/powernv/dev/mlx/mlxvar.h projects/powernv/dev/mlx4/mlx4_core/icm.h projects/powernv/dev/mlx4/mlx4_en/en.h projects/powernv/dev/mlx5/device.h projects/powernv/dev/mlx5/mlx5_en/en.h projects/powernv/dev/mlx5/mlx5_en/mlx5_en_main.c projects/powernv/dev/mlx5/mlx5_en/mlx5_en_rx.c projects/powernv/dev/mly/mly.c projects/powernv/dev/mly/mly_tables.h projects/powernv/dev/mly/mlyio.h projects/powernv/dev/mly/mlyreg.h projects/powernv/dev/mly/mlyvar.h projects/powernv/dev/mmc/bridge.h projects/powernv/dev/mmc/host/dwmmc.c projects/powernv/dev/mmc/mmc.c projects/powernv/dev/mmc/mmcbrvar.h projects/powernv/dev/mmc/mmcreg.h projects/powernv/dev/mmc/mmcsd.c projects/powernv/dev/mmc/mmcvar.h projects/powernv/dev/mn/if_mn.c projects/powernv/dev/mps/mpi/mpi2.h projects/powernv/dev/mps/mpi/mpi2_cnfg.h projects/powernv/dev/mps/mpi/mpi2_hbd.h projects/powernv/dev/mps/mpi/mpi2_init.h projects/powernv/dev/mps/mpi/mpi2_ioc.h projects/powernv/dev/mps/mpi/mpi2_ra.h projects/powernv/dev/mps/mpi/mpi2_raid.h projects/powernv/dev/mps/mpi/mpi2_sas.h projects/powernv/dev/mps/mpi/mpi2_targ.h projects/powernv/dev/mps/mpi/mpi2_tool.h projects/powernv/dev/mps/mpi/mpi2_type.h projects/powernv/dev/mps/mps.c projects/powernv/dev/mps/mps_config.c projects/powernv/dev/mps/mps_mapping.c projects/powernv/dev/mps/mps_mapping.h projects/powernv/dev/mps/mps_pci.c projects/powernv/dev/mps/mps_sas.c projects/powernv/dev/mps/mps_sas.h projects/powernv/dev/mps/mps_sas_lsi.c projects/powernv/dev/mps/mps_table.c projects/powernv/dev/mps/mps_table.h projects/powernv/dev/mps/mpsvar.h projects/powernv/dev/mpt/mpt.c projects/powernv/dev/mpt/mpt.h projects/powernv/dev/mpt/mpt_cam.c projects/powernv/dev/mpt/mpt_cam.h projects/powernv/dev/mpt/mpt_debug.c projects/powernv/dev/mpt/mpt_pci.c projects/powernv/dev/mpt/mpt_raid.c projects/powernv/dev/mpt/mpt_raid.h projects/powernv/dev/mpt/mpt_reg.h projects/powernv/dev/mse/mse.c projects/powernv/dev/mse/mse_isa.c projects/powernv/dev/mse/msevar.h projects/powernv/dev/mvs/mvs.c projects/powernv/dev/mvs/mvs.h projects/powernv/dev/mvs/mvs_pci.c projects/powernv/dev/mvs/mvs_soc.c projects/powernv/dev/mwl/if_mwl.c projects/powernv/dev/mwl/if_mwl_pci.c projects/powernv/dev/mwl/if_mwlioctl.h projects/powernv/dev/mwl/if_mwlvar.h projects/powernv/dev/mwl/mwldiag.h projects/powernv/dev/mwl/mwlhal.c projects/powernv/dev/mwl/mwlhal.h projects/powernv/dev/mwl/mwlreg.h projects/powernv/dev/mxge/eth_z8e.h projects/powernv/dev/mxge/ethp_z8e.h projects/powernv/dev/mxge/if_mxge.c projects/powernv/dev/mxge/if_mxge_var.h projects/powernv/dev/mxge/mcp_gen_header.h projects/powernv/dev/mxge/mxge_mcp.h projects/powernv/dev/mxge/rss_eth_z8e.h projects/powernv/dev/mxge/rss_ethp_z8e.h projects/powernv/dev/my/if_my.c projects/powernv/dev/my/if_myreg.h projects/powernv/dev/nand/nand.c projects/powernv/dev/nand/nand.h projects/powernv/dev/nand/nand_bbt.c projects/powernv/dev/nand/nand_cdev.c projects/powernv/dev/nand/nand_dev.h projects/powernv/dev/nand/nand_ecc_pos.h projects/powernv/dev/nand/nand_generic.c projects/powernv/dev/nand/nand_geom.c projects/powernv/dev/nand/nand_id.c projects/powernv/dev/nand/nandbus.c projects/powernv/dev/nand/nandbus.h projects/powernv/dev/nand/nandsim.c projects/powernv/dev/nand/nandsim.h projects/powernv/dev/nand/nandsim_chip.c projects/powernv/dev/nand/nandsim_chip.h projects/powernv/dev/nand/nandsim_ctrl.c projects/powernv/dev/nand/nandsim_log.c projects/powernv/dev/nand/nandsim_log.h projects/powernv/dev/nand/nandsim_swap.c projects/powernv/dev/nand/nandsim_swap.h projects/powernv/dev/nand/nfc_at91.c projects/powernv/dev/nand/nfc_at91.h projects/powernv/dev/nand/nfc_fsl.c projects/powernv/dev/nand/nfc_fsl.h projects/powernv/dev/nand/nfc_mv.c projects/powernv/dev/ncv/ncr53c500.c projects/powernv/dev/ncv/ncr53c500_pccard.c projects/powernv/dev/ncv/ncr53c500hw.h projects/powernv/dev/ncv/ncr53c500hwtab.h projects/powernv/dev/ncv/ncr53c500reg.h projects/powernv/dev/ncv/ncr53c500var.h projects/powernv/dev/netmap/if_em_netmap.h projects/powernv/dev/netmap/if_igb_netmap.h projects/powernv/dev/netmap/if_lem_netmap.h projects/powernv/dev/netmap/if_re_netmap.h projects/powernv/dev/netmap/ixgbe_netmap.h projects/powernv/dev/netmap/netmap.c projects/powernv/dev/netmap/netmap_freebsd.c projects/powernv/dev/netmap/netmap_generic.c projects/powernv/dev/netmap/netmap_kern.h projects/powernv/dev/netmap/netmap_mbq.c projects/powernv/dev/netmap/netmap_mbq.h projects/powernv/dev/netmap/netmap_mem2.c projects/powernv/dev/netmap/netmap_mem2.h projects/powernv/dev/netmap/netmap_offloadings.c projects/powernv/dev/netmap/netmap_pipe.c projects/powernv/dev/netmap/netmap_vale.c projects/powernv/dev/nsp/nsp.c projects/powernv/dev/nsp/nsp_pccard.c projects/powernv/dev/nsp/nspreg.h projects/powernv/dev/nsp/nspvar.h projects/powernv/dev/ntb/ntb_hw/ntb_hw_intel.c projects/powernv/dev/null/null.c projects/powernv/dev/nvd/nvd.c projects/powernv/dev/nvme/nvme.c projects/powernv/dev/nvme/nvme.h projects/powernv/dev/nvme/nvme_ctrlr.c projects/powernv/dev/nvme/nvme_ctrlr_cmd.c projects/powernv/dev/nvme/nvme_ns.c projects/powernv/dev/nvme/nvme_ns_cmd.c projects/powernv/dev/nvme/nvme_private.h projects/powernv/dev/nvme/nvme_qpair.c projects/powernv/dev/nvme/nvme_sim.c projects/powernv/dev/nvme/nvme_sysctl.c projects/powernv/dev/nvme/nvme_test.c projects/powernv/dev/nvme/nvme_util.c projects/powernv/dev/nvram/nvram.c projects/powernv/dev/nvram2env/nvram2env.c projects/powernv/dev/nxge/if_nxge.c projects/powernv/dev/nxge/if_nxge.h projects/powernv/dev/nxge/include/version.h projects/powernv/dev/nxge/include/xge-debug.h projects/powernv/dev/nxge/include/xge-defs.h projects/powernv/dev/nxge/include/xge-list.h projects/powernv/dev/nxge/include/xge-os-pal.h projects/powernv/dev/nxge/include/xge-queue.h projects/powernv/dev/nxge/include/xgehal-channel.h projects/powernv/dev/nxge/include/xgehal-config.h projects/powernv/dev/nxge/include/xgehal-device.h projects/powernv/dev/nxge/include/xgehal-driver.h projects/powernv/dev/nxge/include/xgehal-event.h projects/powernv/dev/nxge/include/xgehal-fifo.h projects/powernv/dev/nxge/include/xgehal-mgmt.h projects/powernv/dev/nxge/include/xgehal-mgmtaux.h projects/powernv/dev/nxge/include/xgehal-mm.h projects/powernv/dev/nxge/include/xgehal-regs.h projects/powernv/dev/nxge/include/xgehal-ring.h projects/powernv/dev/nxge/include/xgehal-stats.h projects/powernv/dev/nxge/include/xgehal-types.h projects/powernv/dev/nxge/include/xgehal.h projects/powernv/dev/nxge/xge-osdep.h projects/powernv/dev/nxge/xgehal/xge-queue.c projects/powernv/dev/nxge/xgehal/xgehal-channel-fp.c projects/powernv/dev/nxge/xgehal/xgehal-channel.c projects/powernv/dev/nxge/xgehal/xgehal-config.c projects/powernv/dev/nxge/xgehal/xgehal-device-fp.c projects/powernv/dev/nxge/xgehal/xgehal-device.c projects/powernv/dev/nxge/xgehal/xgehal-driver.c projects/powernv/dev/nxge/xgehal/xgehal-fifo-fp.c projects/powernv/dev/nxge/xgehal/xgehal-fifo.c projects/powernv/dev/nxge/xgehal/xgehal-mgmt.c projects/powernv/dev/nxge/xgehal/xgehal-mgmtaux.c projects/powernv/dev/nxge/xgehal/xgehal-mm.c projects/powernv/dev/nxge/xgehal/xgehal-ring-fp.c projects/powernv/dev/nxge/xgehal/xgehal-ring.c projects/powernv/dev/nxge/xgehal/xgehal-stats.c projects/powernv/dev/nxge/xgell-version.h projects/powernv/dev/ofw/ofw_bus.h projects/powernv/dev/ofw/ofw_bus_subr.c projects/powernv/dev/ofw/ofw_bus_subr.h projects/powernv/dev/ofw/ofw_console.c projects/powernv/dev/ofw/ofw_disk.c projects/powernv/dev/ofw/ofw_fdt.c projects/powernv/dev/ofw/ofw_pci.h projects/powernv/dev/ofw/ofw_standard.c projects/powernv/dev/ofw/ofwpci.c projects/powernv/dev/ofw/ofwvar.h projects/powernv/dev/ofw/openfirm.c projects/powernv/dev/ofw/openfirm.h projects/powernv/dev/ofw/openpromio.c projects/powernv/dev/ofw/openpromio.h projects/powernv/dev/pbio/pbio.c projects/powernv/dev/pbio/pbioio.h projects/powernv/dev/pccard/pccard.c projects/powernv/dev/pccard/pccard_cis.c projects/powernv/dev/pccard/pccard_cis.h projects/powernv/dev/pccard/pccard_cis_quirks.c projects/powernv/dev/pccard/pccard_device.c projects/powernv/dev/pccard/pccardreg.h projects/powernv/dev/pccard/pccardvar.h projects/powernv/dev/pccard/pccardvarp.h projects/powernv/dev/pccbb/pccbb.c projects/powernv/dev/pccbb/pccbb_isa.c projects/powernv/dev/pccbb/pccbb_pci.c projects/powernv/dev/pccbb/pccbbdevid.h projects/powernv/dev/pccbb/pccbbreg.h projects/powernv/dev/pccbb/pccbbvar.h projects/powernv/dev/pcf/envctrl.c projects/powernv/dev/pcf/pcf.c projects/powernv/dev/pcf/pcf_ebus.c projects/powernv/dev/pcf/pcf_isa.c projects/powernv/dev/pcf/pcfvar.h projects/powernv/dev/pci/fixup_pci.c projects/powernv/dev/pci/hostb_pci.c projects/powernv/dev/pci/ignore_pci.c projects/powernv/dev/pci/isa_pci.c projects/powernv/dev/pci/pci.c projects/powernv/dev/pci/pci_pci.c projects/powernv/dev/pci/pci_private.h projects/powernv/dev/pci/pci_subr.c projects/powernv/dev/pci/pci_user.c projects/powernv/dev/pci/pcib_private.h projects/powernv/dev/pci/pcireg.h projects/powernv/dev/pci/pcivar.h projects/powernv/dev/pci/vga_pci.c projects/powernv/dev/pdq/if_fpa.c projects/powernv/dev/pdq/pdq.c projects/powernv/dev/pdq/pdq_freebsd.h projects/powernv/dev/pdq/pdq_ifsubr.c projects/powernv/dev/pdq/pdqreg.h projects/powernv/dev/pdq/pdqvar.h projects/powernv/dev/powermac_nvram/powermac_nvram.c projects/powernv/dev/powermac_nvram/powermac_nvramvar.h projects/powernv/dev/ppbus/if_plip.c projects/powernv/dev/ppbus/immio.c projects/powernv/dev/ppbus/lpbb.c projects/powernv/dev/ppbus/lpt.h projects/powernv/dev/ppbus/pcfclock.c projects/powernv/dev/ppbus/ppb_1284.c projects/powernv/dev/ppbus/ppb_1284.h projects/powernv/dev/ppbus/ppb_base.c projects/powernv/dev/ppbus/ppb_msq.c projects/powernv/dev/ppbus/ppb_msq.h projects/powernv/dev/ppbus/ppbconf.c projects/powernv/dev/ppbus/ppbconf.h projects/powernv/dev/ppbus/ppbio.h projects/powernv/dev/ppbus/ppi.c projects/powernv/dev/ppbus/ppi.h projects/powernv/dev/ppbus/pps.c projects/powernv/dev/ppbus/vpo.c projects/powernv/dev/ppbus/vpoio.c projects/powernv/dev/ppbus/vpoio.h projects/powernv/dev/ppc/ppc.c projects/powernv/dev/ppc/ppc_acpi.c projects/powernv/dev/ppc/ppc_isa.c projects/powernv/dev/ppc/ppc_pci.c projects/powernv/dev/ppc/ppc_puc.c projects/powernv/dev/ppc/ppcreg.h projects/powernv/dev/ppc/ppcvar.h projects/powernv/dev/pst/pst-iop.c projects/powernv/dev/pst/pst-iop.h projects/powernv/dev/pst/pst-pci.c projects/powernv/dev/pst/pst-raid.c projects/powernv/dev/pty/pty.c projects/powernv/dev/puc/puc.c projects/powernv/dev/puc/puc_bfe.h projects/powernv/dev/puc/puc_bus.h projects/powernv/dev/puc/puc_cfg.c projects/powernv/dev/puc/puc_cfg.h projects/powernv/dev/puc/puc_pccard.c projects/powernv/dev/puc/puc_pci.c projects/powernv/dev/puc/pucdata.c projects/powernv/dev/qlxgb/qla_dbg.c projects/powernv/dev/qlxgb/qla_dbg.h projects/powernv/dev/qlxgb/qla_def.h projects/powernv/dev/qlxgb/qla_glbl.h projects/powernv/dev/qlxgb/qla_hw.c projects/powernv/dev/qlxgb/qla_hw.h projects/powernv/dev/qlxgb/qla_inline.h projects/powernv/dev/qlxgb/qla_ioctl.c projects/powernv/dev/qlxgb/qla_ioctl.h projects/powernv/dev/qlxgb/qla_isr.c projects/powernv/dev/qlxgb/qla_misc.c projects/powernv/dev/qlxgb/qla_os.c projects/powernv/dev/qlxgb/qla_os.h projects/powernv/dev/qlxgb/qla_reg.h projects/powernv/dev/qlxgb/qla_ver.h projects/powernv/dev/qlxgbe/ql_dbg.c projects/powernv/dev/qlxgbe/ql_dbg.h projects/powernv/dev/qlxgbe/ql_def.h projects/powernv/dev/qlxgbe/ql_glbl.h projects/powernv/dev/qlxgbe/ql_hw.c projects/powernv/dev/qlxgbe/ql_hw.h projects/powernv/dev/qlxgbe/ql_inline.h projects/powernv/dev/qlxgbe/ql_ioctl.c projects/powernv/dev/qlxgbe/ql_ioctl.h projects/powernv/dev/qlxgbe/ql_isr.c projects/powernv/dev/qlxgbe/ql_misc.c projects/powernv/dev/qlxgbe/ql_os.c projects/powernv/dev/qlxgbe/ql_os.h projects/powernv/dev/qlxgbe/ql_reset.c projects/powernv/dev/qlxgbe/ql_tmplt.h projects/powernv/dev/qlxgbe/ql_ver.h projects/powernv/dev/qlxge/qls_dbg.c projects/powernv/dev/qlxge/qls_dbg.h projects/powernv/dev/qlxge/qls_def.h projects/powernv/dev/qlxge/qls_dump.c projects/powernv/dev/qlxge/qls_dump.h projects/powernv/dev/qlxge/qls_glbl.h projects/powernv/dev/qlxge/qls_hw.c projects/powernv/dev/qlxge/qls_hw.h projects/powernv/dev/qlxge/qls_inline.h projects/powernv/dev/qlxge/qls_ioctl.c projects/powernv/dev/qlxge/qls_ioctl.h projects/powernv/dev/qlxge/qls_isr.c projects/powernv/dev/qlxge/qls_os.c projects/powernv/dev/qlxge/qls_os.h projects/powernv/dev/qlxge/qls_ver.h projects/powernv/dev/quicc/quicc_bfe.h projects/powernv/dev/quicc/quicc_bfe_fdt.c projects/powernv/dev/quicc/quicc_bus.h projects/powernv/dev/quicc/quicc_core.c projects/powernv/dev/rc/rc.c projects/powernv/dev/rc/rcreg.h projects/powernv/dev/rndtest/rndtest.c projects/powernv/dev/rndtest/rndtest.h projects/powernv/dev/rp/rp.c projects/powernv/dev/rp/rp_isa.c projects/powernv/dev/rp/rp_pci.c projects/powernv/dev/rp/rpreg.h projects/powernv/dev/rp/rpvar.h projects/powernv/dev/rt/if_rt.c projects/powernv/dev/rt/if_rtreg.h projects/powernv/dev/rt/if_rtvar.h projects/powernv/dev/rtwn/usb/rtwn_usb_attach.h projects/powernv/dev/safe/safe.c projects/powernv/dev/safe/safereg.h projects/powernv/dev/safe/safevar.h projects/powernv/dev/sbni/if_sbni_isa.c projects/powernv/dev/scc/scc_bfe.h projects/powernv/dev/scc/scc_bfe_ebus.c projects/powernv/dev/scc/scc_bfe_macio.c projects/powernv/dev/scc/scc_bfe_quicc.c projects/powernv/dev/scc/scc_bfe_sbus.c projects/powernv/dev/scc/scc_bus.h projects/powernv/dev/scc/scc_core.c projects/powernv/dev/scc/scc_dev_quicc.c projects/powernv/dev/scc/scc_dev_sab82532.c projects/powernv/dev/scc/scc_dev_z8530.c projects/powernv/dev/sdhci/sdhci.c projects/powernv/dev/sdhci/sdhci.h projects/powernv/dev/sdhci/sdhci_fdt.c projects/powernv/dev/sdhci/sdhci_pci.c projects/powernv/dev/sec/sec.c projects/powernv/dev/sec/sec.h projects/powernv/dev/sfxge/common/efsys.h projects/powernv/dev/sfxge/common/efx.h projects/powernv/dev/sfxge/common/efx_bootcfg.c projects/powernv/dev/sfxge/common/efx_ev.c projects/powernv/dev/sfxge/common/efx_filter.c projects/powernv/dev/sfxge/common/efx_impl.h projects/powernv/dev/sfxge/common/efx_intr.c projects/powernv/dev/sfxge/common/efx_mac.c projects/powernv/dev/sfxge/common/efx_mcdi.c projects/powernv/dev/sfxge/common/efx_mcdi.h projects/powernv/dev/sfxge/common/efx_mon.c projects/powernv/dev/sfxge/common/efx_nic.c projects/powernv/dev/sfxge/common/efx_nvram.c projects/powernv/dev/sfxge/common/efx_phy.c projects/powernv/dev/sfxge/common/efx_port.c projects/powernv/dev/sfxge/common/efx_regs.h projects/powernv/dev/sfxge/common/efx_regs_ef10.h projects/powernv/dev/sfxge/common/efx_regs_mcdi.h projects/powernv/dev/sfxge/common/efx_regs_pci.h projects/powernv/dev/sfxge/common/efx_rx.c projects/powernv/dev/sfxge/common/efx_sram.c projects/powernv/dev/sfxge/common/efx_tx.c projects/powernv/dev/sfxge/common/efx_types.h projects/powernv/dev/sfxge/common/efx_vpd.c projects/powernv/dev/sfxge/common/siena_flash.h projects/powernv/dev/sfxge/common/siena_impl.h projects/powernv/dev/sfxge/common/siena_mac.c projects/powernv/dev/sfxge/common/siena_nic.c projects/powernv/dev/sfxge/common/siena_nvram.c projects/powernv/dev/sfxge/common/siena_phy.c projects/powernv/dev/sfxge/common/siena_sram.c projects/powernv/dev/sfxge/common/siena_vpd.c projects/powernv/dev/sfxge/sfxge.c projects/powernv/dev/sfxge/sfxge.h projects/powernv/dev/sfxge/sfxge_dma.c projects/powernv/dev/sfxge/sfxge_ev.c projects/powernv/dev/sfxge/sfxge_intr.c projects/powernv/dev/sfxge/sfxge_mcdi.c projects/powernv/dev/sfxge/sfxge_port.c projects/powernv/dev/sfxge/sfxge_rx.c projects/powernv/dev/sfxge/sfxge_rx.h projects/powernv/dev/sfxge/sfxge_tx.c projects/powernv/dev/sfxge/sfxge_tx.h projects/powernv/dev/siba/siba_bwn.c projects/powernv/dev/siba/siba_core.c projects/powernv/dev/siba/siba_ids.h projects/powernv/dev/siba/sibareg.h projects/powernv/dev/siba/sibavar.h projects/powernv/dev/siis/siis.c projects/powernv/dev/siis/siis.h projects/powernv/dev/sio/sio.c projects/powernv/dev/sio/sio_isa.c projects/powernv/dev/sio/sio_pccard.c projects/powernv/dev/sio/sio_pci.c projects/powernv/dev/sio/sio_puc.c projects/powernv/dev/smbus/smb.c projects/powernv/dev/smbus/smb.h projects/powernv/dev/smbus/smbconf.c projects/powernv/dev/smbus/smbconf.h projects/powernv/dev/smbus/smbus.c projects/powernv/dev/smbus/smbus.h projects/powernv/dev/smc/if_smc.c projects/powernv/dev/smc/if_smc_fdt.c projects/powernv/dev/smc/if_smcreg.h projects/powernv/dev/smc/if_smcvar.h projects/powernv/dev/sn/if_sn.c projects/powernv/dev/sn/if_sn_isa.c projects/powernv/dev/sn/if_sn_pccard.c projects/powernv/dev/sn/if_snreg.h projects/powernv/dev/sn/if_snvar.h projects/powernv/dev/sn/ositech.h projects/powernv/dev/snp/snp.c projects/powernv/dev/sound/chip.h projects/powernv/dev/sound/clone.c projects/powernv/dev/sound/clone.h projects/powernv/dev/sound/driver.c projects/powernv/dev/sound/isa/ad1816.c projects/powernv/dev/sound/isa/ad1816.h projects/powernv/dev/sound/isa/ess.c projects/powernv/dev/sound/isa/gusc.c projects/powernv/dev/sound/isa/mss.c projects/powernv/dev/sound/isa/mss.h projects/powernv/dev/sound/isa/sb.h projects/powernv/dev/sound/isa/sb16.c projects/powernv/dev/sound/isa/sb8.c projects/powernv/dev/sound/isa/sbc.c projects/powernv/dev/sound/isa/sndbuf_dma.c projects/powernv/dev/sound/macio/aoa.c projects/powernv/dev/sound/macio/aoa.h projects/powernv/dev/sound/macio/davbus.c projects/powernv/dev/sound/macio/davbusreg.h projects/powernv/dev/sound/macio/i2s.c projects/powernv/dev/sound/macio/onyx.c projects/powernv/dev/sound/macio/snapper.c projects/powernv/dev/sound/macio/tumbler.c projects/powernv/dev/sound/midi/midi.c projects/powernv/dev/sound/midi/midi.h projects/powernv/dev/sound/midi/midiq.h projects/powernv/dev/sound/midi/mpu401.c projects/powernv/dev/sound/midi/mpu401.h projects/powernv/dev/sound/midi/sequencer.c projects/powernv/dev/sound/midi/sequencer.h projects/powernv/dev/sound/pci/allegro_code.h projects/powernv/dev/sound/pci/allegro_reg.h projects/powernv/dev/sound/pci/als4000.c projects/powernv/dev/sound/pci/als4000.h projects/powernv/dev/sound/pci/atiixp.c projects/powernv/dev/sound/pci/atiixp.h projects/powernv/dev/sound/pci/aureal.c projects/powernv/dev/sound/pci/aureal.h projects/powernv/dev/sound/pci/cmi.c projects/powernv/dev/sound/pci/cmireg.h projects/powernv/dev/sound/pci/cs4281.c projects/powernv/dev/sound/pci/cs4281.h projects/powernv/dev/sound/pci/cs461x_dsp.h projects/powernv/dev/sound/pci/csa.c projects/powernv/dev/sound/pci/csapcm.c projects/powernv/dev/sound/pci/csareg.h projects/powernv/dev/sound/pci/csavar.h projects/powernv/dev/sound/pci/ds1-fw.h projects/powernv/dev/sound/pci/ds1.c projects/powernv/dev/sound/pci/emu10k1.c projects/powernv/dev/sound/pci/emu10kx-midi.c projects/powernv/dev/sound/pci/emu10kx-pcm.c projects/powernv/dev/sound/pci/emu10kx.c projects/powernv/dev/sound/pci/emu10kx.h projects/powernv/dev/sound/pci/envy24.c projects/powernv/dev/sound/pci/envy24.h projects/powernv/dev/sound/pci/envy24ht.c projects/powernv/dev/sound/pci/envy24ht.h projects/powernv/dev/sound/pci/es137x.c projects/powernv/dev/sound/pci/es137x.h projects/powernv/dev/sound/pci/fm801.c projects/powernv/dev/sound/pci/hda/hda_reg.h projects/powernv/dev/sound/pci/hda/hdaa.c projects/powernv/dev/sound/pci/hda/hdaa.h projects/powernv/dev/sound/pci/hda/hdaa_patches.c projects/powernv/dev/sound/pci/hda/hdac.c projects/powernv/dev/sound/pci/hda/hdac.h projects/powernv/dev/sound/pci/hda/hdac_private.h projects/powernv/dev/sound/pci/hda/hdac_reg.h projects/powernv/dev/sound/pci/hda/hdacc.c projects/powernv/dev/sound/pci/hdspe-pcm.c projects/powernv/dev/sound/pci/hdspe.c projects/powernv/dev/sound/pci/hdspe.h projects/powernv/dev/sound/pci/ich.c projects/powernv/dev/sound/pci/ich.h projects/powernv/dev/sound/pci/maestro.c projects/powernv/dev/sound/pci/maestro3.c projects/powernv/dev/sound/pci/maestro_reg.h projects/powernv/dev/sound/pci/neomagic-coeff.h projects/powernv/dev/sound/pci/neomagic.c projects/powernv/dev/sound/pci/neomagic.h projects/powernv/dev/sound/pci/solo.c projects/powernv/dev/sound/pci/spicds.c projects/powernv/dev/sound/pci/spicds.h projects/powernv/dev/sound/pci/t4dwave.c projects/powernv/dev/sound/pci/t4dwave.h projects/powernv/dev/sound/pci/via8233.c projects/powernv/dev/sound/pci/via8233.h projects/powernv/dev/sound/pci/via82c686.c projects/powernv/dev/sound/pci/via82c686.h projects/powernv/dev/sound/pci/vibes.c projects/powernv/dev/sound/pci/vibes.h projects/powernv/dev/sound/pcm/ac97.c projects/powernv/dev/sound/pcm/ac97.h projects/powernv/dev/sound/pcm/ac97_patch.c projects/powernv/dev/sound/pcm/ac97_patch.h projects/powernv/dev/sound/pcm/buffer.c projects/powernv/dev/sound/pcm/buffer.h projects/powernv/dev/sound/pcm/channel.c projects/powernv/dev/sound/pcm/channel.h projects/powernv/dev/sound/pcm/dsp.c projects/powernv/dev/sound/pcm/dsp.h projects/powernv/dev/sound/pcm/feeder.c projects/powernv/dev/sound/pcm/feeder.h projects/powernv/dev/sound/pcm/feeder_chain.c projects/powernv/dev/sound/pcm/feeder_eq.c projects/powernv/dev/sound/pcm/feeder_format.c projects/powernv/dev/sound/pcm/feeder_matrix.c projects/powernv/dev/sound/pcm/feeder_mixer.c projects/powernv/dev/sound/pcm/feeder_rate.c projects/powernv/dev/sound/pcm/feeder_volume.c projects/powernv/dev/sound/pcm/g711.h projects/powernv/dev/sound/pcm/intpcm.h projects/powernv/dev/sound/pcm/matrix.h projects/powernv/dev/sound/pcm/matrix_map.h projects/powernv/dev/sound/pcm/mixer.c projects/powernv/dev/sound/pcm/mixer.h projects/powernv/dev/sound/pcm/pcm.h projects/powernv/dev/sound/pcm/sndstat.c projects/powernv/dev/sound/pcm/sndstat.h projects/powernv/dev/sound/pcm/sound.c projects/powernv/dev/sound/pcm/sound.h projects/powernv/dev/sound/pcm/vchan.c projects/powernv/dev/sound/pcm/vchan.h projects/powernv/dev/sound/sbus/apcdmareg.h projects/powernv/dev/sound/sbus/cs4231.c projects/powernv/dev/sound/sbus/cs4231.h projects/powernv/dev/sound/unit.c projects/powernv/dev/sound/unit.h projects/powernv/dev/sound/usb/uaudio.c projects/powernv/dev/sound/usb/uaudio.h projects/powernv/dev/sound/usb/uaudio_pcm.c projects/powernv/dev/sound/usb/uaudioreg.h projects/powernv/dev/sound/version.h projects/powernv/dev/spibus/ofw_spibus.c projects/powernv/dev/stg/tmc18c30.c projects/powernv/dev/stg/tmc18c30_isa.c projects/powernv/dev/stg/tmc18c30_pccard.c projects/powernv/dev/stg/tmc18c30_pci.c projects/powernv/dev/stg/tmc18c30_subr.c projects/powernv/dev/stg/tmc18c30reg.h projects/powernv/dev/stg/tmc18c30var.h projects/powernv/dev/stge/if_stge.c projects/powernv/dev/stge/if_stgereg.h projects/powernv/dev/sym/sym_conf.h projects/powernv/dev/sym/sym_defs.h projects/powernv/dev/sym/sym_fw.h projects/powernv/dev/sym/sym_fw1.h projects/powernv/dev/sym/sym_fw2.h projects/powernv/dev/sym/sym_hipd.c projects/powernv/dev/syscons/apm/apm_saver.c projects/powernv/dev/syscons/blank/blank_saver.c projects/powernv/dev/syscons/daemon/daemon_saver.c projects/powernv/dev/syscons/dragon/dragon_saver.c projects/powernv/dev/syscons/fade/fade_saver.c projects/powernv/dev/syscons/fire/fire_saver.c projects/powernv/dev/syscons/green/green_saver.c projects/powernv/dev/syscons/logo/logo_saver.c projects/powernv/dev/syscons/rain/rain_saver.c projects/powernv/dev/syscons/scgfbrndr.c projects/powernv/dev/syscons/schistory.c projects/powernv/dev/syscons/scmouse.c projects/powernv/dev/syscons/scterm-teken.c projects/powernv/dev/syscons/scterm.c projects/powernv/dev/syscons/scvesactl.c projects/powernv/dev/syscons/scvgarndr.c projects/powernv/dev/syscons/scvidctl.c projects/powernv/dev/syscons/scvtb.c projects/powernv/dev/syscons/snake/snake_saver.c projects/powernv/dev/syscons/star/star_saver.c projects/powernv/dev/syscons/syscons.c projects/powernv/dev/syscons/syscons.h projects/powernv/dev/syscons/sysmouse.c projects/powernv/dev/syscons/warp/warp_saver.c projects/powernv/dev/tdfx/tdfx_io.h projects/powernv/dev/tdfx/tdfx_linux.c projects/powernv/dev/tdfx/tdfx_linux.h projects/powernv/dev/tdfx/tdfx_pci.c projects/powernv/dev/tdfx/tdfx_pci.h projects/powernv/dev/tdfx/tdfx_vars.h projects/powernv/dev/terasic/de4led/terasic_de4led.c projects/powernv/dev/terasic/de4led/terasic_de4led.h projects/powernv/dev/terasic/de4led/terasic_de4led_fdt.c projects/powernv/dev/terasic/de4led/terasic_de4led_nexus.c projects/powernv/dev/terasic/mtl/terasic_mtl.c projects/powernv/dev/terasic/mtl/terasic_mtl.h projects/powernv/dev/terasic/mtl/terasic_mtl_fdt.c projects/powernv/dev/terasic/mtl/terasic_mtl_nexus.c projects/powernv/dev/terasic/mtl/terasic_mtl_pixel.c projects/powernv/dev/terasic/mtl/terasic_mtl_reg.c projects/powernv/dev/terasic/mtl/terasic_mtl_syscons.c projects/powernv/dev/terasic/mtl/terasic_mtl_text.c projects/powernv/dev/trm/trm.c projects/powernv/dev/trm/trm.h projects/powernv/dev/tsec/if_tsec.c projects/powernv/dev/tsec/if_tsec.h projects/powernv/dev/tsec/if_tsec_fdt.c projects/powernv/dev/tsec/if_tsecreg.h projects/powernv/dev/twa/tw_cl.h projects/powernv/dev/twa/tw_cl_externs.h projects/powernv/dev/twa/tw_cl_fwif.h projects/powernv/dev/twa/tw_cl_init.c projects/powernv/dev/twa/tw_cl_intr.c projects/powernv/dev/twa/tw_cl_io.c projects/powernv/dev/twa/tw_cl_ioctl.h projects/powernv/dev/twa/tw_cl_misc.c projects/powernv/dev/twa/tw_cl_share.h projects/powernv/dev/twa/tw_osl.h projects/powernv/dev/twa/tw_osl_cam.c projects/powernv/dev/twa/tw_osl_externs.h projects/powernv/dev/twa/tw_osl_freebsd.c projects/powernv/dev/twa/tw_osl_includes.h projects/powernv/dev/twa/tw_osl_inline.h projects/powernv/dev/twa/tw_osl_ioctl.h projects/powernv/dev/twa/tw_osl_share.h projects/powernv/dev/twa/tw_osl_types.h projects/powernv/dev/twe/twe.c projects/powernv/dev/twe/twe_compat.h projects/powernv/dev/twe/twe_freebsd.c projects/powernv/dev/twe/twe_tables.h projects/powernv/dev/twe/tweio.h projects/powernv/dev/twe/twereg.h projects/powernv/dev/twe/twevar.h projects/powernv/dev/tws/tws_cam.c projects/powernv/dev/tx/if_tx.c projects/powernv/dev/tx/if_txreg.h projects/powernv/dev/tx/if_txvar.h projects/powernv/dev/txp/3c990img.h projects/powernv/dev/txp/if_txp.c projects/powernv/dev/txp/if_txpreg.h projects/powernv/dev/uart/uart.h projects/powernv/dev/uart/uart_bus.h projects/powernv/dev/uart/uart_bus_acpi.c projects/powernv/dev/uart/uart_bus_ebus.c projects/powernv/dev/uart/uart_bus_fdt.c projects/powernv/dev/uart/uart_bus_isa.c projects/powernv/dev/uart/uart_bus_pccard.c projects/powernv/dev/uart/uart_bus_pci.c projects/powernv/dev/uart/uart_bus_puc.c projects/powernv/dev/uart/uart_bus_scc.c projects/powernv/dev/uart/uart_core.c projects/powernv/dev/uart/uart_cpu.h projects/powernv/dev/uart/uart_cpu_arm64.c projects/powernv/dev/uart/uart_cpu_fdt.c projects/powernv/dev/uart/uart_cpu_powerpc.c projects/powernv/dev/uart/uart_cpu_sparc64.c projects/powernv/dev/uart/uart_cpu_x86.c projects/powernv/dev/uart/uart_dbg.c projects/powernv/dev/uart/uart_dev_imx.c projects/powernv/dev/uart/uart_dev_lpc.c projects/powernv/dev/uart/uart_dev_ns8250.c projects/powernv/dev/uart/uart_dev_ns8250.h projects/powernv/dev/uart/uart_dev_pl011.c projects/powernv/dev/uart/uart_dev_quicc.c projects/powernv/dev/uart/uart_dev_sab82532.c projects/powernv/dev/uart/uart_dev_snps.c projects/powernv/dev/uart/uart_dev_ti8250.c projects/powernv/dev/uart/uart_dev_z8530.c projects/powernv/dev/uart/uart_kbd_sun.c projects/powernv/dev/uart/uart_kbd_sun.h projects/powernv/dev/uart/uart_subr.c projects/powernv/dev/uart/uart_tty.c projects/powernv/dev/ubsec/ubsec.c projects/powernv/dev/ubsec/ubsecreg.h projects/powernv/dev/ubsec/ubsecvar.h projects/powernv/dev/usb/controller/at91dci.c projects/powernv/dev/usb/controller/at91dci.h projects/powernv/dev/usb/controller/at91dci_atmelarm.c projects/powernv/dev/usb/controller/at91dci_fdt.c projects/powernv/dev/usb/controller/atmegadci.c projects/powernv/dev/usb/controller/atmegadci.h projects/powernv/dev/usb/controller/atmegadci_atmelarm.c projects/powernv/dev/usb/controller/avr32dci.c projects/powernv/dev/usb/controller/avr32dci.h projects/powernv/dev/usb/controller/dwc_otg.c projects/powernv/dev/usb/controller/dwc_otg.h projects/powernv/dev/usb/controller/dwc_otg_fdt.c projects/powernv/dev/usb/controller/dwc_otgreg.h projects/powernv/dev/usb/controller/ehci.c projects/powernv/dev/usb/controller/ehci.h projects/powernv/dev/usb/controller/ehci_fsl.c projects/powernv/dev/usb/controller/ehci_imx.c projects/powernv/dev/usb/controller/ehci_ixp4xx.c projects/powernv/dev/usb/controller/ehci_pci.c projects/powernv/dev/usb/controller/ehcireg.h projects/powernv/dev/usb/controller/musb_otg.c projects/powernv/dev/usb/controller/musb_otg.h projects/powernv/dev/usb/controller/musb_otg_atmelarm.c projects/powernv/dev/usb/controller/ohci.c projects/powernv/dev/usb/controller/ohci.h projects/powernv/dev/usb/controller/ohci_pci.c projects/powernv/dev/usb/controller/ohci_s3c24x0.c projects/powernv/dev/usb/controller/ohcireg.h projects/powernv/dev/usb/controller/uhci.c projects/powernv/dev/usb/controller/uhci.h projects/powernv/dev/usb/controller/uhci_pci.c projects/powernv/dev/usb/controller/uhcireg.h projects/powernv/dev/usb/controller/usb_controller.c projects/powernv/dev/usb/controller/uss820dci.c projects/powernv/dev/usb/controller/uss820dci.h projects/powernv/dev/usb/controller/uss820dci_atmelarm.c projects/powernv/dev/usb/controller/xhci.c projects/powernv/dev/usb/controller/xhci.h projects/powernv/dev/usb/controller/xhci_pci.c projects/powernv/dev/usb/controller/xhcireg.h projects/powernv/dev/usb/gadget/g_audio.c projects/powernv/dev/usb/gadget/g_audio.h projects/powernv/dev/usb/gadget/g_keyboard.c projects/powernv/dev/usb/gadget/g_keyboard.h projects/powernv/dev/usb/gadget/g_modem.c projects/powernv/dev/usb/gadget/g_modem.h projects/powernv/dev/usb/gadget/g_mouse.c projects/powernv/dev/usb/gadget/g_mouse.h projects/powernv/dev/usb/input/atp.c projects/powernv/dev/usb/input/uep.c projects/powernv/dev/usb/input/uhid.c projects/powernv/dev/usb/input/ukbd.c projects/powernv/dev/usb/input/ums.c projects/powernv/dev/usb/input/usb_rdesc.h projects/powernv/dev/usb/input/wsp.c projects/powernv/dev/usb/misc/ufm.c projects/powernv/dev/usb/net/if_axge.c projects/powernv/dev/usb/net/if_axgereg.h projects/powernv/dev/usb/net/if_ipheth.c projects/powernv/dev/usb/net/if_iphethvar.h projects/powernv/dev/usb/net/if_mos.c projects/powernv/dev/usb/net/if_ruereg.h projects/powernv/dev/usb/net/if_smsc.c projects/powernv/dev/usb/net/if_smscreg.h projects/powernv/dev/usb/net/if_usie.c projects/powernv/dev/usb/net/if_usievar.h projects/powernv/dev/usb/net/ruephy.c projects/powernv/dev/usb/net/ruephyreg.h projects/powernv/dev/usb/net/uhso.c projects/powernv/dev/usb/net/usb_ethernet.c projects/powernv/dev/usb/net/usb_ethernet.h projects/powernv/dev/usb/quirk/usb_quirk.c projects/powernv/dev/usb/quirk/usb_quirk.h projects/powernv/dev/usb/serial/ubsa.c projects/powernv/dev/usb/serial/ubser.c projects/powernv/dev/usb/serial/uchcom.c projects/powernv/dev/usb/serial/ucycom.c projects/powernv/dev/usb/serial/ufoma.c projects/powernv/dev/usb/serial/uftdi.c projects/powernv/dev/usb/serial/ugensa.c projects/powernv/dev/usb/serial/uipaq.c projects/powernv/dev/usb/serial/ulpt.c projects/powernv/dev/usb/serial/umcs.c projects/powernv/dev/usb/serial/umcs.h projects/powernv/dev/usb/serial/umct.c projects/powernv/dev/usb/serial/umodem.c projects/powernv/dev/usb/serial/uplcom.c projects/powernv/dev/usb/serial/usb_serial.c projects/powernv/dev/usb/serial/usb_serial.h projects/powernv/dev/usb/serial/uvisor.c projects/powernv/dev/usb/serial/uvscom.c projects/powernv/dev/usb/storage/umass.c projects/powernv/dev/usb/storage/urio.c projects/powernv/dev/usb/storage/ustorage_fs.c projects/powernv/dev/usb/template/usb_template.c projects/powernv/dev/usb/template/usb_template.h projects/powernv/dev/usb/template/usb_template_audio.c projects/powernv/dev/usb/template/usb_template_cdce.c projects/powernv/dev/usb/template/usb_template_kbd.c projects/powernv/dev/usb/template/usb_template_modem.c projects/powernv/dev/usb/template/usb_template_mouse.c projects/powernv/dev/usb/template/usb_template_msc.c projects/powernv/dev/usb/template/usb_template_mtp.c projects/powernv/dev/usb/ufm_ioctl.h projects/powernv/dev/usb/usb.h projects/powernv/dev/usb/usb_bus.h projects/powernv/dev/usb/usb_busdma.c projects/powernv/dev/usb/usb_busdma.h projects/powernv/dev/usb/usb_cdc.h projects/powernv/dev/usb/usb_controller.h projects/powernv/dev/usb/usb_core.c projects/powernv/dev/usb/usb_core.h projects/powernv/dev/usb/usb_debug.c projects/powernv/dev/usb/usb_debug.h projects/powernv/dev/usb/usb_dev.c projects/powernv/dev/usb/usb_dev.h projects/powernv/dev/usb/usb_device.c projects/powernv/dev/usb/usb_device.h projects/powernv/dev/usb/usb_dynamic.c projects/powernv/dev/usb/usb_dynamic.h projects/powernv/dev/usb/usb_endian.h projects/powernv/dev/usb/usb_error.c projects/powernv/dev/usb/usb_freebsd.h projects/powernv/dev/usb/usb_freebsd_loader.h projects/powernv/dev/usb/usb_generic.c projects/powernv/dev/usb/usb_generic.h projects/powernv/dev/usb/usb_handle_request.c projects/powernv/dev/usb/usb_hid.c projects/powernv/dev/usb/usb_hub.c projects/powernv/dev/usb/usb_hub.h projects/powernv/dev/usb/usb_ioctl.h projects/powernv/dev/usb/usb_lookup.c projects/powernv/dev/usb/usb_mbuf.c projects/powernv/dev/usb/usb_mbuf.h projects/powernv/dev/usb/usb_msctest.c projects/powernv/dev/usb/usb_msctest.h projects/powernv/dev/usb/usb_parse.c projects/powernv/dev/usb/usb_pci.h projects/powernv/dev/usb/usb_process.c projects/powernv/dev/usb/usb_process.h projects/powernv/dev/usb/usb_request.c projects/powernv/dev/usb/usb_request.h projects/powernv/dev/usb/usb_transfer.c projects/powernv/dev/usb/usb_transfer.h projects/powernv/dev/usb/usb_util.c projects/powernv/dev/usb/usb_util.h projects/powernv/dev/usb/usbdevs projects/powernv/dev/usb/usbdi.h projects/powernv/dev/usb/usbdi_util.h projects/powernv/dev/usb/usbhid.h projects/powernv/dev/usb/wlan/if_uath.c projects/powernv/dev/usb/wlan/if_zydfw.h projects/powernv/dev/viawd/viawd.c projects/powernv/dev/viawd/viawd.h projects/powernv/dev/virtio/balloon/virtio_balloon.c projects/powernv/dev/virtio/block/virtio_blk.c projects/powernv/dev/virtio/network/if_vtnet.c projects/powernv/dev/virtio/network/if_vtnetvar.h projects/powernv/dev/virtio/pci/virtio_pci.c projects/powernv/dev/virtio/random/virtio_random.c projects/powernv/dev/virtio/scsi/virtio_scsi.c projects/powernv/dev/virtio/scsi/virtio_scsi.h projects/powernv/dev/virtio/scsi/virtio_scsivar.h projects/powernv/dev/virtio/virtio.c projects/powernv/dev/virtio/virtqueue.c projects/powernv/dev/virtio/virtqueue.h projects/powernv/dev/vkbd/vkbd.c projects/powernv/dev/vkbd/vkbd_var.h projects/powernv/dev/vmware/vmxnet3/if_vmx.c projects/powernv/dev/vnic/nic_main.c projects/powernv/dev/vnic/nicvf_main.c projects/powernv/dev/vnic/nicvf_queues.c projects/powernv/dev/vt/colors/vt_termcolors.c projects/powernv/dev/vt/colors/vt_termcolors.h projects/powernv/dev/vt/font/vt_font_default.c projects/powernv/dev/vt/font/vt_mouse_cursor.c projects/powernv/dev/vt/hw/efifb/efifb.c projects/powernv/dev/vt/hw/fb/vt_early_fb.c projects/powernv/dev/vt/hw/fb/vt_fb.c projects/powernv/dev/vt/hw/fb/vt_fb.h projects/powernv/dev/vt/hw/ofwfb/ofwfb.c projects/powernv/dev/vt/logo/logo_freebsd.c projects/powernv/dev/vt/vt.h projects/powernv/dev/vt/vt_buf.c projects/powernv/dev/vt/vt_consolectl.c projects/powernv/dev/vt/vt_core.c projects/powernv/dev/vt/vt_font.c projects/powernv/dev/vt/vt_sysmouse.c projects/powernv/dev/vte/if_vte.c projects/powernv/dev/vte/if_vtereg.h projects/powernv/dev/vte/if_vtevar.h projects/powernv/dev/vx/if_vx.c projects/powernv/dev/vx/if_vxreg.h projects/powernv/dev/vx/if_vxvar.h projects/powernv/dev/watchdog/watchdog.c projects/powernv/dev/wbwd/wbwd.c projects/powernv/dev/wtap/if_medium.c projects/powernv/dev/wtap/if_medium.h projects/powernv/dev/wtap/if_wtap.c projects/powernv/dev/wtap/if_wtap_module.c projects/powernv/dev/wtap/if_wtapioctl.h projects/powernv/dev/wtap/if_wtapvar.h projects/powernv/dev/wtap/plugins/visibility.c projects/powernv/dev/wtap/plugins/visibility.h projects/powernv/dev/wtap/plugins/visibility_ioctl.h projects/powernv/dev/wtap/plugins/wtap_plugin.h projects/powernv/dev/wtap/wtap_hal/hal.c projects/powernv/dev/wtap/wtap_hal/hal.h projects/powernv/dev/wtap/wtap_hal/handler.h projects/powernv/dev/xe/if_xe.c projects/powernv/dev/xe/if_xe_pccard.c projects/powernv/dev/xe/if_xereg.h projects/powernv/dev/xe/if_xevar.h projects/powernv/dev/xen/blkback/blkback.c projects/powernv/dev/xen/control/control.c projects/powernv/dev/xen/netback/netback.c projects/powernv/dev/xen/netback/netback_unit_tests.c projects/powernv/dev/xen/netfront/netfront.c projects/powernv/dev/xen/timer/timer.c projects/powernv/dev/xen/timer/timer.h projects/powernv/dev/xen/xenpci/xenpci.c projects/powernv/dev/xen/xenpci/xenpcivar.h projects/powernv/dev/xl/xlphy.c projects/powernv/fs/cd9660/cd9660_iconv.c projects/powernv/fs/cd9660/cd9660_vfsops.c projects/powernv/fs/devfs/devfs.h projects/powernv/fs/devfs/devfs_devs.c projects/powernv/fs/devfs/devfs_dir.c projects/powernv/fs/devfs/devfs_int.h projects/powernv/fs/devfs/devfs_rule.c projects/powernv/fs/devfs/devfs_vfsops.c projects/powernv/fs/devfs/devfs_vnops.c projects/powernv/fs/ext2fs/ext2_acl.c projects/powernv/fs/ext2fs/ext2_acl.h projects/powernv/fs/ext2fs/ext2_csum.c projects/powernv/fs/ext2fs/ext2_dinode.h projects/powernv/fs/ext2fs/ext2_dir.h projects/powernv/fs/ext2fs/ext2_extattr.c projects/powernv/fs/ext2fs/ext2_extattr.h projects/powernv/fs/ext2fs/ext2_extents.c projects/powernv/fs/ext2fs/ext2_extents.h projects/powernv/fs/ext2fs/ext2_hash.c projects/powernv/fs/ext2fs/ext2_htree.c projects/powernv/fs/ext2fs/ext2_inode_cnv.c projects/powernv/fs/ext2fs/ext2_vnops.c projects/powernv/fs/ext2fs/ext2fs.h projects/powernv/fs/ext2fs/htree.h projects/powernv/fs/fdescfs/fdesc_vnops.c projects/powernv/fs/fifofs/fifo_vnops.c projects/powernv/fs/fuse/fuse_param.h projects/powernv/fs/fuse/fuse_vnops.c projects/powernv/fs/msdosfs/denode.h projects/powernv/fs/msdosfs/direntry.h projects/powernv/fs/msdosfs/fat.h projects/powernv/fs/msdosfs/msdosfs_conv.c projects/powernv/fs/msdosfs/msdosfs_denode.c projects/powernv/fs/msdosfs/msdosfs_fat.c projects/powernv/fs/msdosfs/msdosfs_iconv.c projects/powernv/fs/msdosfs/msdosfs_lookup.c projects/powernv/fs/msdosfs/msdosfs_vfsops.c projects/powernv/fs/msdosfs/msdosfs_vnops.c projects/powernv/fs/msdosfs/msdosfsmount.h projects/powernv/fs/nandfs/bmap.c projects/powernv/fs/nandfs/bmap.h projects/powernv/fs/nandfs/nandfs.h projects/powernv/fs/nandfs/nandfs_alloc.c projects/powernv/fs/nandfs/nandfs_bmap.c projects/powernv/fs/nandfs/nandfs_buffer.c projects/powernv/fs/nandfs/nandfs_cleaner.c projects/powernv/fs/nandfs/nandfs_cpfile.c projects/powernv/fs/nandfs/nandfs_dat.c projects/powernv/fs/nandfs/nandfs_dir.c projects/powernv/fs/nandfs/nandfs_fs.h projects/powernv/fs/nandfs/nandfs_ifile.c projects/powernv/fs/nandfs/nandfs_mount.h projects/powernv/fs/nandfs/nandfs_segment.c projects/powernv/fs/nandfs/nandfs_subr.c projects/powernv/fs/nandfs/nandfs_subr.h projects/powernv/fs/nandfs/nandfs_sufile.c projects/powernv/fs/nandfs/nandfs_vfsops.c projects/powernv/fs/nandfs/nandfs_vnops.c projects/powernv/fs/nfs/nfs_commonacl.c projects/powernv/fs/nfs/nfs_commonkrpc.c projects/powernv/fs/nfs/nfs_commonport.c projects/powernv/fs/nfs/nfs_commonsubs.c projects/powernv/fs/nfs/nfscl.h projects/powernv/fs/nfs/nfsclstate.h projects/powernv/fs/nfs/nfsdport.h projects/powernv/fs/nfs/nfskpiport.h projects/powernv/fs/nfs/nfsport.h projects/powernv/fs/nfs/nfsproto.h projects/powernv/fs/nfs/nfsrvstate.h projects/powernv/fs/nfs/nfsv4_errstr.h projects/powernv/fs/nfsclient/nfs_clcomsubs.c projects/powernv/fs/nfsclient/nfs_clkdtrace.c projects/powernv/fs/nfsclient/nfs_clrpcops.c projects/powernv/fs/nfsclient/nfs_clstate.c projects/powernv/fs/nfsclient/nfs_clvnops.c projects/powernv/fs/nfsclient/nfs_kdtrace.h projects/powernv/fs/nfsclient/nlminfo.h projects/powernv/fs/nfsserver/nfs_fha_new.c projects/powernv/fs/nfsserver/nfs_fha_new.h projects/powernv/fs/nfsserver/nfs_nfsdport.c projects/powernv/fs/nfsserver/nfs_nfsdstate.c projects/powernv/fs/procfs/procfs_ioctl.c projects/powernv/fs/procfs/procfs_map.c projects/powernv/fs/pseudofs/pseudofs.c projects/powernv/fs/pseudofs/pseudofs.h projects/powernv/fs/pseudofs/pseudofs_fileno.c projects/powernv/fs/pseudofs/pseudofs_internal.h projects/powernv/fs/pseudofs/pseudofs_vncache.c projects/powernv/fs/pseudofs/pseudofs_vnops.c projects/powernv/fs/smbfs/smbfs.h projects/powernv/fs/smbfs/smbfs_io.c projects/powernv/fs/smbfs/smbfs_node.c projects/powernv/fs/smbfs/smbfs_node.h projects/powernv/fs/smbfs/smbfs_smb.c projects/powernv/fs/smbfs/smbfs_subr.c projects/powernv/fs/smbfs/smbfs_subr.h projects/powernv/fs/smbfs/smbfs_vfsops.c projects/powernv/fs/smbfs/smbfs_vnops.c projects/powernv/fs/tmpfs/tmpfs.h projects/powernv/fs/tmpfs/tmpfs_fifoops.c projects/powernv/fs/tmpfs/tmpfs_fifoops.h projects/powernv/fs/tmpfs/tmpfs_subr.c projects/powernv/fs/tmpfs/tmpfs_vfsops.c projects/powernv/fs/tmpfs/tmpfs_vnops.c projects/powernv/fs/tmpfs/tmpfs_vnops.h projects/powernv/fs/udf/ecma167-udf.h projects/powernv/fs/udf/udf.h projects/powernv/fs/udf/udf_iconv.c projects/powernv/fs/udf/udf_mount.h projects/powernv/fs/udf/udf_vfsops.c projects/powernv/fs/udf/udf_vnops.c projects/powernv/gdb/gdb.h projects/powernv/gdb/gdb_cons.c projects/powernv/gdb/gdb_int.h projects/powernv/gdb/gdb_main.c projects/powernv/gdb/gdb_packet.c projects/powernv/geom/bde/g_bde.c projects/powernv/geom/bde/g_bde.h projects/powernv/geom/bde/g_bde_crypt.c projects/powernv/geom/bde/g_bde_lock.c projects/powernv/geom/bde/g_bde_work.c projects/powernv/geom/cache/g_cache.c projects/powernv/geom/cache/g_cache.h projects/powernv/geom/concat/g_concat.c projects/powernv/geom/concat/g_concat.h projects/powernv/geom/eli/g_eli.c projects/powernv/geom/eli/g_eli.h projects/powernv/geom/eli/g_eli_crypto.c projects/powernv/geom/eli/g_eli_ctl.c projects/powernv/geom/eli/g_eli_hmac.c projects/powernv/geom/eli/g_eli_integrity.c projects/powernv/geom/eli/g_eli_key.c projects/powernv/geom/eli/g_eli_key_cache.c projects/powernv/geom/eli/g_eli_privacy.c projects/powernv/geom/eli/pkcs5v2.c projects/powernv/geom/eli/pkcs5v2.h projects/powernv/geom/gate/g_gate.c projects/powernv/geom/gate/g_gate.h projects/powernv/geom/geom.h projects/powernv/geom/geom_aes.c projects/powernv/geom/geom_bsd.c projects/powernv/geom/geom_bsd_enc.c projects/powernv/geom/geom_ccd.c projects/powernv/geom/geom_ctl.c projects/powernv/geom/geom_ctl.h projects/powernv/geom/geom_dev.c projects/powernv/geom/geom_disk.c projects/powernv/geom/geom_disk.h projects/powernv/geom/geom_dump.c projects/powernv/geom/geom_event.c projects/powernv/geom/geom_flashmap.c projects/powernv/geom/geom_fox.c projects/powernv/geom/geom_int.h projects/powernv/geom/geom_io.c projects/powernv/geom/geom_kern.c projects/powernv/geom/geom_map.c projects/powernv/geom/geom_mbr.c projects/powernv/geom/geom_mbr_enc.c projects/powernv/geom/geom_redboot.c projects/powernv/geom/geom_slice.c projects/powernv/geom/geom_slice.h projects/powernv/geom/geom_subr.c projects/powernv/geom/geom_sunlabel.c projects/powernv/geom/geom_sunlabel_enc.c projects/powernv/geom/geom_vfs.c projects/powernv/geom/geom_vfs.h projects/powernv/geom/geom_vol_ffs.c projects/powernv/geom/journal/g_journal.c projects/powernv/geom/journal/g_journal.h projects/powernv/geom/journal/g_journal_ufs.c projects/powernv/geom/label/g_label.c projects/powernv/geom/label/g_label.h projects/powernv/geom/label/g_label_disk_ident.c projects/powernv/geom/label/g_label_ext2fs.c projects/powernv/geom/label/g_label_gpt.c projects/powernv/geom/label/g_label_iso9660.c projects/powernv/geom/label/g_label_msdosfs.c projects/powernv/geom/label/g_label_msdosfs.h projects/powernv/geom/label/g_label_ntfs.c projects/powernv/geom/label/g_label_reiserfs.c projects/powernv/geom/label/g_label_ufs.c projects/powernv/geom/linux_lvm/g_linux_lvm.c projects/powernv/geom/linux_lvm/g_linux_lvm.h projects/powernv/geom/mirror/g_mirror.c projects/powernv/geom/mirror/g_mirror.h projects/powernv/geom/mirror/g_mirror_ctl.c projects/powernv/geom/mountver/g_mountver.c projects/powernv/geom/mountver/g_mountver.h projects/powernv/geom/multipath/g_multipath.c projects/powernv/geom/multipath/g_multipath.h projects/powernv/geom/nop/g_nop.c projects/powernv/geom/nop/g_nop.h projects/powernv/geom/part/g_part.c projects/powernv/geom/part/g_part.h projects/powernv/geom/part/g_part_apm.c projects/powernv/geom/part/g_part_bsd.c projects/powernv/geom/part/g_part_ebr.c projects/powernv/geom/part/g_part_gpt.c projects/powernv/geom/part/g_part_ldm.c projects/powernv/geom/part/g_part_mbr.c projects/powernv/geom/part/g_part_vtoc8.c projects/powernv/geom/raid/g_raid.c projects/powernv/geom/raid/g_raid.h projects/powernv/geom/raid/g_raid_ctl.c projects/powernv/geom/raid/md_ddf.c projects/powernv/geom/raid/md_ddf.h projects/powernv/geom/raid/md_intel.c projects/powernv/geom/raid/md_jmicron.c projects/powernv/geom/raid/md_nvidia.c projects/powernv/geom/raid/md_promise.c projects/powernv/geom/raid/md_sii.c projects/powernv/geom/raid/tr_concat.c projects/powernv/geom/raid/tr_raid0.c projects/powernv/geom/raid/tr_raid1.c projects/powernv/geom/raid/tr_raid1e.c projects/powernv/geom/raid/tr_raid5.c projects/powernv/geom/raid3/g_raid3.c projects/powernv/geom/raid3/g_raid3.h projects/powernv/geom/raid3/g_raid3_ctl.c projects/powernv/geom/sched/g_sched.c projects/powernv/geom/sched/g_sched.h projects/powernv/geom/sched/gs_rr.c projects/powernv/geom/sched/gs_scheduler.h projects/powernv/geom/shsec/g_shsec.c projects/powernv/geom/shsec/g_shsec.h projects/powernv/geom/stripe/g_stripe.c projects/powernv/geom/stripe/g_stripe.h projects/powernv/geom/uzip/g_uzip.c projects/powernv/geom/vinum/geom_vinum.c projects/powernv/geom/vinum/geom_vinum.h projects/powernv/geom/vinum/geom_vinum_create.c projects/powernv/geom/vinum/geom_vinum_drive.c projects/powernv/geom/vinum/geom_vinum_events.c projects/powernv/geom/vinum/geom_vinum_init.c projects/powernv/geom/vinum/geom_vinum_list.c projects/powernv/geom/vinum/geom_vinum_move.c projects/powernv/geom/vinum/geom_vinum_plex.c projects/powernv/geom/vinum/geom_vinum_raid5.c projects/powernv/geom/vinum/geom_vinum_raid5.h projects/powernv/geom/vinum/geom_vinum_rename.c projects/powernv/geom/vinum/geom_vinum_rm.c projects/powernv/geom/vinum/geom_vinum_share.h projects/powernv/geom/vinum/geom_vinum_state.c projects/powernv/geom/vinum/geom_vinum_volume.c projects/powernv/geom/virstor/binstream.c projects/powernv/geom/virstor/binstream.h projects/powernv/geom/virstor/g_virstor.c projects/powernv/geom/virstor/g_virstor.h projects/powernv/geom/virstor/g_virstor_md.c projects/powernv/geom/virstor/g_virstor_md.h projects/powernv/geom/zero/g_zero.c projects/powernv/gnu/dev/bwn/phy_n/if_bwn_phy_n_core.c projects/powernv/gnu/dev/bwn/phy_n/if_bwn_phy_n_ppr.c projects/powernv/gnu/dev/bwn/phy_n/if_bwn_phy_n_tables.c projects/powernv/gnu/dev/bwn/phy_n/if_bwn_radio_2055.c projects/powernv/gnu/dev/bwn/phy_n/if_bwn_radio_2056.c projects/powernv/gnu/dev/bwn/phy_n/if_bwn_radio_2057.c projects/powernv/i386/acpica/acpi_machdep.c projects/powernv/i386/acpica/acpi_wakecode.S projects/powernv/i386/bios/smapi.c projects/powernv/i386/cloudabi32/cloudabi32_sysvec.c projects/powernv/i386/conf/GENERIC projects/powernv/i386/conf/NOTES projects/powernv/i386/i386/atomic.c projects/powernv/i386/i386/bios.c projects/powernv/i386/i386/elan-mmcr.c projects/powernv/i386/i386/elf_machdep.c projects/powernv/i386/i386/gdb_machdep.c projects/powernv/i386/i386/geode.c projects/powernv/i386/i386/initcpu.c projects/powernv/i386/i386/io.c projects/powernv/i386/i386/k6_mem.c projects/powernv/i386/i386/locore.s projects/powernv/i386/i386/minidump_machdep.c projects/powernv/i386/i386/mp_clock.c projects/powernv/i386/i386/mp_machdep.c projects/powernv/i386/i386/pmap.c projects/powernv/i386/i386/ptrace_machdep.c projects/powernv/i386/i386/support.s projects/powernv/i386/i386/trap.c projects/powernv/i386/i386/vm86.c projects/powernv/i386/ibcs2/coff.h projects/powernv/i386/ibcs2/ibcs2_dirent.h projects/powernv/i386/ibcs2/ibcs2_errno.c projects/powernv/i386/ibcs2/ibcs2_errno.h projects/powernv/i386/ibcs2/ibcs2_fcntl.c projects/powernv/i386/ibcs2/ibcs2_fcntl.h projects/powernv/i386/ibcs2/ibcs2_ioctl.c projects/powernv/i386/ibcs2/ibcs2_ipc.c projects/powernv/i386/ibcs2/ibcs2_ipc.h projects/powernv/i386/ibcs2/ibcs2_isc.c projects/powernv/i386/ibcs2/ibcs2_mount.h projects/powernv/i386/ibcs2/ibcs2_msg.c projects/powernv/i386/ibcs2/ibcs2_other.c projects/powernv/i386/ibcs2/ibcs2_signal.c projects/powernv/i386/ibcs2/ibcs2_signal.h projects/powernv/i386/ibcs2/ibcs2_socksys.c projects/powernv/i386/ibcs2/ibcs2_socksys.h projects/powernv/i386/ibcs2/ibcs2_stat.c projects/powernv/i386/ibcs2/ibcs2_stat.h projects/powernv/i386/ibcs2/ibcs2_statfs.h projects/powernv/i386/ibcs2/ibcs2_stropts.h projects/powernv/i386/ibcs2/ibcs2_sysi86.c projects/powernv/i386/ibcs2/ibcs2_sysvec.c projects/powernv/i386/ibcs2/ibcs2_termios.h projects/powernv/i386/ibcs2/ibcs2_time.h projects/powernv/i386/ibcs2/ibcs2_types.h projects/powernv/i386/ibcs2/ibcs2_unistd.h projects/powernv/i386/ibcs2/ibcs2_ustat.h projects/powernv/i386/ibcs2/ibcs2_util.c projects/powernv/i386/ibcs2/ibcs2_util.h projects/powernv/i386/ibcs2/ibcs2_utime.h projects/powernv/i386/ibcs2/ibcs2_utsname.h projects/powernv/i386/ibcs2/ibcs2_xenix.c projects/powernv/i386/ibcs2/imgact_coff.c projects/powernv/i386/ibcs2/syscalls.master projects/powernv/i386/include/_bus.h projects/powernv/i386/include/atomic.h projects/powernv/i386/include/bootinfo.h projects/powernv/i386/include/bus_dma.h projects/powernv/i386/include/counter.h projects/powernv/i386/include/cputypes.h projects/powernv/i386/include/elan_mmcr.h projects/powernv/i386/include/gdb_machdep.h projects/powernv/i386/include/if_wl_wavelan.h projects/powernv/i386/include/intr_machdep.h projects/powernv/i386/include/ioctl_bt848.h projects/powernv/i386/include/ioctl_meteor.h projects/powernv/i386/include/iodev.h projects/powernv/i386/include/kdb.h projects/powernv/i386/include/memdev.h projects/powernv/i386/include/minidump.h projects/powernv/i386/include/mp_watchdog.h projects/powernv/i386/include/param.h projects/powernv/i386/include/pc/bios.h projects/powernv/i386/include/pcaudioio.h projects/powernv/i386/include/pcb_ext.h projects/powernv/i386/include/pcpu.h projects/powernv/i386/include/pmc_mdep.h projects/powernv/i386/include/ppireg.h projects/powernv/i386/include/runq.h projects/powernv/i386/include/sf_buf.h projects/powernv/i386/include/sigframe.h projects/powernv/i386/include/smapi.h projects/powernv/i386/include/timerreg.h projects/powernv/i386/include/ucontext.h projects/powernv/i386/include/vm.h projects/powernv/i386/include/vm86.h projects/powernv/i386/isa/ccbque.h projects/powernv/i386/isa/elink.c projects/powernv/i386/isa/elink.h projects/powernv/i386/isa/pmtimer.c projects/powernv/i386/isa/prof_machdep.c projects/powernv/i386/linux/imgact_linux.c projects/powernv/i386/linux/linux.h projects/powernv/i386/linux/linux_dummy.c projects/powernv/i386/linux/linux_machdep.c projects/powernv/i386/linux/linux_ptrace.c projects/powernv/i386/linux/linux_sysvec.c projects/powernv/i386/linux/syscalls.master projects/powernv/i386/pci/pci_cfgreg.c projects/powernv/i386/pci/pci_pir.c projects/powernv/isa/isa_common.c projects/powernv/isa/isa_common.h projects/powernv/isa/isa_dmareg.h projects/powernv/isa/isahint.c projects/powernv/isa/isavar.h projects/powernv/isa/pnp.c projects/powernv/isa/pnpparse.c projects/powernv/isa/pnpvar.h projects/powernv/isa/syscons_isa.c projects/powernv/isa/vga_isa.c projects/powernv/kern/imgact_aout.c projects/powernv/kern/imgact_elf.c projects/powernv/kern/imgact_elf32.c projects/powernv/kern/imgact_elf64.c projects/powernv/kern/imgact_gzip.c projects/powernv/kern/imgact_shell.c projects/powernv/kern/inflate.c projects/powernv/kern/kern_alq.c projects/powernv/kern/kern_clocksource.c projects/powernv/kern/kern_condvar.c projects/powernv/kern/kern_conf.c projects/powernv/kern/kern_context.c projects/powernv/kern/kern_cpu.c projects/powernv/kern/kern_cpuset.c projects/powernv/kern/kern_ctf.c projects/powernv/kern/kern_descrip.c projects/powernv/kern/kern_dtrace.c projects/powernv/kern/kern_environment.c projects/powernv/kern/kern_et.c projects/powernv/kern/kern_event.c projects/powernv/kern/kern_exec.c projects/powernv/kern/kern_fail.c projects/powernv/kern/kern_ffclock.c projects/powernv/kern/kern_hhook.c projects/powernv/kern/kern_idle.c projects/powernv/kern/kern_intr.c projects/powernv/kern/kern_jail.c projects/powernv/kern/kern_khelp.c projects/powernv/kern/kern_kthread.c projects/powernv/kern/kern_ktr.c projects/powernv/kern/kern_linker.c projects/powernv/kern/kern_lock.c projects/powernv/kern/kern_lockstat.c projects/powernv/kern/kern_loginclass.c projects/powernv/kern/kern_malloc.c projects/powernv/kern/kern_mbuf.c projects/powernv/kern/kern_module.c projects/powernv/kern/kern_mtxpool.c projects/powernv/kern/kern_mutex.c projects/powernv/kern/kern_osd.c projects/powernv/kern/kern_physio.c projects/powernv/kern/kern_pmc.c projects/powernv/kern/kern_poll.c projects/powernv/kern/kern_priv.c projects/powernv/kern/kern_proc.c projects/powernv/kern/kern_racct.c projects/powernv/kern/kern_rangelock.c projects/powernv/kern/kern_rctl.c projects/powernv/kern/kern_rwlock.c projects/powernv/kern/kern_sdt.c projects/powernv/kern/kern_sema.c projects/powernv/kern/kern_sharedpage.c projects/powernv/kern/kern_shutdown.c projects/powernv/kern/kern_switch.c projects/powernv/kern/kern_sx.c projects/powernv/kern/kern_synch.c projects/powernv/kern/kern_syscalls.c projects/powernv/kern/kern_tc.c projects/powernv/kern/kern_thr.c projects/powernv/kern/kern_thread.c projects/powernv/kern/kern_umtx.c projects/powernv/kern/kern_uuid.c projects/powernv/kern/link_elf.c projects/powernv/kern/link_elf_obj.c projects/powernv/kern/md4c.c projects/powernv/kern/sched_ule.c projects/powernv/kern/subr_acl_nfs4.c projects/powernv/kern/subr_acl_posix1e.c projects/powernv/kern/subr_bufring.c projects/powernv/kern/subr_bus.c projects/powernv/kern/subr_bus_dma.c projects/powernv/kern/subr_busdma_bufalloc.c projects/powernv/kern/subr_capability.c projects/powernv/kern/subr_counter.c projects/powernv/kern/subr_devstat.c projects/powernv/kern/subr_disk.c projects/powernv/kern/subr_dummy_vdso_tc.c projects/powernv/kern/subr_eventhandler.c projects/powernv/kern/subr_fattime.c projects/powernv/kern/subr_firmware.c projects/powernv/kern/subr_hints.c projects/powernv/kern/subr_kdb.c projects/powernv/kern/subr_kobj.c projects/powernv/kern/subr_lock.c projects/powernv/kern/subr_module.c projects/powernv/kern/subr_msgbuf.c projects/powernv/kern/subr_pcpu.c projects/powernv/kern/subr_pctrie.c projects/powernv/kern/subr_power.c projects/powernv/kern/subr_prf.c projects/powernv/kern/subr_sbuf.c projects/powernv/kern/subr_sleepqueue.c projects/powernv/kern/subr_smp.c projects/powernv/kern/subr_stack.c projects/powernv/kern/subr_taskqueue.c projects/powernv/kern/subr_terminal.c projects/powernv/kern/subr_turnstile.c projects/powernv/kern/subr_unit.c projects/powernv/kern/subr_vmem.c projects/powernv/kern/subr_witness.c projects/powernv/kern/sys_capability.c projects/powernv/kern/sys_generic.c projects/powernv/kern/sys_pipe.c projects/powernv/kern/sys_procdesc.c projects/powernv/kern/sys_process.c projects/powernv/kern/syscalls.master projects/powernv/kern/sysv_ipc.c projects/powernv/kern/sysv_msg.c projects/powernv/kern/sysv_sem.c projects/powernv/kern/sysv_shm.c projects/powernv/kern/tty.c projects/powernv/kern/tty_inq.c projects/powernv/kern/tty_outq.c projects/powernv/kern/tty_pts.c projects/powernv/kern/tty_tty.c projects/powernv/kern/tty_ttydisc.c projects/powernv/kern/uipc_accf.c projects/powernv/kern/uipc_debug.c projects/powernv/kern/uipc_mqueue.c projects/powernv/kern/uipc_sem.c projects/powernv/kern/uipc_shm.c projects/powernv/kern/vfs_acl.c projects/powernv/kern/vfs_aio.c projects/powernv/kern/vfs_bio.c projects/powernv/kern/vfs_cache.c projects/powernv/kern/vfs_default.c projects/powernv/kern/vfs_export.c projects/powernv/kern/vfs_extattr.c projects/powernv/kern/vfs_hash.c projects/powernv/kern/vfs_subr.c projects/powernv/kgssapi/gss_accept_sec_context.c projects/powernv/kgssapi/gss_acquire_cred.c projects/powernv/kgssapi/gss_add_oid_set_member.c projects/powernv/kgssapi/gss_canonicalize_name.c projects/powernv/kgssapi/gss_create_empty_oid_set.c projects/powernv/kgssapi/gss_delete_sec_context.c projects/powernv/kgssapi/gss_display_status.c projects/powernv/kgssapi/gss_export_name.c projects/powernv/kgssapi/gss_get_mic.c projects/powernv/kgssapi/gss_impl.c projects/powernv/kgssapi/gss_import_name.c projects/powernv/kgssapi/gss_init_sec_context.c projects/powernv/kgssapi/gss_names.c projects/powernv/kgssapi/gss_pname_to_uid.c projects/powernv/kgssapi/gss_release_buffer.c projects/powernv/kgssapi/gss_release_cred.c projects/powernv/kgssapi/gss_release_name.c projects/powernv/kgssapi/gss_release_oid_set.c projects/powernv/kgssapi/gss_set_cred_option.c projects/powernv/kgssapi/gss_test_oid_set_member.c projects/powernv/kgssapi/gss_unwrap.c projects/powernv/kgssapi/gss_verify_mic.c projects/powernv/kgssapi/gss_wrap.c projects/powernv/kgssapi/gss_wrap_size_limit.c projects/powernv/kgssapi/gssapi_impl.h projects/powernv/kgssapi/gssd_prot.c projects/powernv/kgssapi/gsstest.c projects/powernv/kgssapi/krb5/kcrypto.c projects/powernv/kgssapi/krb5/kcrypto.h projects/powernv/kgssapi/krb5/kcrypto_aes.c projects/powernv/kgssapi/krb5/kcrypto_arcfour.c projects/powernv/kgssapi/krb5/kcrypto_des.c projects/powernv/kgssapi/krb5/kcrypto_des3.c projects/powernv/kgssapi/krb5/krb5_mech.c projects/powernv/libkern/arm/aeabi_unwind.c projects/powernv/libkern/arm/ldivmod_helper.c projects/powernv/libkern/iconv.c projects/powernv/libkern/iconv_ucs.c projects/powernv/libkern/iconv_xlat.c projects/powernv/libkern/iconv_xlat16.c projects/powernv/libkern/inet_aton.c projects/powernv/libkern/memcchr.c projects/powernv/libkern/memmove.c projects/powernv/libkern/memset.c projects/powernv/libkern/strcspn.c projects/powernv/libkern/strdup.c projects/powernv/libkern/strlcat.c projects/powernv/libkern/strlen.c projects/powernv/libkern/strnlen.c projects/powernv/libkern/strspn.c projects/powernv/libkern/strstr.c projects/powernv/libkern/strvalid.c projects/powernv/mips/adm5120/adm5120_machdep.c projects/powernv/mips/adm5120/adm5120reg.h projects/powernv/mips/adm5120/admpci.c projects/powernv/mips/adm5120/console.c projects/powernv/mips/adm5120/if_admsw.c projects/powernv/mips/adm5120/if_admswreg.h projects/powernv/mips/adm5120/if_admswvar.h projects/powernv/mips/adm5120/obio.c projects/powernv/mips/adm5120/obiovar.h projects/powernv/mips/adm5120/uart_bus_adm5120.c projects/powernv/mips/adm5120/uart_cpu_adm5120.c projects/powernv/mips/adm5120/uart_dev_adm5120.c projects/powernv/mips/adm5120/uart_dev_adm5120.h projects/powernv/mips/alchemy/alchemy_machdep.c projects/powernv/mips/alchemy/aureg.h projects/powernv/mips/alchemy/obio.c projects/powernv/mips/alchemy/uart_bus_alchemy.c projects/powernv/mips/alchemy/uart_cpu_alchemy.c projects/powernv/mips/atheros/apb.c projects/powernv/mips/atheros/apbvar.h projects/powernv/mips/atheros/ar71xx_bus_space_reversed.c projects/powernv/mips/atheros/ar71xx_bus_space_reversed.h projects/powernv/mips/atheros/ar71xx_chip.c projects/powernv/mips/atheros/ar71xx_chip.h projects/powernv/mips/atheros/ar71xx_cpudef.h projects/powernv/mips/atheros/ar71xx_ehci.c projects/powernv/mips/atheros/ar71xx_fixup.c projects/powernv/mips/atheros/ar71xx_fixup.h projects/powernv/mips/atheros/ar71xx_gpio.c projects/powernv/mips/atheros/ar71xx_gpiovar.h projects/powernv/mips/atheros/ar71xx_machdep.c projects/powernv/mips/atheros/ar71xx_ohci.c projects/powernv/mips/atheros/ar71xx_pci.c projects/powernv/mips/atheros/ar71xx_pci_bus_space.c projects/powernv/mips/atheros/ar71xx_pci_bus_space.h projects/powernv/mips/atheros/ar71xx_setup.c projects/powernv/mips/atheros/ar71xx_setup.h projects/powernv/mips/atheros/ar71xx_spi.c projects/powernv/mips/atheros/ar71xx_wdog.c projects/powernv/mips/atheros/ar71xxreg.h projects/powernv/mips/atheros/ar724x_chip.c projects/powernv/mips/atheros/ar724x_chip.h projects/powernv/mips/atheros/ar724x_pci.c projects/powernv/mips/atheros/ar724xreg.h projects/powernv/mips/atheros/ar91xx_chip.c projects/powernv/mips/atheros/ar91xx_chip.h projects/powernv/mips/atheros/ar91xxreg.h projects/powernv/mips/atheros/ar933x_chip.c projects/powernv/mips/atheros/ar933x_chip.h projects/powernv/mips/atheros/ar933x_uart.h projects/powernv/mips/atheros/ar933xreg.h projects/powernv/mips/atheros/ar934x_chip.c projects/powernv/mips/atheros/ar934x_chip.h projects/powernv/mips/atheros/ar934xreg.h projects/powernv/mips/atheros/if_arge.c projects/powernv/mips/atheros/if_argevar.h projects/powernv/mips/atheros/pcf2123_rtc.c projects/powernv/mips/atheros/pcf2123reg.h projects/powernv/mips/atheros/uart_bus_ar71xx.c projects/powernv/mips/atheros/uart_bus_ar933x.c projects/powernv/mips/atheros/uart_cpu_ar71xx.c projects/powernv/mips/atheros/uart_cpu_ar933x.c projects/powernv/mips/atheros/uart_dev_ar933x.c projects/powernv/mips/atheros/uart_dev_ar933x.h projects/powernv/mips/beri/beri_machdep.c projects/powernv/mips/beri/beri_pic.c projects/powernv/mips/broadcom/bhnd_nexus.c projects/powernv/mips/cavium/ciu.c projects/powernv/mips/cavium/cryptocteon/cavium_crypto.c projects/powernv/mips/cavium/if_octm.c projects/powernv/mips/cavium/obio.c projects/powernv/mips/cavium/obiovar.h projects/powernv/mips/cavium/octe/ethernet-mv88e61xx.c projects/powernv/mips/cavium/octe/ethernet-mv88e61xx.h projects/powernv/mips/cavium/octe/mv88e61xxphy.c projects/powernv/mips/cavium/octe/mv88e61xxphyreg.h projects/powernv/mips/cavium/octe/octe.c projects/powernv/mips/cavium/octe/octebus.c projects/powernv/mips/cavium/octe/octebusvar.h projects/powernv/mips/cavium/octeon_cop2.h projects/powernv/mips/cavium/octeon_gpio.c projects/powernv/mips/cavium/octeon_gpiovar.h projects/powernv/mips/cavium/octeon_machdep.c projects/powernv/mips/cavium/octeon_mp.c projects/powernv/mips/cavium/octeon_pci_console.c projects/powernv/mips/cavium/octeon_pmc.c projects/powernv/mips/cavium/octeon_rnd.c projects/powernv/mips/cavium/octeon_rtc.c projects/powernv/mips/cavium/octeon_wdog.c projects/powernv/mips/cavium/octopci.c projects/powernv/mips/cavium/octopci_bus_space.c projects/powernv/mips/cavium/octopcivar.h projects/powernv/mips/cavium/uart_bus_octeonusart.c projects/powernv/mips/cavium/uart_cpu_octeonusart.c projects/powernv/mips/cavium/uart_dev_oct16550.c projects/powernv/mips/cavium/usb/octusb.c projects/powernv/mips/cavium/usb/octusb.h projects/powernv/mips/cavium/usb/octusb_octeon.c projects/powernv/mips/conf/BERI_SOCKIT projects/powernv/mips/conf/OCTEON1 projects/powernv/mips/conf/TP-WN1043ND projects/powernv/mips/gxemul/gxemul_machdep.c projects/powernv/mips/gxemul/mpreg.h projects/powernv/mips/idt/idt_machdep.c projects/powernv/mips/idt/idtpci.c projects/powernv/mips/idt/idtreg.h projects/powernv/mips/idt/if_kr.c projects/powernv/mips/idt/if_krreg.h projects/powernv/mips/idt/obio.c projects/powernv/mips/idt/obiovar.h projects/powernv/mips/idt/uart_bus_rc32434.c projects/powernv/mips/idt/uart_cpu_rc32434.c projects/powernv/mips/include/_bus.h projects/powernv/mips/include/_inttypes.h projects/powernv/mips/include/_stdint.h projects/powernv/mips/include/atomic.h projects/powernv/mips/include/bootinfo.h projects/powernv/mips/include/bus.h projects/powernv/mips/include/bus_dma.h projects/powernv/mips/include/cache.h projects/powernv/mips/include/cache_mipsNN.h projects/powernv/mips/include/cache_r4k.h projects/powernv/mips/include/cdefs.h projects/powernv/mips/include/counter.h projects/powernv/mips/include/cpufunc.h projects/powernv/mips/include/db_machdep.h projects/powernv/mips/include/elf.h projects/powernv/mips/include/fdt.h projects/powernv/mips/include/frame.h projects/powernv/mips/include/gdb_machdep.h projects/powernv/mips/include/hwfunc.h projects/powernv/mips/include/intr_machdep.h projects/powernv/mips/include/kdb.h projects/powernv/mips/include/memdev.h projects/powernv/mips/include/metadata.h projects/powernv/mips/include/minidump.h projects/powernv/mips/include/octeon_cop2.h projects/powernv/mips/include/ofw_machdep.h projects/powernv/mips/include/pcpu.h projects/powernv/mips/include/pte.h projects/powernv/mips/include/runq.h projects/powernv/mips/include/sc_machdep.h projects/powernv/mips/include/setjmp.h projects/powernv/mips/include/sf_buf.h projects/powernv/mips/include/sigframe.h projects/powernv/mips/include/tlb.h projects/powernv/mips/include/tls.h projects/powernv/mips/include/vdso.h projects/powernv/mips/include/vm.h projects/powernv/mips/malta/gt.c projects/powernv/mips/malta/gt_pci.c projects/powernv/mips/malta/gt_pci_bus_space.c projects/powernv/mips/malta/gt_pci_bus_space.h projects/powernv/mips/malta/gtreg.h projects/powernv/mips/malta/gtvar.h projects/powernv/mips/malta/malta_machdep.c projects/powernv/mips/malta/maltareg.h projects/powernv/mips/malta/obio.c projects/powernv/mips/malta/obiovar.h projects/powernv/mips/malta/uart_bus_maltausart.c projects/powernv/mips/malta/uart_cpu_maltausart.c projects/powernv/mips/malta/yamon.c projects/powernv/mips/malta/yamon.h projects/powernv/mips/mips/bus_space_generic.c projects/powernv/mips/mips/busdma_machdep.c projects/powernv/mips/mips/cache.c projects/powernv/mips/mips/cache_mipsNN.c projects/powernv/mips/mips/cpu.c projects/powernv/mips/mips/db_interface.c projects/powernv/mips/mips/db_trace.c projects/powernv/mips/mips/dump_machdep.c projects/powernv/mips/mips/elf_machdep.c projects/powernv/mips/mips/elf_trampoline.c projects/powernv/mips/mips/freebsd32_machdep.c projects/powernv/mips/mips/gdb_machdep.c projects/powernv/mips/mips/intr_machdep.c projects/powernv/mips/mips/libkern_machdep.c projects/powernv/mips/mips/machdep.c projects/powernv/mips/mips/minidump_machdep.c projects/powernv/mips/mips/mp_machdep.c projects/powernv/mips/mips/octeon_cop2.c projects/powernv/mips/mips/ptrace_machdep.c projects/powernv/mips/mips/sc_machdep.c projects/powernv/mips/mips/stack_machdep.c projects/powernv/mips/mips/stdatomic.c projects/powernv/mips/mips/support.S projects/powernv/mips/mips/tick.c projects/powernv/mips/mips/tlb.c projects/powernv/mips/mips/uma_machdep.c projects/powernv/mips/nlm/board.c projects/powernv/mips/nlm/board.h projects/powernv/mips/nlm/board_cpld.c projects/powernv/mips/nlm/board_eeprom.c projects/powernv/mips/nlm/bus_space_rmi.c projects/powernv/mips/nlm/bus_space_rmi_pci.c projects/powernv/mips/nlm/clock.h projects/powernv/mips/nlm/cms.c projects/powernv/mips/nlm/dev/net/mdio.c projects/powernv/mips/nlm/dev/net/nae.c projects/powernv/mips/nlm/dev/net/sgmii.c projects/powernv/mips/nlm/dev/net/ucore/ucore.h projects/powernv/mips/nlm/dev/net/ucore/ucore_app.c projects/powernv/mips/nlm/dev/net/xaui.c projects/powernv/mips/nlm/dev/net/xlpge.c projects/powernv/mips/nlm/dev/net/xlpge.h projects/powernv/mips/nlm/dev/sec/nlmrsa.c projects/powernv/mips/nlm/dev/sec/nlmrsalib.h projects/powernv/mips/nlm/dev/sec/nlmsec.c projects/powernv/mips/nlm/dev/sec/nlmseclib.c projects/powernv/mips/nlm/dev/sec/nlmseclib.h projects/powernv/mips/nlm/dev/sec/rsa_ucode.h projects/powernv/mips/nlm/hal/bridge.h projects/powernv/mips/nlm/hal/cop2.h projects/powernv/mips/nlm/hal/cpucontrol.h projects/powernv/mips/nlm/hal/fmn.c projects/powernv/mips/nlm/hal/fmn.h projects/powernv/mips/nlm/hal/gbu.h projects/powernv/mips/nlm/hal/haldefs.h projects/powernv/mips/nlm/hal/interlaken.h projects/powernv/mips/nlm/hal/iomap.h projects/powernv/mips/nlm/hal/mdio.h projects/powernv/mips/nlm/hal/mips-extns.h projects/powernv/mips/nlm/hal/mmu.h projects/powernv/mips/nlm/hal/nae.h projects/powernv/mips/nlm/hal/nlm_hal.c projects/powernv/mips/nlm/hal/nlmsaelib.h projects/powernv/mips/nlm/hal/pcibus.h projects/powernv/mips/nlm/hal/pic.h projects/powernv/mips/nlm/hal/poe.h projects/powernv/mips/nlm/hal/sgmii.h projects/powernv/mips/nlm/hal/sys.h projects/powernv/mips/nlm/hal/uart.h projects/powernv/mips/nlm/hal/ucore_loader.h projects/powernv/mips/nlm/hal/usb.h projects/powernv/mips/nlm/hal/xaui.h projects/powernv/mips/nlm/interrupt.h projects/powernv/mips/nlm/intr_machdep.c projects/powernv/mips/nlm/msgring.h projects/powernv/mips/nlm/tick.c projects/powernv/mips/nlm/uart_cpu_xlp.c projects/powernv/mips/nlm/usb_init.c projects/powernv/mips/nlm/xlp.h projects/powernv/mips/nlm/xlp_machdep.c projects/powernv/mips/nlm/xlp_pci.c projects/powernv/mips/rmi/board.c projects/powernv/mips/rmi/bus_space_rmi.c projects/powernv/mips/rmi/bus_space_rmi_pci.c projects/powernv/mips/rmi/intr_machdep.c projects/powernv/mips/rmi/pcibus.h projects/powernv/mips/rmi/tick.c projects/powernv/mips/rmi/uart_bus_xlr_iodi.c projects/powernv/mips/rmi/uart_cpu_mips_xlr.c projects/powernv/mips/rmi/xlr_machdep.c projects/powernv/mips/rmi/xls_ehci.c projects/powernv/mips/rt305x/obio.c projects/powernv/mips/rt305x/obiovar.h projects/powernv/mips/rt305x/rt305x_dotg.c projects/powernv/mips/rt305x/rt305x_gpio.c projects/powernv/mips/rt305x/rt305x_gpio.h projects/powernv/mips/rt305x/rt305x_gpiovar.h projects/powernv/mips/rt305x/rt305x_ic.c projects/powernv/mips/rt305x/rt305x_icvar.h projects/powernv/mips/rt305x/rt305x_machdep.c projects/powernv/mips/rt305x/rt305x_sysctl.c projects/powernv/mips/rt305x/rt305x_sysctlvar.h projects/powernv/mips/rt305x/rt305xreg.h projects/powernv/mips/rt305x/rt_swreg.h projects/powernv/mips/rt305x/uart_bus_rt305x.c projects/powernv/mips/rt305x/uart_cpu_rt305x.c projects/powernv/mips/rt305x/uart_dev_rt305x.c projects/powernv/mips/rt305x/uart_dev_rt305x.h projects/powernv/mips/sibyte/ata_zbbus.c projects/powernv/mips/sibyte/sb_bus_space.h projects/powernv/mips/sibyte/sb_machdep.c projects/powernv/mips/sibyte/sb_scd.c projects/powernv/mips/sibyte/sb_scd.h projects/powernv/mips/sibyte/sb_zbbus.c projects/powernv/mips/sibyte/sb_zbpci.c projects/powernv/modules/Makefile projects/powernv/modules/aic7xxx/ahc/Makefile projects/powernv/modules/aic7xxx/ahd/Makefile projects/powernv/modules/bhnd/siba/Makefile projects/powernv/modules/bwn/Makefile projects/powernv/modules/bwn_pci/Makefile projects/powernv/modules/dtb/allwinner/Makefile projects/powernv/modules/dtrace/dtraceall/dtraceall.c projects/powernv/modules/ix/Makefile projects/powernv/modules/ixv/Makefile projects/powernv/modules/vmm/Makefile projects/powernv/net/altq/altq_hfsc.h projects/powernv/net/bpf.c projects/powernv/net/bpf_buffer.h projects/powernv/net/bpf_zerocopy.c projects/powernv/net/bpf_zerocopy.h projects/powernv/net/bridgestp.c projects/powernv/net/bridgestp.h projects/powernv/net/firewire.h projects/powernv/net/ieee8023ad_lacp.c projects/powernv/net/ieee8023ad_lacp.h projects/powernv/net/ieee_oui.h projects/powernv/net/if.h projects/powernv/net/if_bridge.c projects/powernv/net/if_bridgevar.h projects/powernv/net/if_clone.c projects/powernv/net/if_dead.c projects/powernv/net/if_debug.c projects/powernv/net/if_enc.c projects/powernv/net/if_enc.h projects/powernv/net/if_epair.c projects/powernv/net/if_ethersubr.c projects/powernv/net/if_gif.c projects/powernv/net/if_gre.c projects/powernv/net/if_gre.h projects/powernv/net/if_iso88025subr.c projects/powernv/net/if_llatbl.c projects/powernv/net/if_llatbl.h projects/powernv/net/if_media.c projects/powernv/net/if_media.h projects/powernv/net/if_pflog.h projects/powernv/net/if_pfsync.h projects/powernv/net/if_tap.c projects/powernv/net/if_tap.h projects/powernv/net/if_tapvar.h projects/powernv/net/if_tun.c projects/powernv/net/if_vlan_var.h projects/powernv/net/if_vxlan.c projects/powernv/net/ifdi_if.m projects/powernv/net/iflib.c projects/powernv/net/iflib.h projects/powernv/net/iso88025.h projects/powernv/net/netisr.c projects/powernv/net/netisr.h projects/powernv/net/netisr_internal.h projects/powernv/net/netmap.h projects/powernv/net/netmap_user.h projects/powernv/net/pfil.c projects/powernv/net/pfil.h projects/powernv/net/pfvar.h projects/powernv/net/route.c projects/powernv/net/sff8472.h projects/powernv/net/vnet.c projects/powernv/net/vnet.h projects/powernv/net80211/_ieee80211.h projects/powernv/net80211/ieee80211.c projects/powernv/net80211/ieee80211.h projects/powernv/net80211/ieee80211_acl.c projects/powernv/net80211/ieee80211_action.c projects/powernv/net80211/ieee80211_action.h projects/powernv/net80211/ieee80211_adhoc.c projects/powernv/net80211/ieee80211_adhoc.h projects/powernv/net80211/ieee80211_ageq.c projects/powernv/net80211/ieee80211_ageq.h projects/powernv/net80211/ieee80211_alq.c projects/powernv/net80211/ieee80211_alq.h projects/powernv/net80211/ieee80211_crypto.c projects/powernv/net80211/ieee80211_crypto.h projects/powernv/net80211/ieee80211_crypto_ccmp.c projects/powernv/net80211/ieee80211_crypto_none.c projects/powernv/net80211/ieee80211_crypto_tkip.c projects/powernv/net80211/ieee80211_crypto_wep.c projects/powernv/net80211/ieee80211_ddb.c projects/powernv/net80211/ieee80211_dfs.c projects/powernv/net80211/ieee80211_dfs.h projects/powernv/net80211/ieee80211_freebsd.c projects/powernv/net80211/ieee80211_freebsd.h projects/powernv/net80211/ieee80211_hostap.c projects/powernv/net80211/ieee80211_hostap.h projects/powernv/net80211/ieee80211_ht.c projects/powernv/net80211/ieee80211_ht.h projects/powernv/net80211/ieee80211_hwmp.c projects/powernv/net80211/ieee80211_input.c projects/powernv/net80211/ieee80211_input.h projects/powernv/net80211/ieee80211_ioctl.c projects/powernv/net80211/ieee80211_ioctl.h projects/powernv/net80211/ieee80211_mesh.c projects/powernv/net80211/ieee80211_mesh.h projects/powernv/net80211/ieee80211_monitor.c projects/powernv/net80211/ieee80211_monitor.h projects/powernv/net80211/ieee80211_node.c projects/powernv/net80211/ieee80211_node.h projects/powernv/net80211/ieee80211_output.c projects/powernv/net80211/ieee80211_phy.c projects/powernv/net80211/ieee80211_phy.h projects/powernv/net80211/ieee80211_power.c projects/powernv/net80211/ieee80211_power.h projects/powernv/net80211/ieee80211_proto.c projects/powernv/net80211/ieee80211_proto.h projects/powernv/net80211/ieee80211_radiotap.c projects/powernv/net80211/ieee80211_radiotap.h projects/powernv/net80211/ieee80211_ratectl.c projects/powernv/net80211/ieee80211_ratectl.h projects/powernv/net80211/ieee80211_ratectl_none.c projects/powernv/net80211/ieee80211_regdomain.c projects/powernv/net80211/ieee80211_regdomain.h projects/powernv/net80211/ieee80211_rssadapt.c projects/powernv/net80211/ieee80211_rssadapt.h projects/powernv/net80211/ieee80211_scan.c projects/powernv/net80211/ieee80211_scan.h projects/powernv/net80211/ieee80211_scan_sta.c projects/powernv/net80211/ieee80211_sta.c projects/powernv/net80211/ieee80211_sta.h projects/powernv/net80211/ieee80211_superg.c projects/powernv/net80211/ieee80211_superg.h projects/powernv/net80211/ieee80211_tdma.c projects/powernv/net80211/ieee80211_tdma.h projects/powernv/net80211/ieee80211_var.h projects/powernv/net80211/ieee80211_wds.c projects/powernv/net80211/ieee80211_wds.h projects/powernv/net80211/ieee80211_xauth.c projects/powernv/netgraph/atm/ccatm/ng_ccatm_cust.h projects/powernv/netgraph/atm/ng_sscfu.h projects/powernv/netgraph/atm/ng_sscop.h projects/powernv/netgraph/atm/ng_uni.h projects/powernv/netgraph/atm/ngatmbase.c projects/powernv/netgraph/atm/sscfu/ng_sscfu.c projects/powernv/netgraph/atm/sscfu/ng_sscfu_cust.h projects/powernv/netgraph/atm/sscop/ng_sscop_cust.h projects/powernv/netgraph/atm/uni/ng_uni.c projects/powernv/netgraph/atm/uni/ng_uni_cust.h projects/powernv/netgraph/bluetooth/common/ng_bluetooth.c projects/powernv/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c projects/powernv/netgraph/bluetooth/drivers/bt3c/ng_bt3c_var.h projects/powernv/netgraph/bluetooth/drivers/h4/ng_h4.c projects/powernv/netgraph/bluetooth/drivers/h4/ng_h4_prse.h projects/powernv/netgraph/bluetooth/drivers/h4/ng_h4_var.h projects/powernv/netgraph/bluetooth/drivers/ubt/ng_ubt.c projects/powernv/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h projects/powernv/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c projects/powernv/netgraph/bluetooth/hci/ng_hci_cmds.c projects/powernv/netgraph/bluetooth/hci/ng_hci_cmds.h projects/powernv/netgraph/bluetooth/hci/ng_hci_evnt.c projects/powernv/netgraph/bluetooth/hci/ng_hci_evnt.h projects/powernv/netgraph/bluetooth/hci/ng_hci_main.c projects/powernv/netgraph/bluetooth/hci/ng_hci_misc.c projects/powernv/netgraph/bluetooth/hci/ng_hci_misc.h projects/powernv/netgraph/bluetooth/hci/ng_hci_prse.h projects/powernv/netgraph/bluetooth/hci/ng_hci_ulpi.c projects/powernv/netgraph/bluetooth/hci/ng_hci_ulpi.h projects/powernv/netgraph/bluetooth/hci/ng_hci_var.h projects/powernv/netgraph/bluetooth/include/ng_bluetooth.h projects/powernv/netgraph/bluetooth/include/ng_bt3c.h projects/powernv/netgraph/bluetooth/include/ng_btsocket.h projects/powernv/netgraph/bluetooth/include/ng_btsocket_hci_raw.h projects/powernv/netgraph/bluetooth/include/ng_btsocket_l2cap.h projects/powernv/netgraph/bluetooth/include/ng_btsocket_rfcomm.h projects/powernv/netgraph/bluetooth/include/ng_btsocket_sco.h projects/powernv/netgraph/bluetooth/include/ng_h4.h projects/powernv/netgraph/bluetooth/include/ng_hci.h projects/powernv/netgraph/bluetooth/include/ng_l2cap.h projects/powernv/netgraph/bluetooth/include/ng_ubt.h projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_cmds.c projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_cmds.h projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_evnt.c projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_evnt.h projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_llpi.h projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_main.c projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_misc.c projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_misc.h projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_prse.h projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.c projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_ulpi.h projects/powernv/netgraph/bluetooth/l2cap/ng_l2cap_var.h projects/powernv/netgraph/bluetooth/socket/ng_btsocket.c projects/powernv/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c projects/powernv/netgraph/bluetooth/socket/ng_btsocket_l2cap.c projects/powernv/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c projects/powernv/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c projects/powernv/netgraph/bluetooth/socket/ng_btsocket_sco.c projects/powernv/netgraph/netflow/netflow.c projects/powernv/netgraph/netflow/netflow.h projects/powernv/netgraph/netflow/netflow_v9.c projects/powernv/netgraph/netflow/netflow_v9.h projects/powernv/netgraph/netflow/ng_netflow.c projects/powernv/netgraph/netflow/ng_netflow.h projects/powernv/netgraph/ng_atmllc.c projects/powernv/netgraph/ng_atmllc.h projects/powernv/netgraph/ng_car.c projects/powernv/netgraph/ng_car.h projects/powernv/netgraph/ng_deflate.c projects/powernv/netgraph/ng_deflate.h projects/powernv/netgraph/ng_device.c projects/powernv/netgraph/ng_device.h projects/powernv/netgraph/ng_eiface.c projects/powernv/netgraph/ng_eiface.h projects/powernv/netgraph/ng_etf.c projects/powernv/netgraph/ng_etf.h projects/powernv/netgraph/ng_gif.c projects/powernv/netgraph/ng_gif.h projects/powernv/netgraph/ng_gif_demux.c projects/powernv/netgraph/ng_gif_demux.h projects/powernv/netgraph/ng_hub.c projects/powernv/netgraph/ng_hub.h projects/powernv/netgraph/ng_ip_input.c projects/powernv/netgraph/ng_ip_input.h projects/powernv/netgraph/ng_ipfw.c projects/powernv/netgraph/ng_ipfw.h projects/powernv/netgraph/ng_nat.c projects/powernv/netgraph/ng_nat.h projects/powernv/netgraph/ng_patch.c projects/powernv/netgraph/ng_patch.h projects/powernv/netgraph/ng_pipe.c projects/powernv/netgraph/ng_pipe.h projects/powernv/netgraph/ng_ppp.c projects/powernv/netgraph/ng_pred1.c projects/powernv/netgraph/ng_pred1.h projects/powernv/netgraph/ng_split.c projects/powernv/netgraph/ng_split.h projects/powernv/netgraph/ng_tag.c projects/powernv/netgraph/ng_tag.h projects/powernv/netgraph/ng_tcpmss.c projects/powernv/netgraph/ng_tcpmss.h projects/powernv/netgraph/ng_vlan.c projects/powernv/netgraph/ng_vlan.h projects/powernv/netinet/accf_data.c projects/powernv/netinet/accf_dns.c projects/powernv/netinet/accf_http.c projects/powernv/netinet/cc/cc.c projects/powernv/netinet/cc/cc_cdg.c projects/powernv/netinet/cc/cc_chd.c projects/powernv/netinet/cc/cc_cubic.c projects/powernv/netinet/cc/cc_cubic.h projects/powernv/netinet/cc/cc_hd.c projects/powernv/netinet/cc/cc_htcp.c projects/powernv/netinet/cc/cc_module.h projects/powernv/netinet/cc/cc_newreno.c projects/powernv/netinet/cc/cc_vegas.c projects/powernv/netinet/icmp6.h projects/powernv/netinet/in_debug.c projects/powernv/netinet/in_kdtrace.c projects/powernv/netinet/in_kdtrace.h projects/powernv/netinet/in_mcast.c projects/powernv/netinet/in_pcbgroup.c projects/powernv/netinet/ip_carp.c projects/powernv/netinet/ip_carp.h projects/powernv/netinet/ip_divert.h projects/powernv/netinet/ip_dummynet.h projects/powernv/netinet/ip_fastfwd.c projects/powernv/netinet/ip_fw.h projects/powernv/netinet/ip_gre.c projects/powernv/netinet/ip_id.c projects/powernv/netinet/khelp/h_ertt.c projects/powernv/netinet/khelp/h_ertt.h projects/powernv/netinet/libalias/alias.c projects/powernv/netinet/libalias/alias.h projects/powernv/netinet/libalias/alias_cuseeme.c projects/powernv/netinet/libalias/alias_db.c projects/powernv/netinet/libalias/alias_dummy.c projects/powernv/netinet/libalias/alias_ftp.c projects/powernv/netinet/libalias/alias_irc.c projects/powernv/netinet/libalias/alias_local.h projects/powernv/netinet/libalias/alias_mod.c projects/powernv/netinet/libalias/alias_mod.h projects/powernv/netinet/libalias/alias_nbt.c projects/powernv/netinet/libalias/alias_proxy.c projects/powernv/netinet/libalias/alias_sctp.c projects/powernv/netinet/libalias/alias_sctp.h projects/powernv/netinet/libalias/alias_skinny.c projects/powernv/netinet/libalias/alias_smedia.c projects/powernv/netinet/libalias/alias_util.c projects/powernv/netinet/sctp_crc32.c projects/powernv/netinet/sctp_crc32.h projects/powernv/netinet/sctp_input.c projects/powernv/netinet/sctp_input.h projects/powernv/netinet/sctp_output.c projects/powernv/netinet/sctp_sysctl.c projects/powernv/netinet/sctp_uio.h projects/powernv/netinet/siftr.c projects/powernv/netinet/tcp_hostcache.c projects/powernv/netinet/tcp_hostcache.h projects/powernv/netinet/tcp_lro.c projects/powernv/netinet/tcp_lro.h projects/powernv/netinet/tcp_offload.c projects/powernv/netinet/tcp_offload.h projects/powernv/netinet/tcp_output.c projects/powernv/netinet/tcp_syncache.c projects/powernv/netinet/tcp_var.h projects/powernv/netinet/toecore.c projects/powernv/netinet/toecore.h projects/powernv/netinet6/frag6.c projects/powernv/netinet6/icmp6.c projects/powernv/netinet6/in6.h projects/powernv/netinet6/in6_mcast.c projects/powernv/netinet6/in6_pcbgroup.c projects/powernv/netinet6/in6_src.c projects/powernv/netinet6/ip6_id.c projects/powernv/netinet6/mld6.c projects/powernv/netinet6/mld6.h projects/powernv/netinet6/mld6_var.h projects/powernv/netinet6/nd6.c projects/powernv/netinet6/nd6.h projects/powernv/netinet6/nd6_nbr.c projects/powernv/netinet6/nd6_rtr.c projects/powernv/netinet6/raw_ip6.c projects/powernv/netinet6/sctp6_usrreq.c projects/powernv/netinet6/send.c projects/powernv/netinet6/send.h projects/powernv/netinet6/udp6_usrreq.c projects/powernv/netipsec/ipsec_mbuf.c projects/powernv/netipsec/ipsec_output.c projects/powernv/netipsec/key.c projects/powernv/netipsec/xform_ah.c projects/powernv/netipsec/xform_esp.c projects/powernv/netipsec/xform_ipcomp.c projects/powernv/netipsec/xform_tcp.c projects/powernv/netpfil/ipfw/dn_heap.c projects/powernv/netpfil/ipfw/dn_heap.h projects/powernv/netpfil/ipfw/dn_sched.h projects/powernv/netpfil/ipfw/dn_sched_fifo.c projects/powernv/netpfil/ipfw/dn_sched_prio.c projects/powernv/netpfil/ipfw/dn_sched_qfq.c projects/powernv/netpfil/ipfw/dn_sched_rr.c projects/powernv/netpfil/ipfw/dn_sched_wf2q.c projects/powernv/netpfil/ipfw/ip_dn_glue.c projects/powernv/netpfil/ipfw/ip_dn_io.c projects/powernv/netpfil/ipfw/ip_dn_private.h projects/powernv/netpfil/ipfw/ip_dummynet.c projects/powernv/netpfil/ipfw/ip_fw2.c projects/powernv/netpfil/ipfw/ip_fw_dynamic.c projects/powernv/netpfil/ipfw/ip_fw_log.c projects/powernv/netpfil/ipfw/ip_fw_nat.c projects/powernv/netpfil/ipfw/ip_fw_pfil.c projects/powernv/netpfil/ipfw/ip_fw_private.h projects/powernv/netpfil/ipfw/ip_fw_sockopt.c projects/powernv/netpfil/ipfw/ip_fw_table.c projects/powernv/netpfil/ipfw/test/test_dn_heap.c projects/powernv/netpfil/pf/if_pflog.c projects/powernv/netpfil/pf/if_pfsync.c projects/powernv/netpfil/pf/in4_cksum.c projects/powernv/netpfil/pf/pf.c projects/powernv/netpfil/pf/pf.h projects/powernv/netpfil/pf/pf_altq.h projects/powernv/netpfil/pf/pf_if.c projects/powernv/netpfil/pf/pf_ioctl.c projects/powernv/netpfil/pf/pf_lb.c projects/powernv/netpfil/pf/pf_mtag.h projects/powernv/netpfil/pf/pf_norm.c projects/powernv/netpfil/pf/pf_osfp.c projects/powernv/netpfil/pf/pf_ruleset.c projects/powernv/netpfil/pf/pf_table.c projects/powernv/netsmb/netbios.h projects/powernv/netsmb/smb.h projects/powernv/netsmb/smb_conn.c projects/powernv/netsmb/smb_conn.h projects/powernv/netsmb/smb_dev.c projects/powernv/netsmb/smb_dev.h projects/powernv/netsmb/smb_iod.c projects/powernv/netsmb/smb_rq.c projects/powernv/netsmb/smb_rq.h projects/powernv/netsmb/smb_smb.c projects/powernv/netsmb/smb_subr.c projects/powernv/netsmb/smb_subr.h projects/powernv/netsmb/smb_tran.h projects/powernv/netsmb/smb_trantcp.c projects/powernv/netsmb/smb_trantcp.h projects/powernv/netsmb/smb_usr.c projects/powernv/nfs/nfs_fha.c projects/powernv/nfs/nfs_fha.h projects/powernv/nfs/nfs_kdtrace.h projects/powernv/nfs/nfs_lock.c projects/powernv/nfs/nfs_lock.h projects/powernv/nfs/nfs_mountcommon.h projects/powernv/nfsclient/nlminfo.h projects/powernv/nfsserver/nfs_fha_old.h projects/powernv/nlm/nlm.h projects/powernv/nlm/nlm_advlock.c projects/powernv/nlm/nlm_prot_impl.c projects/powernv/nlm/nlm_prot_server.c projects/powernv/nlm/nlm_prot_svc.c projects/powernv/ofed/drivers/infiniband/core/agent.h projects/powernv/ofed/drivers/infiniband/core/core_priv.h projects/powernv/ofed/drivers/infiniband/core/iwcm.h projects/powernv/ofed/drivers/infiniband/core/mad_priv.h projects/powernv/ofed/drivers/infiniband/core/mad_rmpp.h projects/powernv/ofed/drivers/infiniband/core/sa.h projects/powernv/ofed/drivers/infiniband/core/smi.h projects/powernv/ofed/drivers/infiniband/core/uverbs.h projects/powernv/ofed/drivers/infiniband/ulp/ipoib/ipoib.h projects/powernv/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c projects/powernv/ofed/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c projects/powernv/ofed/drivers/infiniband/ulp/ipoib/ipoib_fs.c projects/powernv/ofed/drivers/infiniband/ulp/ipoib/ipoib_ib.c projects/powernv/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c projects/powernv/ofed/drivers/infiniband/ulp/ipoib/ipoib_multicast.c projects/powernv/ofed/drivers/infiniband/ulp/ipoib/ipoib_verbs.c projects/powernv/ofed/drivers/infiniband/ulp/ipoib/ipoib_vlan.c projects/powernv/ofed/drivers/infiniband/ulp/sdp/sdp_bcopy.c projects/powernv/ofed/drivers/infiniband/ulp/sdp/sdp_cma.c projects/powernv/ofed/drivers/infiniband/ulp/sdp/sdp_proc.c projects/powernv/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c projects/powernv/ofed/drivers/infiniband/ulp/sdp/sdp_tx.c projects/powernv/ofed/drivers/infiniband/ulp/sdp/sdp_zcopy.c projects/powernv/ofed/drivers/infiniband/util/madeye.c projects/powernv/ofed/include/rdma/ib_addr.h projects/powernv/ofed/include/rdma/ib_cache.h projects/powernv/ofed/include/rdma/ib_cm.h projects/powernv/ofed/include/rdma/ib_fmr_pool.h projects/powernv/ofed/include/rdma/ib_mad.h projects/powernv/ofed/include/rdma/ib_marshall.h projects/powernv/ofed/include/rdma/ib_pack.h projects/powernv/ofed/include/rdma/ib_pma.h projects/powernv/ofed/include/rdma/ib_sa.h projects/powernv/ofed/include/rdma/ib_smi.h projects/powernv/ofed/include/rdma/ib_umem.h projects/powernv/ofed/include/rdma/ib_verbs.h projects/powernv/ofed/include/rdma/iw_cm.h projects/powernv/ofed/include/rdma/rdma_cm.h projects/powernv/ofed/include/rdma/rdma_cm_ib.h projects/powernv/opencrypto/crypto.c projects/powernv/opencrypto/cryptosoft.c projects/powernv/opencrypto/xform_userland.h projects/powernv/powerpc/aim/locore64.S projects/powernv/powerpc/aim/mmu_oea.c projects/powernv/powerpc/aim/mmu_oea64.c projects/powernv/powerpc/aim/mmu_oea64.h projects/powernv/powerpc/aim/moea64_native.c projects/powernv/powerpc/aim/mp_cpudep.c projects/powernv/powerpc/aim/slb.c projects/powernv/powerpc/aim/trap_subr64.S projects/powernv/powerpc/booke/booke_machdep.c projects/powernv/powerpc/booke/locore.S projects/powernv/powerpc/booke/machdep_e500.c projects/powernv/powerpc/booke/machdep_ppc4xx.c projects/powernv/powerpc/booke/mp_cpudep.c projects/powernv/powerpc/booke/platform_bare.c projects/powernv/powerpc/booke/pmap.c projects/powernv/powerpc/conf/GENERIC projects/powernv/powerpc/conf/GENERIC64 projects/powernv/powerpc/cpufreq/dfs.c projects/powernv/powerpc/cpufreq/pcr.c projects/powernv/powerpc/cpufreq/pmufreq.c projects/powernv/powerpc/fpu/fpu_extern.h projects/powernv/powerpc/include/_bus.h projects/powernv/powerpc/include/_inttypes.h projects/powernv/powerpc/include/altivec.h projects/powernv/powerpc/include/atomic.h projects/powernv/powerpc/include/bat.h projects/powernv/powerpc/include/bus.h projects/powernv/powerpc/include/bus_dma.h projects/powernv/powerpc/include/counter.h projects/powernv/powerpc/include/cpufunc.h projects/powernv/powerpc/include/dbdma.h projects/powernv/powerpc/include/elf.h projects/powernv/powerpc/include/gdb_machdep.h projects/powernv/powerpc/include/intr_machdep.h projects/powernv/powerpc/include/kdb.h projects/powernv/powerpc/include/machdep.h projects/powernv/powerpc/include/md_var.h projects/powernv/powerpc/include/memdev.h projects/powernv/powerpc/include/metadata.h projects/powernv/powerpc/include/mmuvar.h projects/powernv/powerpc/include/ofw_machdep.h projects/powernv/powerpc/include/openpicreg.h projects/powernv/powerpc/include/openpicvar.h projects/powernv/powerpc/include/pcpu.h projects/powernv/powerpc/include/platformvar.h projects/powernv/powerpc/include/pmap.h projects/powernv/powerpc/include/profile.h projects/powernv/powerpc/include/rtas.h projects/powernv/powerpc/include/runq.h projects/powernv/powerpc/include/sc_machdep.h projects/powernv/powerpc/include/slb.h projects/powernv/powerpc/include/smp.h projects/powernv/powerpc/include/spr.h projects/powernv/powerpc/include/sr.h projects/powernv/powerpc/include/trap.h projects/powernv/powerpc/include/vdso.h projects/powernv/powerpc/include/vm.h projects/powernv/powerpc/include/vmparam.h projects/powernv/powerpc/mambo/mambo.c projects/powernv/powerpc/mambo/mambo_console.c projects/powernv/powerpc/mambo/mambo_disk.c projects/powernv/powerpc/mambo/mambocall.h projects/powernv/powerpc/mpc85xx/atpic.c projects/powernv/powerpc/mpc85xx/ds1553_bus_fdt.c projects/powernv/powerpc/mpc85xx/ds1553_core.c projects/powernv/powerpc/mpc85xx/ds1553_reg.h projects/powernv/powerpc/mpc85xx/fsl_diu.c projects/powernv/powerpc/mpc85xx/i2c.c projects/powernv/powerpc/mpc85xx/isa.c projects/powernv/powerpc/mpc85xx/lbc.c projects/powernv/powerpc/mpc85xx/lbc.h projects/powernv/powerpc/mpc85xx/mpc85xx.c projects/powernv/powerpc/mpc85xx/mpc85xx.h projects/powernv/powerpc/mpc85xx/pci_mpc85xx.c projects/powernv/powerpc/mpc85xx/platform_mpc85xx.c projects/powernv/powerpc/ofw/ofw_machdep.c projects/powernv/powerpc/ofw/ofw_pcib_pci.c projects/powernv/powerpc/ofw/ofw_pcibus.c projects/powernv/powerpc/ofw/ofw_pcibus.h projects/powernv/powerpc/ofw/ofw_real.c projects/powernv/powerpc/ofw/ofw_syscons.c projects/powernv/powerpc/ofw/ofw_syscons.h projects/powernv/powerpc/ofw/openpic_ofw.c projects/powernv/powerpc/ofw/rtas.c projects/powernv/powerpc/powermac/ata_dbdma.c projects/powernv/powerpc/powermac/ata_dbdma.h projects/powernv/powerpc/powermac/ata_kauai.c projects/powernv/powerpc/powermac/ata_macio.c projects/powernv/powerpc/powermac/atibl.c projects/powernv/powerpc/powermac/cpcht.c projects/powernv/powerpc/powermac/cuda.c projects/powernv/powerpc/powermac/dbdma.c projects/powernv/powerpc/powermac/dbdmavar.h projects/powernv/powerpc/powermac/fcu.c projects/powernv/powerpc/powermac/grackle.c projects/powernv/powerpc/powermac/gracklevar.h projects/powernv/powerpc/powermac/hrowpic.c projects/powernv/powerpc/powermac/hrowpicvar.h projects/powernv/powerpc/powermac/kiic.c projects/powernv/powerpc/powermac/macgpio.c projects/powernv/powerpc/powermac/macgpiovar.h projects/powernv/powerpc/powermac/macio.c projects/powernv/powerpc/powermac/maciovar.h projects/powernv/powerpc/powermac/nvbl.c projects/powernv/powerpc/powermac/platform_powermac.c projects/powernv/powerpc/powermac/pmu.c projects/powernv/powerpc/powermac/pmuvar.h projects/powernv/powerpc/powermac/powermac_thermal.c projects/powernv/powerpc/powermac/powermac_thermal.h projects/powernv/powerpc/powermac/pswitch.c projects/powernv/powerpc/powermac/smu.c projects/powernv/powerpc/powermac/smusat.c projects/powernv/powerpc/powermac/uninorth.c projects/powernv/powerpc/powermac/uninorthpci.c projects/powernv/powerpc/powermac/uninorthvar.h projects/powernv/powerpc/powermac/vcoregpio.c projects/powernv/powerpc/powermac/viareg.h projects/powernv/powerpc/powerpc/altivec.c projects/powernv/powerpc/powerpc/autoconf.c projects/powernv/powerpc/powerpc/bus_machdep.c projects/powernv/powerpc/powerpc/busdma_machdep.c projects/powernv/powerpc/powerpc/clock.c projects/powernv/powerpc/powerpc/copyinout.c projects/powernv/powerpc/powerpc/copystr.c projects/powernv/powerpc/powerpc/cpu.c projects/powernv/powerpc/powerpc/db_hwwatch.c projects/powernv/powerpc/powerpc/dump_machdep.c projects/powernv/powerpc/powerpc/elf32_machdep.c projects/powernv/powerpc/powerpc/elf64_machdep.c projects/powernv/powerpc/powerpc/exec_machdep.c projects/powernv/powerpc/powerpc/fpu.c projects/powernv/powerpc/powerpc/fuswintr.c projects/powernv/powerpc/powerpc/gdb_machdep.c projects/powernv/powerpc/powerpc/machdep.c projects/powernv/powerpc/powerpc/mp_machdep.c projects/powernv/powerpc/powerpc/openpic.c projects/powernv/powerpc/powerpc/platform.c projects/powernv/powerpc/powerpc/pmap_dispatch.c projects/powernv/powerpc/powerpc/sc_machdep.c projects/powernv/powerpc/powerpc/stack_machdep.c projects/powernv/powerpc/powerpc/suswintr.c projects/powernv/powerpc/powerpc/syncicache.c projects/powernv/powerpc/powerpc/sys_machdep.c projects/powernv/powerpc/powerpc/trap.c projects/powernv/powerpc/powerpc/vm_machdep.c projects/powernv/powerpc/ps3/ehci_ps3.c projects/powernv/powerpc/ps3/if_glc.c projects/powernv/powerpc/ps3/if_glcreg.h projects/powernv/powerpc/ps3/mmu_ps3.c projects/powernv/powerpc/ps3/ohci_ps3.c projects/powernv/powerpc/ps3/platform_ps3.c projects/powernv/powerpc/ps3/ps3_syscons.c projects/powernv/powerpc/ps3/ps3bus.c projects/powernv/powerpc/ps3/ps3bus.h projects/powernv/powerpc/ps3/ps3cdrom.c projects/powernv/powerpc/ps3/ps3disk.c projects/powernv/powerpc/ps3/ps3pic.c projects/powernv/powerpc/pseries/mmu_phyp.c projects/powernv/powerpc/pseries/phyp-hvcall.h projects/powernv/powerpc/pseries/phyp_console.c projects/powernv/powerpc/pseries/phyp_llan.c projects/powernv/powerpc/pseries/phyp_vscsi.c projects/powernv/powerpc/pseries/platform_chrp.c projects/powernv/powerpc/pseries/plpar_iommu.c projects/powernv/powerpc/pseries/plpar_iommu.h projects/powernv/powerpc/pseries/plpar_pcibus.c projects/powernv/powerpc/pseries/rtas_dev.c projects/powernv/powerpc/pseries/rtas_pci.c projects/powernv/powerpc/pseries/vdevice.c projects/powernv/powerpc/pseries/xics.c projects/powernv/powerpc/psim/ata_iobus.c projects/powernv/powerpc/psim/iobus.c projects/powernv/powerpc/psim/iobusvar.h projects/powernv/powerpc/psim/openpic_iobus.c projects/powernv/powerpc/psim/uart_iobus.c projects/powernv/riscv/include/atomic.h projects/powernv/riscv/include/profile.h projects/powernv/riscv/riscv/pmap.c projects/powernv/rpc/clnt_dg.c projects/powernv/rpc/clnt_rc.c projects/powernv/rpc/getnetconfig.c projects/powernv/rpc/replay.c projects/powernv/rpc/replay.h projects/powernv/rpc/rpcsec_gss.h projects/powernv/rpc/rpcsec_gss/rpcsec_gss_conf.c projects/powernv/rpc/rpcsec_gss/rpcsec_gss_misc.c projects/powernv/security/mac/mac_syscalls.c projects/powernv/sparc64/central/central.c projects/powernv/sparc64/conf/GENERIC projects/powernv/sparc64/ebus/ebus.c projects/powernv/sparc64/ebus/ebusreg.h projects/powernv/sparc64/ebus/epic.c projects/powernv/sparc64/fhc/clkbrd.c projects/powernv/sparc64/fhc/clkbrdreg.h projects/powernv/sparc64/fhc/fhc.c projects/powernv/sparc64/fhc/fhcreg.h projects/powernv/sparc64/include/_align.h projects/powernv/sparc64/include/_bus.h projects/powernv/sparc64/include/_inttypes.h projects/powernv/sparc64/include/_limits.h projects/powernv/sparc64/include/_stdint.h projects/powernv/sparc64/include/asi.h projects/powernv/sparc64/include/asmacros.h projects/powernv/sparc64/include/atomic.h projects/powernv/sparc64/include/bus.h projects/powernv/sparc64/include/bus_dma.h projects/powernv/sparc64/include/bus_private.h projects/powernv/sparc64/include/ccr.h projects/powernv/sparc64/include/cmt.h projects/powernv/sparc64/include/counter.h projects/powernv/sparc64/include/cpufunc.h projects/powernv/sparc64/include/dcr.h projects/powernv/sparc64/include/elf.h projects/powernv/sparc64/include/exec.h projects/powernv/sparc64/include/fireplane.h projects/powernv/sparc64/include/fp.h projects/powernv/sparc64/include/frame.h projects/powernv/sparc64/include/fsr.h projects/powernv/sparc64/include/gdb_machdep.h projects/powernv/sparc64/include/idprom.h projects/powernv/sparc64/include/instr.h projects/powernv/sparc64/include/intr_machdep.h projects/powernv/sparc64/include/iommuvar.h projects/powernv/sparc64/include/jbus.h projects/powernv/sparc64/include/kdb.h projects/powernv/sparc64/include/kerneldump.h projects/powernv/sparc64/include/ktr.h projects/powernv/sparc64/include/limits.h projects/powernv/sparc64/include/lsu.h projects/powernv/sparc64/include/mcntl.h projects/powernv/sparc64/include/memdev.h projects/powernv/sparc64/include/metadata.h projects/powernv/sparc64/include/nexusvar.h projects/powernv/sparc64/include/ofw_machdep.h projects/powernv/sparc64/include/ofw_mem.h projects/powernv/sparc64/include/ofw_nexus.h projects/powernv/sparc64/include/param.h projects/powernv/sparc64/include/pcb.h projects/powernv/sparc64/include/pcpu.h projects/powernv/sparc64/include/profile.h projects/powernv/sparc64/include/pstate.h projects/powernv/sparc64/include/runq.h projects/powernv/sparc64/include/sc_machdep.h projects/powernv/sparc64/include/sf_buf.h projects/powernv/sparc64/include/sigframe.h projects/powernv/sparc64/include/smp.h projects/powernv/sparc64/include/stack.h projects/powernv/sparc64/include/stdarg.h projects/powernv/sparc64/include/tick.h projects/powernv/sparc64/include/tlb.h projects/powernv/sparc64/include/trap.h projects/powernv/sparc64/include/tsb.h projects/powernv/sparc64/include/tstate.h projects/powernv/sparc64/include/tte.h projects/powernv/sparc64/include/ucontext.h projects/powernv/sparc64/include/upa.h projects/powernv/sparc64/include/utrap.h projects/powernv/sparc64/include/vdso.h projects/powernv/sparc64/include/ver.h projects/powernv/sparc64/include/vm.h projects/powernv/sparc64/include/watch.h projects/powernv/sparc64/include/wstate.h projects/powernv/sparc64/isa/isa.c projects/powernv/sparc64/isa/isa_dma.c projects/powernv/sparc64/isa/ofw_isa.c projects/powernv/sparc64/isa/ofw_isa.h projects/powernv/sparc64/pci/apb.c projects/powernv/sparc64/pci/fire.c projects/powernv/sparc64/pci/firereg.h projects/powernv/sparc64/pci/firevar.h projects/powernv/sparc64/pci/ofw_pci.h projects/powernv/sparc64/pci/ofw_pcib.c projects/powernv/sparc64/pci/ofw_pcib_subr.c projects/powernv/sparc64/pci/ofw_pcib_subr.h projects/powernv/sparc64/pci/ofw_pcibus.c projects/powernv/sparc64/pci/psycho.c projects/powernv/sparc64/pci/psychoreg.h projects/powernv/sparc64/pci/psychovar.h projects/powernv/sparc64/pci/sbbc.c projects/powernv/sparc64/pci/schizo.c projects/powernv/sparc64/pci/schizoreg.h projects/powernv/sparc64/pci/schizovar.h projects/powernv/sparc64/sbus/dma_sbus.c projects/powernv/sparc64/sbus/lsi64854.c projects/powernv/sparc64/sbus/lsi64854reg.h projects/powernv/sparc64/sbus/lsi64854var.h projects/powernv/sparc64/sbus/ofw_sbus.h projects/powernv/sparc64/sbus/sbus.c projects/powernv/sparc64/sbus/sbusvar.h projects/powernv/sparc64/sparc64/ata_machdep.c projects/powernv/sparc64/sparc64/autoconf.c projects/powernv/sparc64/sparc64/bus_machdep.c projects/powernv/sparc64/sparc64/cam_machdep.c projects/powernv/sparc64/sparc64/cheetah.c projects/powernv/sparc64/sparc64/clock.c projects/powernv/sparc64/sparc64/counter.c projects/powernv/sparc64/sparc64/db_disasm.c projects/powernv/sparc64/sparc64/db_hwwatch.c projects/powernv/sparc64/sparc64/db_interface.c projects/powernv/sparc64/sparc64/db_trace.c projects/powernv/sparc64/sparc64/dump_machdep.c projects/powernv/sparc64/sparc64/elf_machdep.c projects/powernv/sparc64/sparc64/gdb_machdep.c projects/powernv/sparc64/sparc64/genassym.c projects/powernv/sparc64/sparc64/iommu.c projects/powernv/sparc64/sparc64/jbusppm.c projects/powernv/sparc64/sparc64/mp_machdep.c projects/powernv/sparc64/sparc64/ofw_machdep.c projects/powernv/sparc64/sparc64/pmap.c projects/powernv/sparc64/sparc64/prof_machdep.c projects/powernv/sparc64/sparc64/rtc.c projects/powernv/sparc64/sparc64/rwindow.c projects/powernv/sparc64/sparc64/sc_machdep.c projects/powernv/sparc64/sparc64/schppm.c projects/powernv/sparc64/sparc64/spitfire.c projects/powernv/sparc64/sparc64/ssm.c projects/powernv/sparc64/sparc64/stack_machdep.c projects/powernv/sparc64/sparc64/sys_machdep.c projects/powernv/sparc64/sparc64/tick.c projects/powernv/sparc64/sparc64/tlb.c projects/powernv/sparc64/sparc64/tsb.c projects/powernv/sparc64/sparc64/upa.c projects/powernv/sparc64/sparc64/zeus.c projects/powernv/sys/_bitset.h projects/powernv/sys/_bus_dma.h projects/powernv/sys/_cpuset.h projects/powernv/sys/_ffcounter.h projects/powernv/sys/_lock.h projects/powernv/sys/_lockmgr.h projects/powernv/sys/_mutex.h projects/powernv/sys/_null.h projects/powernv/sys/_pctrie.h projects/powernv/sys/_pthreadtypes.h projects/powernv/sys/_rwlock.h projects/powernv/sys/_semaphore.h projects/powernv/sys/_stack.h projects/powernv/sys/_stdint.h projects/powernv/sys/_sx.h projects/powernv/sys/_task.h projects/powernv/sys/_timeval.h projects/powernv/sys/_types.h projects/powernv/sys/_ucontext.h projects/powernv/sys/_umtx.h projects/powernv/sys/_unrhdr.h projects/powernv/sys/_vm_domain.h projects/powernv/sys/aac_ioctl.h projects/powernv/sys/acl.h projects/powernv/sys/agpio.h projects/powernv/sys/aio.h projects/powernv/sys/alq.h projects/powernv/sys/assym.h projects/powernv/sys/ata.h projects/powernv/sys/auxv.h projects/powernv/sys/bitset.h projects/powernv/sys/boot.h projects/powernv/sys/buf_ring.h projects/powernv/sys/bufobj.h projects/powernv/sys/bus.h projects/powernv/sys/bus_dma.h projects/powernv/sys/bus_dma_internal.h projects/powernv/sys/busdma_bufalloc.h projects/powernv/sys/capability.h projects/powernv/sys/caprights.h projects/powernv/sys/capsicum.h projects/powernv/sys/cdefs.h projects/powernv/sys/cdrio.h projects/powernv/sys/chio.h projects/powernv/sys/clock.h projects/powernv/sys/cnv.h projects/powernv/sys/condvar.h projects/powernv/sys/consio.h projects/powernv/sys/copyright.h projects/powernv/sys/counter.h projects/powernv/sys/cpu.h projects/powernv/sys/cpuctl.h projects/powernv/sys/cpuset.h projects/powernv/sys/devicestat.h projects/powernv/sys/devmap.h projects/powernv/sys/digiio.h projects/powernv/sys/disk.h projects/powernv/sys/disk_zone.h projects/powernv/sys/dnv.h projects/powernv/sys/dtrace_bsd.h projects/powernv/sys/dvdio.h projects/powernv/sys/elf.h projects/powernv/sys/elf32.h projects/powernv/sys/elf64.h projects/powernv/sys/elf_common.h projects/powernv/sys/elf_generic.h projects/powernv/sys/endian.h projects/powernv/sys/errno.h projects/powernv/sys/eui64.h projects/powernv/sys/event.h projects/powernv/sys/eventhandler.h projects/powernv/sys/eventvar.h projects/powernv/sys/extattr.h projects/powernv/sys/fail.h projects/powernv/sys/fbio.h projects/powernv/sys/fdcio.h projects/powernv/sys/firmware.h projects/powernv/sys/gpio.h projects/powernv/sys/gpt.h projects/powernv/sys/gtaskqueue.h projects/powernv/sys/gzio.h projects/powernv/sys/hash.h projects/powernv/sys/hhook.h projects/powernv/sys/iconv.h projects/powernv/sys/imgact_binmisc.h projects/powernv/sys/imgact_elf.h projects/powernv/sys/interrupt.h projects/powernv/sys/intr.h projects/powernv/sys/iov.h projects/powernv/sys/iov_schema.h projects/powernv/sys/ipmi.h projects/powernv/sys/jail.h projects/powernv/sys/joystick.h projects/powernv/sys/kdb.h projects/powernv/sys/kenv.h projects/powernv/sys/kerneldump.h projects/powernv/sys/khelp.h projects/powernv/sys/kobj.h projects/powernv/sys/ksem.h projects/powernv/sys/kthread.h projects/powernv/sys/ktr.h projects/powernv/sys/ktr_class.h projects/powernv/sys/link_aout.h projects/powernv/sys/link_elf.h projects/powernv/sys/linker.h projects/powernv/sys/linker_set.h projects/powernv/sys/lock.h projects/powernv/sys/lock_profile.h projects/powernv/sys/lockmgr.h projects/powernv/sys/lockstat.h projects/powernv/sys/loginclass.h projects/powernv/sys/mac.h projects/powernv/sys/mchain.h projects/powernv/sys/md4.h projects/powernv/sys/md5.h projects/powernv/sys/memdesc.h projects/powernv/sys/module.h projects/powernv/sys/module_khelp.h projects/powernv/sys/mouse.h projects/powernv/sys/mqueue.h projects/powernv/sys/mutex.h projects/powernv/sys/numa.h projects/powernv/sys/nv.h projects/powernv/sys/osd.h projects/powernv/sys/pciio.h projects/powernv/sys/pctrie.h projects/powernv/sys/pmc.h projects/powernv/sys/pmckern.h projects/powernv/sys/pmclog.h projects/powernv/sys/poll.h projects/powernv/sys/power.h projects/powernv/sys/priority.h projects/powernv/sys/priv.h projects/powernv/sys/proc.h projects/powernv/sys/procctl.h projects/powernv/sys/procdesc.h projects/powernv/sys/procfs.h projects/powernv/sys/ptio.h projects/powernv/sys/racct.h projects/powernv/sys/random.h projects/powernv/sys/rangelock.h projects/powernv/sys/rctl.h projects/powernv/sys/refcount.h projects/powernv/sys/regression.h projects/powernv/sys/rman.h projects/powernv/sys/rtprio.h projects/powernv/sys/runq.h projects/powernv/sys/rwlock.h projects/powernv/sys/sbuf.h projects/powernv/sys/sdt.h projects/powernv/sys/sema.h projects/powernv/sys/serial.h projects/powernv/sys/sf_buf.h projects/powernv/sys/shm.h projects/powernv/sys/sleepqueue.h projects/powernv/sys/slicer.h projects/powernv/sys/smp.h projects/powernv/sys/socketvar.h projects/powernv/sys/soundcard.h projects/powernv/sys/spigenio.h projects/powernv/sys/stack.h projects/powernv/sys/stdatomic.h projects/powernv/sys/stddef.h projects/powernv/sys/stdint.h projects/powernv/sys/sx.h projects/powernv/sys/syscallsubr.h projects/powernv/sys/syslimits.h projects/powernv/sys/taskqueue.h projects/powernv/sys/terminal.h projects/powernv/sys/thr.h projects/powernv/sys/tiio.h projects/powernv/sys/timeet.h projects/powernv/sys/timeffc.h projects/powernv/sys/timepps.h projects/powernv/sys/timers.h projects/powernv/sys/timetc.h projects/powernv/sys/tree.h projects/powernv/sys/tty.h projects/powernv/sys/ttydevsw.h projects/powernv/sys/ttydisc.h projects/powernv/sys/ttyhook.h projects/powernv/sys/ttyqueue.h projects/powernv/sys/turnstile.h projects/powernv/sys/ucontext.h projects/powernv/sys/umtx.h projects/powernv/sys/uuid.h projects/powernv/sys/vdso.h projects/powernv/sys/vmem.h projects/powernv/sys/watchdog.h projects/powernv/sys/zlib.h projects/powernv/teken/demo/teken_demo.c projects/powernv/teken/stress/teken_stress.c projects/powernv/teken/teken.c projects/powernv/teken/teken.h projects/powernv/teken/teken_scs.h projects/powernv/teken/teken_subr.h projects/powernv/teken/teken_subr_compat.h projects/powernv/tools/acpi_quirks2h.awk projects/powernv/tools/bus_macro.sh projects/powernv/tools/embed_mfs.sh projects/powernv/tools/fdt/embed_dtb.sh projects/powernv/tools/fw_stub.awk projects/powernv/tools/miidevs2h.awk projects/powernv/tools/pccarddevs2h.awk projects/powernv/tools/sound/feeder_eq_mkfilter.awk projects/powernv/tools/sound/feeder_rate_mkfilter.awk projects/powernv/tools/sound/snd_fxdiv_gen.awk projects/powernv/tools/usbdevs2h.awk projects/powernv/ufs/ffs/ffs_alloc.c projects/powernv/ufs/ffs/ffs_balloc.c projects/powernv/ufs/ffs/ffs_rawread.c projects/powernv/ufs/ffs/ffs_snapshot.c projects/powernv/ufs/ffs/ffs_softdep.c projects/powernv/ufs/ffs/ffs_suspend.c projects/powernv/ufs/ffs/ffs_vnops.c projects/powernv/ufs/ffs/softdep.h projects/powernv/ufs/ufs/acl.h projects/powernv/ufs/ufs/dinode.h projects/powernv/ufs/ufs/dirhash.h projects/powernv/ufs/ufs/extattr.h projects/powernv/ufs/ufs/gjournal.h projects/powernv/ufs/ufs/ufs_acl.c projects/powernv/ufs/ufs/ufs_dirhash.c projects/powernv/ufs/ufs/ufs_extattr.c projects/powernv/ufs/ufs/ufs_gjournal.c projects/powernv/ufs/ufs/ufs_vnops.c projects/powernv/vm/_vm_radix.h projects/powernv/vm/default_pager.c projects/powernv/vm/memguard.c projects/powernv/vm/memguard.h projects/powernv/vm/phys_pager.c projects/powernv/vm/redzone.c projects/powernv/vm/redzone.h projects/powernv/vm/sg_pager.c projects/powernv/vm/swap_pager.c projects/powernv/vm/uma.h projects/powernv/vm/uma_core.c projects/powernv/vm/uma_dbg.c projects/powernv/vm/uma_dbg.h projects/powernv/vm/uma_int.h projects/powernv/vm/vm.h projects/powernv/vm/vm_domain.c projects/powernv/vm/vm_domain.h projects/powernv/vm/vm_fault.c projects/powernv/vm/vm_glue.c projects/powernv/vm/vm_init.c projects/powernv/vm/vm_kern.c projects/powernv/vm/vm_kern.h projects/powernv/vm/vm_map.c projects/powernv/vm/vm_map.h projects/powernv/vm/vm_object.c projects/powernv/vm/vm_object.h projects/powernv/vm/vm_page.c projects/powernv/vm/vm_page.h projects/powernv/vm/vm_pageout.c projects/powernv/vm/vm_pageout.h projects/powernv/vm/vm_pager.c projects/powernv/vm/vm_param.h projects/powernv/vm/vm_phys.c projects/powernv/vm/vm_phys.h projects/powernv/vm/vm_radix.c projects/powernv/vm/vm_radix.h projects/powernv/vm/vm_reserv.c projects/powernv/vm/vm_reserv.h projects/powernv/vm/vm_swapout.c projects/powernv/vm/vm_swapout_dummy.c projects/powernv/x86/acpica/OsdEnvironment.c projects/powernv/x86/acpica/acpi_apm.c projects/powernv/x86/acpica/acpi_wakeup.c projects/powernv/x86/acpica/madt.c projects/powernv/x86/acpica/srat.c projects/powernv/x86/bios/smbios.c projects/powernv/x86/bios/vpd.c projects/powernv/x86/cpufreq/est.c projects/powernv/x86/cpufreq/hwpstate.c projects/powernv/x86/cpufreq/p4tcc.c projects/powernv/x86/cpufreq/powernow.c projects/powernv/x86/cpufreq/smist.c projects/powernv/x86/include/_inttypes.h projects/powernv/x86/include/_stdint.h projects/powernv/x86/include/acpica_machdep.h projects/powernv/x86/include/apicreg.h projects/powernv/x86/include/apicvar.h projects/powernv/x86/include/bus.h projects/powernv/x86/include/busdma_impl.h projects/powernv/x86/include/elf.h projects/powernv/x86/include/fdt.h projects/powernv/x86/include/init.h projects/powernv/x86/include/legacyvar.h projects/powernv/x86/include/mca.h projects/powernv/x86/include/mptable.h projects/powernv/x86/include/ofw_machdep.h projects/powernv/x86/include/pci_cfgreg.h projects/powernv/x86/include/sigframe.h projects/powernv/x86/include/specialreg.h projects/powernv/x86/include/stdarg.h projects/powernv/x86/include/ucontext.h projects/powernv/x86/include/vdso.h projects/powernv/x86/include/x86_smp.h projects/powernv/x86/iommu/busdma_dmar.c projects/powernv/x86/iommu/busdma_dmar.h projects/powernv/x86/iommu/intel_ctx.c projects/powernv/x86/iommu/intel_dmar.h projects/powernv/x86/iommu/intel_drv.c projects/powernv/x86/iommu/intel_fault.c projects/powernv/x86/iommu/intel_gas.c projects/powernv/x86/iommu/intel_idpgtbl.c projects/powernv/x86/iommu/intel_qi.c projects/powernv/x86/iommu/intel_quirks.c projects/powernv/x86/iommu/intel_reg.h projects/powernv/x86/iommu/intel_utils.c projects/powernv/x86/isa/atpic.c projects/powernv/x86/isa/atrtc.c projects/powernv/x86/isa/elcr.c projects/powernv/x86/isa/isa.c projects/powernv/x86/isa/orm.c projects/powernv/x86/pci/pci_bus.c projects/powernv/x86/pci/qpi.c projects/powernv/x86/x86/busdma_bounce.c projects/powernv/x86/x86/busdma_machdep.c projects/powernv/x86/x86/dump_machdep.c projects/powernv/x86/x86/fdt_machdep.c projects/powernv/x86/x86/identcpu.c projects/powernv/x86/x86/intr_machdep.c projects/powernv/x86/x86/io_apic.c projects/powernv/x86/x86/local_apic.c projects/powernv/x86/x86/mca.c projects/powernv/x86/x86/mp_x86.c projects/powernv/x86/x86/mptable.c projects/powernv/x86/x86/mptable_pci.c projects/powernv/x86/x86/tsc.c projects/powernv/x86/xen/hvm.c projects/powernv/x86/xen/pv.c projects/powernv/x86/xen/pvcpu_enum.c projects/powernv/xdr/xdr_mbuf.c projects/powernv/xen/xenbus/xenbusb.h projects/powernv/xen/xenstore/xenstore_internal.h Directory Properties: projects/powernv/ (props changed) projects/powernv/cddl/contrib/opensolaris/ (props changed) projects/powernv/contrib/dev/acpica/ (props changed) projects/powernv/contrib/zstd/ (props changed) Modified: projects/powernv/amd64/acpica/acpi_machdep.c ============================================================================== --- projects/powernv/amd64/acpica/acpi_machdep.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/acpica/acpi_machdep.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2001 Mitsuru IWASAKI * All rights reserved. * Modified: projects/powernv/amd64/amd64/atomic.c ============================================================================== --- projects/powernv/amd64/amd64/atomic.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/atomic.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 1999 Peter Jeremy * All rights reserved. * Modified: projects/powernv/amd64/amd64/bios.c ============================================================================== --- projects/powernv/amd64/amd64/bios.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/bios.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 1997 Michael Smith * Copyright (c) 1998 Jonathan Lemon * All rights reserved. Modified: projects/powernv/amd64/amd64/efirt_machdep.c ============================================================================== --- projects/powernv/amd64/amd64/efirt_machdep.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/efirt_machdep.c Fri Dec 29 22:10:06 2017 (r327363) @@ -63,6 +63,7 @@ __FBSDID("$FreeBSD$"); static pml4_entry_t *efi_pml4; static vm_object_t obj_1t1_pt; static vm_page_t efi_pml4_page; +static vm_pindex_t efi_1t1_idx; void efi_destroy_1t1_map(void) @@ -85,10 +86,10 @@ efi_destroy_1t1_map(void) } static vm_page_t -efi_1t1_page(vm_pindex_t idx) +efi_1t1_page(void) { - return (vm_page_grab(obj_1t1_pt, idx, VM_ALLOC_NOBUSY | + return (vm_page_grab(obj_1t1_pt, efi_1t1_idx++, VM_ALLOC_NOBUSY | VM_ALLOC_WIRED | VM_ALLOC_ZERO)); } @@ -106,7 +107,7 @@ efi_1t1_pte(vm_offset_t va) pml4_idx = pmap_pml4e_index(va); pml4e = &efi_pml4[pml4_idx]; if (*pml4e == 0) { - m = efi_1t1_page(1 + pml4_idx); + m = efi_1t1_page(); mphys = VM_PAGE_TO_PHYS(m); *pml4e = mphys | X86_PG_RW | X86_PG_V; } else { @@ -117,7 +118,7 @@ efi_1t1_pte(vm_offset_t va) pdp_idx = pmap_pdpe_index(va); pdpe += pdp_idx; if (*pdpe == 0) { - m = efi_1t1_page(1 + NPML4EPG + (pml4_idx + 1) * (pdp_idx + 1)); + m = efi_1t1_page(); mphys = VM_PAGE_TO_PHYS(m); *pdpe = mphys | X86_PG_RW | X86_PG_V; } else { @@ -128,8 +129,7 @@ efi_1t1_pte(vm_offset_t va) pd_idx = pmap_pde_index(va); pde += pd_idx; if (*pde == 0) { - m = efi_1t1_page(1 + NPML4EPG + NPML4EPG * NPDPEPG + - (pml4_idx + 1) * (pdp_idx + 1) * (pd_idx + 1)); + m = efi_1t1_page(); mphys = VM_PAGE_TO_PHYS(m); *pde = mphys | X86_PG_RW | X86_PG_V; } else { @@ -155,8 +155,9 @@ efi_create_1t1_map(struct efi_md *map, int ndesc, int obj_1t1_pt = vm_pager_allocate(OBJT_PHYS, NULL, ptoa(1 + NPML4EPG + NPML4EPG * NPDPEPG + NPML4EPG * NPDPEPG * NPDEPG), VM_PROT_ALL, 0, NULL); + efi_1t1_idx = 0; VM_OBJECT_WLOCK(obj_1t1_pt); - efi_pml4_page = efi_1t1_page(0); + efi_pml4_page = efi_1t1_page(); VM_OBJECT_WUNLOCK(obj_1t1_pt); efi_pml4 = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(efi_pml4_page)); pmap_pinit_pml4(efi_pml4_page); Modified: projects/powernv/amd64/amd64/elf_machdep.c ============================================================================== --- projects/powernv/amd64/amd64/elf_machdep.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/elf_machdep.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright 1996-1998 John D. Polstra. * All rights reserved. * Modified: projects/powernv/amd64/amd64/gdb_machdep.c ============================================================================== --- projects/powernv/amd64/amd64/gdb_machdep.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/gdb_machdep.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2004 Marcel Moolenaar * All rights reserved. * Modified: projects/powernv/amd64/amd64/initcpu.c ============================================================================== --- projects/powernv/amd64/amd64/initcpu.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/initcpu.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) KATO Takenori, 1997, 1998. * * All rights reserved. Unpublished rights reserved under the copyright Modified: projects/powernv/amd64/amd64/io.c ============================================================================== --- projects/powernv/amd64/amd64/io.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/io.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2004 Mark R V Murray * All rights reserved. * Modified: projects/powernv/amd64/amd64/machdep.c ============================================================================== --- projects/powernv/amd64/amd64/machdep.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/machdep.c Fri Dec 29 22:10:06 2017 (r327363) @@ -184,8 +184,6 @@ struct init_ops init_ops = { */ extern char kernphys[]; -struct msgbuf *msgbufp; - /* * Physical address of the EFI System Table. Stashed from the metadata hints * passed into the kernel and used by the EFI code to call runtime services. Modified: projects/powernv/amd64/amd64/minidump_machdep.c ============================================================================== --- projects/powernv/amd64/amd64/minidump_machdep.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/minidump_machdep.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2006 Peter Wemm * All rights reserved. * Modified: projects/powernv/amd64/amd64/mp_machdep.c ============================================================================== --- projects/powernv/amd64/amd64/mp_machdep.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/mp_machdep.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 1996, by Steve Passe * Copyright (c) 2003, by Peter Wemm * All rights reserved. Modified: projects/powernv/amd64/amd64/prof_machdep.c ============================================================================== --- projects/powernv/amd64/amd64/prof_machdep.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/prof_machdep.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 1996 Bruce D. Evans. * All rights reserved. * Modified: projects/powernv/amd64/amd64/ptrace_machdep.c ============================================================================== --- projects/powernv/amd64/amd64/ptrace_machdep.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/ptrace_machdep.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 Konstantin Belousov * All rights reserved. * Modified: projects/powernv/amd64/amd64/support.S ============================================================================== --- projects/powernv/amd64/amd64/support.S Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/support.S Fri Dec 29 22:10:06 2017 (r327363) @@ -596,7 +596,7 @@ END(subyte) * copyinstr(from, to, maxlen, int *lencopied) - MP SAFE * %rdi, %rsi, %rdx, %rcx * - * copy a string from from to to, stop when a 0 character is reached. + * copy a string from 'from' to 'to', stop when a 0 character is reached. * return ENAMETOOLONG if string is longer than maxlen, and * EFAULT on protection violations. If lencopied is non-zero, * return the actual length in *lencopied. Modified: projects/powernv/amd64/amd64/trap.c ============================================================================== --- projects/powernv/amd64/amd64/trap.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/trap.c Fri Dec 29 22:10:06 2017 (r327363) @@ -164,9 +164,6 @@ SYSCTL_INT(_machdep, OID_AUTO, uprintf_signal, CTLFLAG void trap(struct trapframe *frame) { -#ifdef KDTRACE_HOOKS - struct reg regs; -#endif ksiginfo_t ksi; struct thread *td; struct proc *p; @@ -278,9 +275,8 @@ trap(struct trapframe *frame) enable_intr(); #ifdef KDTRACE_HOOKS if (type == T_BPTFLT) { - fill_frame_regs(frame, ®s); if (dtrace_pid_probe_ptr != NULL && - dtrace_pid_probe_ptr(®s) == 0) + dtrace_pid_probe_ptr(frame) == 0) return; } #endif @@ -406,9 +402,8 @@ trap(struct trapframe *frame) #ifdef KDTRACE_HOOKS case T_DTRACE_RET: enable_intr(); - fill_frame_regs(frame, ®s); if (dtrace_return_probe_ptr != NULL) - dtrace_return_probe_ptr(®s); + dtrace_return_probe_ptr(frame); return; #endif } Modified: projects/powernv/amd64/amd64/uma_machdep.c ============================================================================== --- projects/powernv/amd64/amd64/uma_machdep.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/amd64/uma_machdep.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2003 Alan L. Cox * All rights reserved. * Modified: projects/powernv/amd64/cloudabi32/cloudabi32_sysvec.c ============================================================================== --- projects/powernv/amd64/cloudabi32/cloudabi32_sysvec.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/cloudabi32/cloudabi32_sysvec.c Fri Dec 29 22:10:06 2017 (r327363) @@ -86,7 +86,7 @@ cloudabi32_proc_setregs(struct thread *td, struct imag { ia32_setregs(td, imgp, stack); - (void)cpu_set_user_tls(td, (void *)stack); + (void)cpu_set_user_tls(td, TO_PTR(stack)); } static int Modified: projects/powernv/amd64/cloudabi64/cloudabi64_sysvec.c ============================================================================== --- projects/powernv/amd64/cloudabi64/cloudabi64_sysvec.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/cloudabi64/cloudabi64_sysvec.c Fri Dec 29 22:10:06 2017 (r327363) @@ -83,7 +83,7 @@ cloudabi64_proc_setregs(struct thread *td, struct imag regs = td->td_frame; regs->tf_rdi = stack + sizeof(register_t) + roundup(sizeof(cloudabi64_tcb_t), sizeof(register_t)); - (void)cpu_set_user_tls(td, (void *)stack); + (void)cpu_set_user_tls(td, TO_PTR(stack)); } static int @@ -188,7 +188,7 @@ cloudabi64_thread_setregs(struct thread *td, frame->tf_rdi = td->td_tid; frame->tf_rsi = attr->argument; - return (cpu_set_user_tls(td, (void *)tcbptr)); + return (cpu_set_user_tls(td, TO_PTR(tcbptr))); } static struct sysentvec cloudabi64_elf_sysvec = { Modified: projects/powernv/amd64/conf/GENERIC ============================================================================== --- projects/powernv/amd64/conf/GENERIC Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/conf/GENERIC Fri Dec 29 22:10:06 2017 (r327363) @@ -123,11 +123,7 @@ device siis # SiliconImage SiI3124/SiI3132/SiI3531 # SCSI Controllers device ahc # AHA2940 and onboard AIC7xxx devices -options AHC_REG_PRETTY_PRINT # Print register bitfields in debug - # output. Adds ~128k to driver. device ahd # AHA39320/29320 and onboard AIC79xx devices -options AHD_REG_PRETTY_PRINT # Print register bitfields in debug - # output. Adds ~215k to driver. device esp # AMD Am53C974 (Tekram DC-390(T)) device hptiop # Highpoint RocketRaid 3xxx series device isp # Qlogic family Modified: projects/powernv/amd64/ia32/ia32_misc.c ============================================================================== --- projects/powernv/amd64/ia32/ia32_misc.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/ia32/ia32_misc.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2009 Konstantin Belousov * All rights reserved. * Modified: projects/powernv/amd64/ia32/ia32_reg.c ============================================================================== --- projects/powernv/amd64/ia32/ia32_reg.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/ia32/ia32_reg.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2005 Peter Wemm * All rights reserved. * Modified: projects/powernv/amd64/include/_bus.h ============================================================================== --- projects/powernv/amd64/include/_bus.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/_bus.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2005 M. Warner Losh. * All rights reserved. * Modified: projects/powernv/amd64/include/atomic.h ============================================================================== --- projects/powernv/amd64/include/atomic.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/atomic.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 1998 Doug Rabson * All rights reserved. * @@ -54,6 +56,8 @@ #define mb() __asm __volatile("mfence;" : : : "memory") #define wmb() __asm __volatile("sfence;" : : : "memory") #define rmb() __asm __volatile("lfence;" : : : "memory") + +#include /* * Various simple operations on memory, each of which is atomic in the Modified: projects/powernv/amd64/include/bus_dma.h ============================================================================== --- projects/powernv/amd64/include/bus_dma.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/bus_dma.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2005 Scott Long * All rights reserved. * Modified: projects/powernv/amd64/include/counter.h ============================================================================== --- projects/powernv/amd64/include/counter.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/counter.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2012 Konstantin Belousov * All rights reserved. * Modified: projects/powernv/amd64/include/gdb_machdep.h ============================================================================== --- projects/powernv/amd64/include/gdb_machdep.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/gdb_machdep.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2004 Marcel Moolenaar * All rights reserved. * Modified: projects/powernv/amd64/include/intr_machdep.h ============================================================================== --- projects/powernv/amd64/include/intr_machdep.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/intr_machdep.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2003 John Baldwin * All rights reserved. * Modified: projects/powernv/amd64/include/iodev.h ============================================================================== --- projects/powernv/amd64/include/iodev.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/iodev.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2004 Mark R V Murray * All rights reserved. * Modified: projects/powernv/amd64/include/kdb.h ============================================================================== --- projects/powernv/amd64/include/kdb.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/kdb.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2004 Marcel Moolenaar * All rights reserved. * Modified: projects/powernv/amd64/include/memdev.h ============================================================================== --- projects/powernv/amd64/include/memdev.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/memdev.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2004 Mark R V Murray * All rights reserved. * Modified: projects/powernv/amd64/include/minidump.h ============================================================================== --- projects/powernv/amd64/include/minidump.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/minidump.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2006 Peter Wemm * All rights reserved. * Modified: projects/powernv/amd64/include/mp_watchdog.h ============================================================================== --- projects/powernv/amd64/include/mp_watchdog.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/mp_watchdog.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2004 Robert N. M. Watson * All rights reserved. * Modified: projects/powernv/amd64/include/pc/bios.h ============================================================================== --- projects/powernv/amd64/include/pc/bios.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/pc/bios.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 1997 Michael Smith * Copyright (c) 1998 Jonathan Lemon * All rights reserved. Modified: projects/powernv/amd64/include/pcpu.h ============================================================================== --- projects/powernv/amd64/include/pcpu.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/pcpu.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) Peter Wemm * All rights reserved. * Modified: projects/powernv/amd64/include/pmc_mdep.h ============================================================================== --- projects/powernv/amd64/include/pmc_mdep.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/pmc_mdep.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2003-2008 Joseph Koshy * Copyright (c) 2007 The FreeBSD Foundation * All rights reserved. Modified: projects/powernv/amd64/include/ppireg.h ============================================================================== --- projects/powernv/amd64/include/ppireg.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/ppireg.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (C) 2005 TAKAHASHI Yoshihiro. All rights reserved. * * Redistribution and use in source and binary forms, with or without Modified: projects/powernv/amd64/include/runq.h ============================================================================== --- projects/powernv/amd64/include/runq.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/runq.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2001 Jake Burkholder * All rights reserved. * Modified: projects/powernv/amd64/include/sf_buf.h ============================================================================== --- projects/powernv/amd64/include/sf_buf.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/sf_buf.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2003, 2005 Alan L. Cox * All rights reserved. * Modified: projects/powernv/amd64/include/timerreg.h ============================================================================== --- projects/powernv/amd64/include/timerreg.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/timerreg.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (C) 2005 TAKAHASHI Yoshihiro. All rights reserved. * * Redistribution and use in source and binary forms, with or without Modified: projects/powernv/amd64/include/vm.h ============================================================================== --- projects/powernv/amd64/include/vm.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/vm.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2009 Hudson River Trading LLC * Written by: John H. Baldwin * All rights reserved. Modified: projects/powernv/amd64/include/vmm.h ============================================================================== --- projects/powernv/amd64/include/vmm.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/vmm.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/include/vmm_dev.h ============================================================================== --- projects/powernv/amd64/include/vmm_dev.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/vmm_dev.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/include/vmm_instruction_emul.h ============================================================================== --- projects/powernv/amd64/include/vmm_instruction_emul.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/include/vmm_instruction_emul.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2012 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/linux/linux_sysvec.c ============================================================================== --- projects/powernv/amd64/linux/linux_sysvec.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/linux/linux_sysvec.c Fri Dec 29 22:10:06 2017 (r327363) @@ -147,7 +147,7 @@ static int bsd_to_linux_errno[ELAST + 1] = { -100,-101,-102,-103,-104,-105,-106,-107,-108,-109, -110,-111, -40, -36,-112,-113, -39, -11, -87,-122, -116, -66, -6, -6, -6, -6, -6, -37, -38, -9, - -6, -6, -43, -42, -75,-125, -84, -95, -16, -74, + -6, -6, -43, -42, -75,-125, -84, -61, -16, -74, -72, -67, -71 }; Modified: projects/powernv/amd64/linux/syscalls.master ============================================================================== --- projects/powernv/amd64/linux/syscalls.master Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/linux/syscalls.master Fri Dec 29 22:10:06 2017 (r327363) @@ -598,3 +598,4 @@ ; please, keep this line at the end. 332 AUE_NULL UNIMPL nosys +; vim: syntax=off Modified: projects/powernv/amd64/linux32/linux.h ============================================================================== --- projects/powernv/amd64/linux32/linux.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/linux32/linux.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-3-Clause + * * Copyright (c) 2004 Tim J. Robbins * Copyright (c) 2001 Doug Rabson * Copyright (c) 1994-1996 Søren Schmidt Modified: projects/powernv/amd64/linux32/linux32_dummy.c ============================================================================== --- projects/powernv/amd64/linux32/linux32_dummy.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/linux32/linux32_dummy.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-3-Clause + * * Copyright (c) 1994-1995 Søren Schmidt * All rights reserved. * Modified: projects/powernv/amd64/linux32/linux32_machdep.c ============================================================================== --- projects/powernv/amd64/linux32/linux32_machdep.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/linux32/linux32_machdep.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-3-Clause + * * Copyright (c) 2004 Tim J. Robbins * Copyright (c) 2002 Doug Rabson * Copyright (c) 2000 Marcel Moolenaar Modified: projects/powernv/amd64/linux32/linux32_sysvec.c ============================================================================== --- projects/powernv/amd64/linux32/linux32_sysvec.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/linux32/linux32_sysvec.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-3-Clause + * * Copyright (c) 2004 Tim J. Robbins * Copyright (c) 2003 Peter Wemm * Copyright (c) 2002 Doug Rabson @@ -146,7 +148,7 @@ static int bsd_to_linux_errno[ELAST + 1] = { -100,-101,-102,-103,-104,-105,-106,-107,-108,-109, -110,-111, -40, -36,-112,-113, -39, -11, -87,-122, -116, -66, -6, -6, -6, -6, -6, -37, -38, -9, - -6, -6, -43, -42, -75,-125, -84, -95, -16, -74, + -6, -6, -43, -42, -75,-125, -84, -61, -16, -74, -72, -67, -71 }; Modified: projects/powernv/amd64/linux32/syscalls.master ============================================================================== --- projects/powernv/amd64/linux32/syscalls.master Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/linux32/syscalls.master Fri Dec 29 22:10:06 2017 (r327363) @@ -690,3 +690,4 @@ ; please, keep this line at the end. 383 AUE_NULL UNIMPL nosys +; vim: syntax=off Modified: projects/powernv/amd64/pci/pci_cfgreg.c ============================================================================== --- projects/powernv/amd64/pci/pci_cfgreg.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/pci/pci_cfgreg.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 1997, Stefan Esser * Copyright (c) 2000, Michael Smith * Copyright (c) 2000, BSDi Modified: projects/powernv/amd64/vmm/amd/amdv.c ============================================================================== --- projects/powernv/amd64/vmm/amd/amdv.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/amd/amdv.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/amd/amdvi_hw.c ============================================================================== --- projects/powernv/amd64/vmm/amd/amdvi_hw.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/amd/amdvi_hw.c Fri Dec 29 22:10:06 2017 (r327363) @@ -119,15 +119,6 @@ CTASSERT(sizeof(amdvi_dte) == 0x200000); static SLIST_HEAD (, amdvi_domain) dom_head; -static inline void -amdvi_pci_write(struct amdvi_softc *softc, int off, uint32_t data) -{ - - pci_cfgregwrite(PCI_RID2BUS(softc->pci_rid), - PCI_RID2SLOT(softc->pci_rid), PCI_RID2FUNC(softc->pci_rid), - off, data, 4); -} - static inline uint32_t amdvi_pci_read(struct amdvi_softc *softc, int off) { @@ -137,32 +128,6 @@ amdvi_pci_read(struct amdvi_softc *softc, int off) off, 4)); } -static int -amdvi_find_pci_cap(struct amdvi_softc *softc, uint8_t capability, int *off) -{ - uint32_t read; - uint8_t ptr; - - read = amdvi_pci_read(softc, PCIR_COMMAND); - if (((read >> 16) & PCIM_STATUS_CAPPRESENT) == 0) - return (ENXIO); - - /* Read the starting of capability pointer. */ - read = amdvi_pci_read(softc, PCIR_CAP_PTR); - ptr = read & 0xFF; - - while (ptr != 0) { - read = amdvi_pci_read(softc, ptr); - if ((read & 0xFF) == capability) { - *off = ptr; - return (0); - } - ptr = (read >> 8) & 0xFF; - } - - return (ENOENT); -} - #ifdef AMDVI_ATS_ENABLE /* XXX: Should be in pci.c */ /* @@ -815,6 +780,7 @@ amdvi_event_intr(void *arg) softc->total_cmd, ctrl->cmd_tail, ctrl->cmd_head); amdvi_print_events(softc); + ctrl->status &= AMDVI_STATUS_EV_OF | AMDVI_STATUS_EV_INTR; } static void @@ -836,35 +802,47 @@ amdvi_free_evt_intr_res(device_t dev) dev, 1, &softc->event_irq); } -static bool +static bool amdvi_alloc_intr_resources(struct amdvi_softc *softc) { + struct amdvi_ctrl *ctrl; device_t dev, pcib; + device_t mmio_dev; uint64_t msi_addr; - uint32_t msi_data, temp; - int err, msi_off; + uint32_t msi_data; + int err; dev = softc->dev; pcib = device_get_parent(device_get_parent(dev)); + mmio_dev = pci_find_bsf(PCI_RID2BUS(softc->pci_rid), + PCI_RID2SLOT(softc->pci_rid), PCI_RID2FUNC(softc->pci_rid)); + if (device_is_attached(mmio_dev)) { + device_printf(dev, + "warning: IOMMU device is claimed by another driver %s\n", + device_get_driver(mmio_dev)->name); + } + softc->event_irq = -1; softc->event_rid = 0; + /* * Section 3.7.1 of IOMMU rev 2.0. With MSI, there is only one * interrupt. XXX: Enable MSI/X support. */ - err = PCIB_ALLOC_MSI(pcib, dev, 1, 1, &softc->event_irq); if (err) { device_printf(dev, "Couldn't find event MSI IRQ resource.\n"); return (ENOENT); } + err = bus_set_resource(dev, SYS_RES_IRQ, softc->event_rid, softc->event_irq, 1); if (err) { device_printf(dev, "Couldn't set event MSI resource.\n"); return (ENXIO); } + softc->event_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &softc->event_rid, RF_ACTIVE); if (!softc->event_res) { @@ -886,13 +864,6 @@ amdvi_alloc_intr_resources(struct amdvi_softc *softc) bus_describe_intr(dev, softc->event_res, softc->event_tag, "fault"); - err = amdvi_find_pci_cap(softc, PCIY_MSI, &msi_off); - if (err) { - device_printf(dev, "Couldn't find MSI capability, err = %d.\n", - err); - return (err); - } - err = PCIB_MAP_MSI(pcib, dev, softc->event_irq, &msi_addr, &msi_data); if (err) { @@ -903,17 +874,12 @@ amdvi_alloc_intr_resources(struct amdvi_softc *softc) return (err); } - /* Configure MSI */ - amdvi_pci_write(softc, msi_off + PCIR_MSI_ADDR, msi_addr); - amdvi_pci_write(softc, msi_off + PCIR_MSI_ADDR_HIGH, - msi_addr >> 32); - amdvi_pci_write(softc, msi_off + PCIR_MSI_DATA_64BIT, msi_data); + /* Clear interrupt status bits. */ + ctrl = softc->ctrl; + ctrl->status &= AMDVI_STATUS_EV_OF | AMDVI_STATUS_EV_INTR; /* Now enable MSI interrupt. */ - temp = amdvi_pci_read(softc, msi_off); - temp |= (PCIM_MSICTRL_MSI_ENABLE << 16); /* MSI enable. */ - amdvi_pci_write(softc, msi_off, temp); - + pci_enable_msi(mmio_dev, msi_addr, msi_data); return (0); } Modified: projects/powernv/amd64/vmm/amd/ivrs_drv.c ============================================================================== --- projects/powernv/amd64/vmm/amd/ivrs_drv.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/amd/ivrs_drv.c Fri Dec 29 22:10:06 2017 (r327363) @@ -324,7 +324,13 @@ ivhd_identify(driver_t *driver, device_t parent) continue; } - ivhd_devs[i] = BUS_ADD_CHILD(parent, 1, "ivhd", i); + /* + * Use a high order to ensure that this driver is probed after + * the Host-PCI bridge and the root PCI bus. + */ + ivhd_devs[i] = BUS_ADD_CHILD(parent, + ACPI_DEV_BASE_ORDER + 10 * 10, "ivhd", i); + /* * XXX: In case device was not destroyed before, add will fail. * locate the old device instance. Modified: projects/powernv/amd64/vmm/intel/ept.c ============================================================================== --- projects/powernv/amd64/vmm/intel/ept.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/intel/ept.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/intel/ept.h ============================================================================== --- projects/powernv/amd64/vmm/intel/ept.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/intel/ept.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/intel/vmcs.c ============================================================================== --- projects/powernv/amd64/vmm/intel/vmcs.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/intel/vmcs.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/intel/vmcs.h ============================================================================== --- projects/powernv/amd64/vmm/intel/vmcs.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/intel/vmcs.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/intel/vmx.c ============================================================================== --- projects/powernv/amd64/vmm/intel/vmx.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/intel/vmx.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * @@ -3172,9 +3174,29 @@ vmx_pending_intr(struct vlapic *vlapic, int *vecptr) pir_desc = vlapic_vtx->pir_desc; pending = atomic_load_acq_long(&pir_desc->pending); - if (!pending) - return (0); /* common case */ + if (!pending) { + /* + * While a virtual interrupt may have already been + * processed the actual delivery maybe pending the + * interruptibility of the guest. Recognize a pending + * interrupt by reevaluating virtual interrupts + * following Section 29.2.1 in the Intel SDM Volume 3. + */ + uint64_t val; + uint8_t rvi, ppr; + vmx_getreg(vlapic_vtx->vmx, vlapic->vcpuid, + VMCS_IDENT(VMCS_GUEST_INTR_STATUS), &val); + rvi = val & APIC_TPR_INT; + lapic = vlapic->apic_page; + ppr = lapic->ppr & APIC_TPR_INT; + if (rvi > ppr) { + return (1); + } + + return (0); + } + /* * If there is an interrupt pending then it will be recognized only * if its priority is greater than the processor priority. @@ -3183,7 +3205,7 @@ vmx_pending_intr(struct vlapic *vlapic, int *vecptr) * interrupt will be recognized. */ lapic = vlapic->apic_page; - ppr = lapic->ppr & 0xf0; + ppr = lapic->ppr & APIC_TPR_INT; if (ppr == 0) return (1); @@ -3193,7 +3215,7 @@ vmx_pending_intr(struct vlapic *vlapic, int *vecptr) for (i = 3; i >= 0; i--) { pirval = pir_desc->pir[i]; if (pirval != 0) { - vpr = (i * 64 + flsl(pirval) - 1) & 0xf0; + vpr = (i * 64 + flsl(pirval) - 1) & APIC_TPR_INT; return (vpr > ppr); } } Modified: projects/powernv/amd64/vmm/intel/vmx.h ============================================================================== --- projects/powernv/amd64/vmm/intel/vmx.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/intel/vmx.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/intel/vmx_controls.h ============================================================================== --- projects/powernv/amd64/vmm/intel/vmx_controls.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/intel/vmx_controls.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/intel/vmx_cpufunc.h ============================================================================== --- projects/powernv/amd64/vmm/intel/vmx_cpufunc.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/intel/vmx_cpufunc.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/intel/vmx_genassym.c ============================================================================== --- projects/powernv/amd64/vmm/intel/vmx_genassym.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/intel/vmx_genassym.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/intel/vmx_msr.c ============================================================================== --- projects/powernv/amd64/vmm/intel/vmx_msr.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/intel/vmx_msr.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/intel/vmx_msr.h ============================================================================== --- projects/powernv/amd64/vmm/intel/vmx_msr.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/intel/vmx_msr.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/intel/vtd.c ============================================================================== --- projects/powernv/amd64/vmm/intel/vtd.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/intel/vtd.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/io/iommu.c ============================================================================== --- projects/powernv/amd64/vmm/io/iommu.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/io/iommu.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/io/iommu.h ============================================================================== --- projects/powernv/amd64/vmm/io/iommu.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/io/iommu.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/io/ppt.c ============================================================================== --- projects/powernv/amd64/vmm/io/ppt.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/io/ppt.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/io/ppt.h ============================================================================== --- projects/powernv/amd64/vmm/io/ppt.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/io/ppt.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/io/vhpet.c ============================================================================== --- projects/powernv/amd64/vmm/io/vhpet.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/io/vhpet.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2013 Tycho Nightingale * Copyright (c) 2013 Neel Natu * All rights reserved. Modified: projects/powernv/amd64/vmm/io/vhpet.h ============================================================================== --- projects/powernv/amd64/vmm/io/vhpet.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/io/vhpet.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2013 Tycho Nightingale * Copyright (c) 2013 Neel Natu * All rights reserved. Modified: projects/powernv/amd64/vmm/io/vioapic.c ============================================================================== --- projects/powernv/amd64/vmm/io/vioapic.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/io/vioapic.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2013 Tycho Nightingale * Copyright (c) 2013 Neel Natu * All rights reserved. Modified: projects/powernv/amd64/vmm/io/vioapic.h ============================================================================== --- projects/powernv/amd64/vmm/io/vioapic.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/io/vioapic.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2013 Tycho Nightingale * Copyright (c) 2013 Neel Natu * All rights reserved. Modified: projects/powernv/amd64/vmm/io/vlapic.c ============================================================================== --- projects/powernv/amd64/vmm/io/vlapic.c Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/io/vlapic.c Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/io/vlapic.h ============================================================================== --- projects/powernv/amd64/vmm/io/vlapic.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/io/vlapic.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * * Copyright (c) 2011 NetApp, Inc. * All rights reserved. * Modified: projects/powernv/amd64/vmm/io/vlapic_priv.h ============================================================================== --- projects/powernv/amd64/vmm/io/vlapic_priv.h Fri Dec 29 22:08:43 2017 (r327362) +++ projects/powernv/amd64/vmm/io/vlapic_priv.h Fri Dec 29 22:10:06 2017 (r327363) @@ -1,4 +1,6 @@ /*- *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***