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

..--

DartARM32/23-Nov-2023-4,7813,607

IceASanInstrumentation.cppD23-Nov-202319 KiB495412

IceASanInstrumentation.hD23-Nov-20232.7 KiB7245

IceAssembler.cppD23-Nov-20235.7 KiB175109

IceAssembler.hD23-Nov-202312.5 KiB372198

IceAssemblerARM32.cppD23-Nov-2023159.8 KiB4,1022,669

IceAssemblerARM32.hD23-Nov-202334.6 KiB912520

IceAssemblerMIPS32.cppD23-Nov-202340.6 KiB1,2791,077

IceAssemblerMIPS32.hD23-Nov-202312.4 KiB398239

IceAssemblerX8632.hD23-Nov-20231.3 KiB4214

IceAssemblerX8664.hD23-Nov-20231.3 KiB4214

IceAssemblerX86Base.hD23-Nov-202337 KiB954696

IceAssemblerX86BaseImpl.hD23-Nov-2023125.7 KiB4,0323,612

IceBitVector.hD23-Nov-202323 KiB831599

IceBrowserCompileServer.cppD23-Nov-202311.7 KiB340224

IceBrowserCompileServer.hD23-Nov-20233.5 KiB11258

IceBuildDefs.hD23-Nov-20233.7 KiB12735

IceCfg.cppD23-Nov-202363.6 KiB1,7911,288

IceCfg.hD23-Nov-202312.4 KiB360209

IceCfgNode.cppD23-Nov-202355.7 KiB1,5981,114

IceCfgNode.hD23-Nov-20235.5 KiB160101

IceClFlags.cppD23-Nov-20237 KiB235139

IceClFlags.defD23-Nov-202326.4 KiB359350

IceClFlags.hD23-Nov-20237.5 KiB204129

IceCompileServer.cppD23-Nov-20238.9 KiB275213

IceCompileServer.hD23-Nov-20232.4 KiB

IceCompiler.cppD23-Nov-20236.2 KiB187139

IceCompiler.hD23-Nov-20231.2 KiB4518

IceConditionCodesARM32.hD23-Nov-20231.2 KiB4520

IceConditionCodesMIPS32.hD23-Nov-20231.2 KiB4520

IceConditionCodesX8632.hD23-Nov-20231.4 KiB5225

IceConditionCodesX8664.hD23-Nov-20231.3 KiB4822

IceConverter.cppD23-Nov-202333.4 KiB930781

IceConverter.hD23-Nov-20232.4 KiB7935

IceDefs.hD23-Nov-202314.3 KiB453297

IceELFObjectWriter.cppD23-Nov-202326.9 KiB692567

IceELFObjectWriter.hD23-Nov-20237.7 KiB18377

IceELFSection.cppD23-Nov-20238 KiB246183

IceELFSection.hD23-Nov-202313.7 KiB393240

IceELFStreamer.hD23-Nov-20232.7 KiB10967

IceFixups.cppD23-Nov-20232.8 KiB9966

IceFixups.hD23-Nov-20233.7 KiB11867

IceGlobalContext.cppD23-Nov-202336.6 KiB1,068837

IceGlobalContext.hD23-Nov-202321.4 KiB631416

IceGlobalInits.cppD23-Nov-20235.5 KiB214174

IceGlobalInits.hD23-Nov-202316.8 KiB469335

IceInst.cppD23-Nov-202332.3 KiB1,119919

IceInst.defD23-Nov-20236.4 KiB10597

IceInst.hD23-Nov-202344.8 KiB1,235878

IceInstARM32.cppD23-Nov-2023107.4 KiB3,5463,111

IceInstARM32.defD23-Nov-20237.4 KiB127116

IceInstARM32.hD23-Nov-202360.7 KiB1,7131,343

IceInstMIPS32.cppD23-Nov-202340.7 KiB1,2451,055

IceInstMIPS32.defD23-Nov-202320.9 KiB295284

IceInstMIPS32.hD23-Nov-202348.6 KiB1,4681,234

IceInstVarIter.hD23-Nov-20237.8 KiB17429

IceInstX8632.cppD23-Nov-202311 KiB351289

IceInstX8632.defD23-Nov-202315.1 KiB234221

IceInstX8632.hD23-Nov-20231.2 KiB3810

IceInstX8664.cppD23-Nov-202311.4 KiB360290

IceInstX8664.defD23-Nov-202322.9 KiB336323

IceInstX8664.hD23-Nov-20231.2 KiB3610

IceInstX86Base.hD23-Nov-2023178.3 KiB4,0513,444

IceInstX86BaseImpl.hD23-Nov-2023111.2 KiB3,1562,781

IceInstrumentation.cppD23-Nov-20233.9 KiB136103

IceInstrumentation.hD23-Nov-20233.7 KiB9555

IceIntrinsics.cppD23-Nov-20232.9 KiB10982

IceIntrinsics.hD23-Nov-20234.7 KiB172105

IceLiveness.cppD23-Nov-20235.3 KiB14391

IceLiveness.hD23-Nov-20235.8 KiB166103

