• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

DartARM32/H16-Feb-2021-4,7813,607

IceASanInstrumentation.cppH A D16-Feb-202118.9 KiB494411

IceASanInstrumentation.hH A D16-Feb-20212.7 KiB7245

IceAssembler.cppH A D16-Feb-20215.7 KiB175109

IceAssembler.hH A D16-Feb-202112.5 KiB372198

IceAssemblerARM32.cppH A D16-Feb-2021159.8 KiB4,1022,669

IceAssemblerARM32.hH A D16-Feb-202134.6 KiB912520

IceAssemblerMIPS32.cppH A D16-Feb-202140.6 KiB1,2791,077

IceAssemblerMIPS32.hH A D16-Feb-202112.4 KiB398239

IceAssemblerX8632.hH A D16-Feb-20211.3 KiB4214

IceAssemblerX8664.hH A D16-Feb-20211.3 KiB4214

IceAssemblerX86Base.hH A D16-Feb-202137 KiB954696

IceAssemblerX86BaseImpl.hH A D16-Feb-2021125.7 KiB4,0323,612

IceBitVector.hH A D16-Feb-202123 KiB831599

IceBrowserCompileServer.cppH A D16-Feb-202111.7 KiB340224

IceBrowserCompileServer.hH A D16-Feb-20213.5 KiB11258

IceBuildDefs.hH A D16-Feb-20213.7 KiB12735

IceCfg.cppH A D16-Feb-202167.3 KiB1,8981,373

IceCfg.hH A D16-Feb-202113 KiB373213

IceCfgNode.cppH A D16-Feb-202157.4 KiB1,6471,155

IceCfgNode.hH A D16-Feb-20215.6 KiB161102

IceClFlags.cppH A D16-Feb-20217 KiB235139

IceClFlags.defH A D16-Feb-202130.1 KiB406397

IceClFlags.hH A D16-Feb-20217.5 KiB204129

IceCompileServer.cppH A D16-Feb-20218.9 KiB275213

IceCompileServer.hH A D16-Feb-20212.4 KiB9143

IceCompiler.cppH A D16-Feb-20216.2 KiB187139

IceCompiler.hH A D16-Feb-20211.2 KiB4518

IceConditionCodesARM32.hH A D16-Feb-20211.2 KiB4520

IceConditionCodesMIPS32.hH A D16-Feb-20211.2 KiB4520

IceConditionCodesX8632.hH A D16-Feb-20211.4 KiB5225

IceConditionCodesX8664.hH A D16-Feb-20211.3 KiB4822

IceConverter.cppH A D16-Feb-202133.4 KiB928781

IceConverter.hH A D16-Feb-20212.4 KiB7935

IceDefs.hH A D16-Feb-202114.8 KiB469309

IceELFObjectWriter.cppH A D16-Feb-202127.8 KiB711579

IceELFObjectWriter.hH A D16-Feb-20217.7 KiB18377

IceELFSection.cppH A D16-Feb-20218 KiB246183

IceELFSection.hH A D16-Feb-202113.7 KiB393240

IceELFStreamer.hH A D16-Feb-20212.7 KiB10967

IceFixups.cppH A D16-Feb-20212.8 KiB9966

IceFixups.hH A D16-Feb-20213.7 KiB11867

IceGlobalContext.cppH A D16-Feb-202140.8 KiB1,161897

IceGlobalContext.hH A D16-Feb-202121.8 KiB643423

IceGlobalInits.cppH A D16-Feb-20216.5 KiB248206

IceGlobalInits.hH A D16-Feb-202118.6 KiB523376

IceInst.cppH A D16-Feb-202132.3 KiB1,119919

IceInst.defH A D16-Feb-20216.4 KiB10597

IceInst.hH A D16-Feb-202144.7 KiB1,233877

IceInstARM32.cppH A D16-Feb-2021107.4 KiB3,5463,111

IceInstARM32.defH A D16-Feb-20217.4 KiB127116

IceInstARM32.hH A D16-Feb-202160.7 KiB1,7131,343

IceInstMIPS32.cppH A D16-Feb-202140.7 KiB1,2451,055

IceInstMIPS32.defH A D16-Feb-202120.9 KiB295284

IceInstMIPS32.hH A D16-Feb-202148.6 KiB1,4681,234

IceInstVarIter.hH A D16-Feb-20217.8 KiB17429

IceInstX8632.cppH A D16-Feb-202111 KiB351289

IceInstX8632.defH A D16-Feb-202115.1 KiB234221

IceInstX8632.hH A D16-Feb-20211.2 KiB3810

IceInstX8664.cppH A D16-Feb-202111.4 KiB360290

