• Home
Name Date Size #Lines LOC

..--

DartARM32/03-May-2024-5,1393,813

IceASanInstrumentation.cppD03-May-202418.9 KiB494411

IceASanInstrumentation.hD03-May-20242.7 KiB7245

IceAssembler.cppD03-May-20245.7 KiB175109

IceAssembler.hD03-May-202412.5 KiB372198

IceAssemblerARM32.cppD03-May-2024159.7 KiB4,0992,666

IceAssemblerARM32.hD03-May-202434.6 KiB912520

IceAssemblerMIPS32.cppD03-May-202440.5 KiB1,2731,071

IceAssemblerMIPS32.hD03-May-202412.4 KiB398239

IceAssemblerX8632.hD03-May-20241.3 KiB4214

IceAssemblerX8664.hD03-May-20241.3 KiB4214

IceAssemblerX86Base.hD03-May-202437 KiB954696

IceAssemblerX86BaseImpl.hD03-May-2024125.7 KiB4,0323,612

IceBitVector.hD03-May-202423 KiB829597

IceBrowserCompileServer.cppD03-May-202411.7 KiB340224

IceBrowserCompileServer.hD03-May-20243.5 KiB11258

IceBuildDefs.hD03-May-20243.7 KiB12735

IceCfg.cppD03-May-202467.4 KiB1,8981,373

IceCfg.hD03-May-202413 KiB373213

IceCfgNode.cppD03-May-202457.4 KiB1,6471,155

IceCfgNode.hD03-May-20245.6 KiB161102

IceClFlags.cppD03-May-20247 KiB235139

IceClFlags.defD03-May-202430.1 KiB406397

IceClFlags.hD03-May-20247.5 KiB204129

IceCompileServer.cppD03-May-20248.9 KiB273211

IceCompileServer.hD03-May-20242.4 KiB9143

IceCompiler.cppD03-May-20246.2 KiB187139

IceCompiler.hD03-May-20241.2 KiB4518

IceConditionCodesARM32.hD03-May-20241.2 KiB4520

IceConditionCodesMIPS32.hD03-May-20241.2 KiB4520

IceConditionCodesX8632.hD03-May-20241.4 KiB5225

IceConditionCodesX8664.hD03-May-20241.3 KiB4822

IceConverter.cppD03-May-202433.4 KiB928781

IceConverter.hD03-May-20242.4 KiB7935

IceDefs.hD03-May-202414.8 KiB469309

IceELFObjectWriter.cppD03-May-202427.8 KiB712580

IceELFObjectWriter.hD03-May-20247.7 KiB18377

IceELFSection.cppD03-May-20248 KiB246183

IceELFSection.hD03-May-202413.7 KiB393240

IceELFStreamer.hD03-May-20242.7 KiB10967

IceFixups.cppD03-May-20242.8 KiB9966

IceFixups.hD03-May-20243.7 KiB11867

IceGlobalContext.cppD03-May-202440.8 KiB1,161897

IceGlobalContext.hD03-May-202421.8 KiB643423

IceGlobalInits.cppD03-May-20246.5 KiB248206

IceGlobalInits.hD03-May-202418.6 KiB523376

IceInst.cppD03-May-202432.8 KiB1,127927

IceInst.defD03-May-20246.4 KiB10597

IceInst.hD03-May-202444.5 KiB1,230874

IceInstARM32.cppD03-May-2024107.7 KiB3,5433,108

IceInstARM32.defD03-May-20247.4 KiB127116

IceInstARM32.hD03-May-202460.7 KiB1,7131,343

IceInstMIPS32.cppD03-May-202440.8 KiB1,2451,055

IceInstMIPS32.defD03-May-202420.9 KiB295284

IceInstMIPS32.hD03-May-202448.6 KiB1,4681,234

IceInstVarIter.hD03-May-20247.8 KiB17429

IceInstX8632.cppD03-May-202411.2 KiB356294

IceInstX8632.defD03-May-202415.1 KiB234221

IceInstX8632.hD03-May-20241.2 KiB3810

IceInstX8664.cppD03-May-202411.6 KiB363293

IceInstX8664.defD03-May-202422.7 KiB330318

IceInstX8664.hD03-May-20241.2 KiB3610

IceInstX86Base.hD03-May-2024178.3 KiB4,0513,444

IceInstX86BaseImpl.hD03-May-2024110.9 KiB3,1202,746

IceInstrumentation.cppD03-May-20243.9 KiB136103

IceInstrumentation.hD03-May-20243.8 KiB9656

IceIntrinsics.cppD03-May-202413.6 KiB357303

IceIntrinsics.hD03-May-20245.9 KiB194114

IceLiveness.cppD03-May-20245.3 KiB14391

IceLiveness.hD03-May-20245.9 KiB165102

IceLoopAnalyzer.cppD03-May-20249.2 KiB309211