IceLoopAnalyzer.cppD23-Nov-20239.2 KiB309211

IceLoopAnalyzer.hD23-Nov-2023955 3414

IceMangling.cppD23-Nov-20237.2 KiB194117

IceMangling.hD23-Nov-2023729 277

IceMemory.cppD23-Nov-20231.7 KiB5833

IceMemory.hD23-Nov-20235.3 KiB185123

IceOperand.cppD23-Nov-202320 KiB662522

IceOperand.hD23-Nov-202341 KiB1,166821

IcePhiLoweringImpl.hD23-Nov-20232.8 KiB8055

IceRangeSpec.cppD23-Nov-20235.5 KiB15991

IceRangeSpec.hD23-Nov-20232.8 KiB8039

IceRegAlloc.cppD23-Nov-202336.8 KiB1,006727

IceRegAlloc.hD23-Nov-20235.2 KiB14082

IceRegList.hD23-Nov-20231.8 KiB3918

IceRegistersARM32.defD23-Nov-202310.3 KiB125117

IceRegistersARM32.hD23-Nov-20236.3 KiB227171

IceRegistersMIPS32.hD23-Nov-20234.8 KiB14198

IceRegistersX8632.hD23-Nov-20233.1 KiB9358

IceRegistersX8664.hD23-Nov-20232.7 KiB7847

IceRevision.cppD23-Nov-2023803 2810

IceRevision.hD23-Nov-20231.1 KiB336

IceStringPool.hD23-Nov-20235.6 KiB179125

IceSwitchLowering.cppD23-Nov-20233.8 KiB10655

IceSwitchLowering.hD23-Nov-20233.7 KiB12176

IceTLS.hD23-Nov-20234.6 KiB11942

IceTargetLowering.cppD23-Nov-202339.1 KiB1,120866

IceTargetLowering.defD23-Nov-20233.7 KiB6056

IceTargetLowering.hD23-Nov-202327.2 KiB658413

IceTargetLoweringARM32.cppD23-Nov-2023248.1 KiB7,3975,903

IceTargetLoweringARM32.defD23-Nov-20233.7 KiB7065

IceTargetLoweringARM32.hD23-Nov-202352.3 KiB1,428892

IceTargetLoweringMIPS32.cppD23-Nov-2023207.6 KiB6,2345,457

IceTargetLoweringMIPS32.defD23-Nov-2023763 2117

IceTargetLoweringMIPS32.hD23-Nov-202335.1 KiB1,067791

IceTargetLoweringX86.cppD23-Nov-20231.9 KiB5122

IceTargetLoweringX8632.cppD23-Nov-202319.5 KiB543377

IceTargetLoweringX8632.defD23-Nov-20232.6 KiB5449

IceTargetLoweringX8632.hD23-Nov-20232.7 KiB8758

IceTargetLoweringX8632Traits.hD23-Nov-202334.5 KiB906666

IceTargetLoweringX8664.cppD23-Nov-202331 KiB919639

IceTargetLoweringX8664.defD23-Nov-20232.6 KiB5449

IceTargetLoweringX8664.hD23-Nov-20232.8 KiB9262

IceTargetLoweringX8664Traits.hD23-Nov-202338.1 KiB990724

IceTargetLoweringX86Base.hD23-Nov-202351.7 KiB1,2611,014

IceTargetLoweringX86BaseImpl.hD23-Nov-2023297.1 KiB8,3896,669

IceTargetLoweringX86RegClass.hD23-Nov-20231.2 KiB3716

IceThreading.cppD23-Nov-20231.9 KiB5936

IceThreading.hD23-Nov-20238 KiB202101

IceTimerTree.cppD23-Nov-202310.4 KiB317235

IceTimerTree.defD23-Nov-20235.2 KiB7975

IceTimerTree.hD23-Nov-20233.4 KiB9959

IceTranslator.cppD23-Nov-20232.1 KiB7046

IceTranslator.hD23-Nov-20232.8 KiB9447

IceTypeConverter.cppD23-Nov-20232.2 KiB6139

IceTypeConverter.hD23-Nov-20231.9 KiB7235

IceTypes.cppD23-Nov-20238.8 KiB302237

IceTypes.defD23-Nov-20234.9 KiB8680

IceTypes.hD23-Nov-20235.9 KiB194118

IceUtils.hD23-Nov-20235.9 KiB176107

IceVariableSplitting.cppD23-Nov-202323.3 KiB609321

IceVariableSplitting.hD23-Nov-2023764 266

LinuxMallocProfiling.cppD23-Nov-20232.9 KiB11169

LinuxMallocProfiling.hD23-Nov-20231 KiB3917

MakefileD23-Nov-2023294 136

PNaClTranslator.cppD23-Nov-2023117 KiB3,3152,597

PNaClTranslator.hD23-Nov-20231.6 KiB5323

README.SIMD.rstD23-Nov-20232.6 KiB6551

SZTargets.defD23-Nov-20231 KiB4231

WasmTranslator.cppD23-Nov-202354.9 KiB1,6521,405

WasmTranslator.hD23-Nov-20232.1 KiB8045

main.cppD23-Nov-20231.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