IceInstX8664.defH A D16-Feb-202122.9 KiB336323

IceInstX8664.hH A D16-Feb-20211.2 KiB3610

IceInstX86Base.hH A D16-Feb-2021178.3 KiB4,0513,444

IceInstX86BaseImpl.hH A D16-Feb-2021111.2 KiB3,1562,781

IceInstrumentation.cppH A D16-Feb-20213.9 KiB136103

IceInstrumentation.hH A D16-Feb-20213.8 KiB9656

IceIntrinsics.cppH A D16-Feb-202112.8 KiB349294

IceIntrinsics.hH A D16-Feb-20215.9 KiB194114

IceLiveness.cppH A D16-Feb-20215.3 KiB14391

IceLiveness.hH A D16-Feb-20215.8 KiB166103

IceLoopAnalyzer.cppH A D16-Feb-20219.2 KiB309211

IceLoopAnalyzer.hH A D16-Feb-2021955 3414

IceMangling.cppH A D16-Feb-20217.2 KiB194117

IceMangling.hH A D16-Feb-2021729 277

IceMemory.cppH A D16-Feb-20211.7 KiB5833

IceMemory.hH A D16-Feb-20215.3 KiB185123

IceOperand.cppH A D16-Feb-202120 KiB662522

IceOperand.hH A D16-Feb-202142.1 KiB1,189833

IcePhiLoweringImpl.hH A D16-Feb-20212.8 KiB8055

IceRNG.cppH A D16-Feb-20211.8 KiB5728

IceRNG.hH A D16-Feb-20213.1 KiB8640

IceRangeSpec.cppH A D16-Feb-20215.5 KiB15991

IceRangeSpec.hH A D16-Feb-20212.8 KiB8039

IceRegAlloc.cppH A D16-Feb-202137.9 KiB1,031746

IceRegAlloc.hH A D16-Feb-20215.4 KiB14284

IceRegList.hH A D16-Feb-20211.8 KiB3918

IceRegistersARM32.defH A D16-Feb-202110.3 KiB125117

IceRegistersARM32.hH A D16-Feb-20216.3 KiB227171

IceRegistersMIPS32.hH A D16-Feb-20214.8 KiB14198

IceRegistersX8632.hH A D16-Feb-20213.1 KiB9358

IceRegistersX8664.hH A D16-Feb-20212.7 KiB7847

IceRevision.cppH A D16-Feb-2021803 2810

IceRevision.hH A D16-Feb-20211.1 KiB336

IceStringPool.hH A D16-Feb-20215.6 KiB179125

IceSwitchLowering.cppH A D16-Feb-20213.8 KiB10655

IceSwitchLowering.hH A D16-Feb-20213.7 KiB12176

IceTLS.hH A D16-Feb-20214.6 KiB11942

IceTargetLowering.cppH A D16-Feb-202139.7 KiB1,133878

IceTargetLowering.defH A D16-Feb-20213.7 KiB6056

IceTargetLowering.hH A D16-Feb-202127.7 KiB667420

IceTargetLoweringARM32.cppH A D16-Feb-2021249 KiB7,4295,927

IceTargetLoweringARM32.defH A D16-Feb-20213.7 KiB7065

IceTargetLoweringARM32.hH A D16-Feb-202152.6 KiB1,435898

IceTargetLoweringMIPS32.cppH A D16-Feb-2021208.9 KiB6,2725,488

IceTargetLoweringMIPS32.defH A D16-Feb-2021763 2117

IceTargetLoweringMIPS32.hH A D16-Feb-202135.5 KiB1,073797

IceTargetLoweringX86.cppH A D16-Feb-20211.9 KiB5122

IceTargetLoweringX8632.cppH A D16-Feb-202119.5 KiB543377

IceTargetLoweringX8632.defH A D16-Feb-20212.6 KiB5449

IceTargetLoweringX8632.hH A D16-Feb-20212.7 KiB8758

IceTargetLoweringX8632Traits.hH A D16-Feb-202138.9 KiB997736

IceTargetLoweringX8664.cppH A D16-Feb-202131 KiB919639

IceTargetLoweringX8664.defH A D16-Feb-20212.6 KiB5449

IceTargetLoweringX8664.hH A D16-Feb-20212.8 KiB9262

IceTargetLoweringX8664Traits.hH A D16-Feb-202142.6 KiB1,081794

IceTargetLoweringX86Base.hH A D16-Feb-202152.4 KiB1,2751,025

IceTargetLoweringX86BaseImpl.hH A D16-Feb-2021307.5 KiB8,6476,824

IceTargetLoweringX86RegClass.hH A D16-Feb-20211.2 KiB3716