IceLoopAnalyzer.hD03-May-2024955 3414

IceMangling.cppD03-May-20247.2 KiB194117

IceMangling.hD03-May-2024729 277

IceMemory.cppD03-May-20241.7 KiB5833

IceMemory.hD03-May-20245.3 KiB186124

IceOperand.cppD03-May-202419.9 KiB662522

IceOperand.hD03-May-202442.1 KiB1,189833

IcePhiLoweringImpl.hD03-May-20242.8 KiB8055

IceRNG.cppD03-May-20241.9 KiB5627

IceRNG.hD03-May-20243.1 KiB8640

IceRangeSpec.cppD03-May-20245.5 KiB15991

IceRangeSpec.hD03-May-20242.8 KiB8039

IceRegAlloc.cppD03-May-202437.9 KiB1,031746

IceRegAlloc.hD03-May-20245.4 KiB14284

IceRegList.hD03-May-20241.8 KiB3918

IceRegistersARM32.defD03-May-202410.3 KiB125117

IceRegistersARM32.hD03-May-20246.3 KiB227171

IceRegistersMIPS32.hD03-May-20244.8 KiB14198

IceRegistersX8632.hD03-May-20243.1 KiB9358

IceRegistersX8664.hD03-May-20242.7 KiB7847

IceRevision.cppD03-May-2024803 2810

IceRevision.hD03-May-20241.1 KiB336

IceStringPool.hD03-May-20245.6 KiB179125

IceSwitchLowering.cppD03-May-20243.8 KiB10655

IceSwitchLowering.hD03-May-20243.7 KiB12176

IceTLS.hD03-May-20244.6 KiB11942

IceTargetLowering.cppD03-May-202439.7 KiB1,131876

IceTargetLowering.defD03-May-20243.7 KiB6056

IceTargetLowering.hD03-May-202427.7 KiB667420

IceTargetLoweringARM32.cppD03-May-2024249.1 KiB7,4225,920

IceTargetLoweringARM32.defD03-May-20243.7 KiB7065

IceTargetLoweringARM32.hD03-May-202452.6 KiB1,435898

IceTargetLoweringMIPS32.cppD03-May-2024208.9 KiB6,2705,486

IceTargetLoweringMIPS32.defD03-May-2024763 2117

IceTargetLoweringMIPS32.hD03-May-202435.5 KiB1,073797

IceTargetLoweringX86.cppD03-May-20241.9 KiB5122

IceTargetLoweringX8632.cppD03-May-202418.4 KiB506355

IceTargetLoweringX8632.defD03-May-20242.6 KiB5449

IceTargetLoweringX8632.hD03-May-20242.6 KiB8455

IceTargetLoweringX8632Traits.hD03-May-202437.4 KiB971713

IceTargetLoweringX8664.cppD03-May-202428.3 KiB848589

IceTargetLoweringX8664.defD03-May-20242.6 KiB5449

IceTargetLoweringX8664.hD03-May-20242.6 KiB8959

IceTargetLoweringX8664Traits.hD03-May-202440.7 KiB1,043764

IceTargetLoweringX86Base.hD03-May-202452.1 KiB1,2651,017

IceTargetLoweringX86BaseImpl.hD03-May-2024304.8 KiB8,5656,775

IceTargetLoweringX86RegClass.hD03-May-20241.2 KiB3716

IceThreading.cppD03-May-20241.9 KiB5936

IceThreading.hD03-May-20248 KiB202101

IceTimerTree.cppD03-May-202410.4 KiB314232

IceTimerTree.defD03-May-20245.2 KiB8076

IceTimerTree.hD03-May-20243.4 KiB9959

IceTranslator.cppD03-May-20242.1 KiB7046

IceTranslator.hD03-May-20242.8 KiB9447

IceTypeConverter.cppD03-May-20242.2 KiB6139

IceTypeConverter.hD03-May-20241.9 KiB7235

IceTypes.cppD03-May-20249 KiB306241

IceTypes.defD03-May-20244.9 KiB8680

IceTypes.hD03-May-20245.9 KiB194118

IceUtils.hD03-May-20245.9 KiB176107

IceVariableSplitting.cppD03-May-202423.3 KiB609321

IceVariableSplitting.hD03-May-2024764 266

LinuxMallocProfiling.cppD03-May-20242.9 KiB11169

LinuxMallocProfiling.hD03-May-20241 KiB3917

MakefileD03-May-2024294 136

PNaClTranslator.cppD03-May-2024117 KiB3,3152,597

PNaClTranslator.hD03-May-20241.6 KiB5323

README.SIMD.rstD03-May-20242.6 KiB6551

SZTargets.defD03-May-20241 KiB4231

WasmTranslator.cppD03-May-202455 KiB1,6511,404

WasmTranslator.hD03-May-20242 KiB8045

main.cppD03-May-20241.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