IceThreading.cppH A D16-Feb-20211.9 KiB5936

IceThreading.hH A D16-Feb-20218 KiB202101

IceTimerTree.cppH A D16-Feb-202110.4 KiB317235

IceTimerTree.defH A D16-Feb-20215.2 KiB8076

IceTimerTree.hH A D16-Feb-20213.4 KiB9959

IceTranslator.cppH A D16-Feb-20212.1 KiB7046

IceTranslator.hH A D16-Feb-20212.8 KiB9447

IceTypeConverter.cppH A D16-Feb-20212.2 KiB6139

IceTypeConverter.hH A D16-Feb-20211.9 KiB7235

IceTypes.cppH A D16-Feb-20218.8 KiB302237

IceTypes.defH A D16-Feb-20214.9 KiB8680

IceTypes.hH A D16-Feb-20215.9 KiB194118

IceUtils.hH A D16-Feb-20215.9 KiB176107

IceVariableSplitting.cppH A D16-Feb-202123.3 KiB609321

IceVariableSplitting.hH A D16-Feb-2021764 266

LinuxMallocProfiling.cppH A D16-Feb-20212.9 KiB11169

LinuxMallocProfiling.hH A D16-Feb-20211 KiB3917

MakefileH A D16-Feb-2021294 136

PNaClTranslator.cppH A D16-Feb-2021117 KiB3,3152,597

PNaClTranslator.hH A D16-Feb-20211.6 KiB5323

README.SIMD.rstH A D16-Feb-20212.6 KiB6551

SZTargets.defH A D16-Feb-20211 KiB4231

WasmTranslator.cppH A D16-Feb-202155 KiB1,6521,405

WasmTranslator.hH A D16-Feb-20212.1 KiB8045

main.cppH A D16-Feb-20211.8 KiB4818

README.SIMD.rst

1Missing support
2===============
3
4* The PNaCl LLVM backend expands shufflevector operations into sequences of
5  insertelement and extractelement operations. For instance:
6
7    define <4 x i32> @shuffle(<4 x i32> %arg1, <4 x i32> %arg2) {
8    entry:
9      %res = shufflevector <4 x i32> %arg1,
10                           <4 x i32> %arg2,
11                           <4 x i32> <i32 4, i32 5, i32 0, i32 1>
12      ret <4 x i32> %res
13    }
14
15  gets expanded into:
16
17    define <4 x i32> @shuffle(<4 x i32> %arg1, <4 x i32> %arg2) {
18    entry:
19      %0 = extractelement <4 x i32> %arg2, i32 0
20      %1 = insertelement <4 x i32> undef, i32 %0, i32 0
21      %2 = extractelement <4 x i32> %arg2, i32 1
22      %3 = insertelement <4 x i32> %1, i32 %2, i32 1
23      %4 = extractelement <4 x i32> %arg1, i32 0
24      %5 = insertelement <4 x i32> %3, i32 %4, i32 2
25      %6 = extractelement <4 x i32> %arg1, i32 1
26      %7 = insertelement <4 x i32> %5, i32 %6, i32 3
27      ret <4 x i32> %7
28    }
29
30  Subzero should recognize these sequences and recombine them into
31  shuffle operations where appropriate.
32
33* Add support for vector constants in the backend. The current code
34  materializes the vector constants it needs (eg. for performing icmp on
35  unsigned operands) using register operations, but this should be changed to
36  loading them from a constant pool if the register initialization is too
37  complicated (such as in TargetX8632::makeVectorOfHighOrderBits()).
38
39* [x86 specific] llvm-mc does not allow lea to take a mem128 memory operand
40  when assembling x86-32 code. The current InstX8632Lea::emit() code uses
41  Variable::asType() to convert any mem128 Variables into a compatible memory
42  operand type. However, the emit code does not do any conversions of
43  OperandX8632Mem, so if an OperandX8632Mem is passed to lea as mem128 the
44  resulting code will not assemble.  One way to fix this is by implementing
45  OperandX8632Mem::asType().
46
47* [x86 specific] Lower shl with <4 x i32> using some clever float conversion:
48http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20100726/105087.html
49
50* [x86 specific] Add support for using aligned mov operations (movaps). This
51  will require passing alignment information to loads and stores.
52
53x86 SIMD Diversification
54========================
55
56* Vector "bitwise" operations have several variant instructions: the AND
57  operation can be implemented with pand, andpd, or andps. This pattern also
58  holds for ANDN, OR, and XOR.
59
60* Vector "mov" instructions can be diversified (eg. movdqu instead of movups)
61  at the cost of a possible performance penalty.
62
63* Scalar FP arithmetic can be diversified by performing the operations with the
64  vector version of the instructions.
65