search for: instructionselector

Displaying 16 results from an estimated 16 matches for "instructionselector".

2016 Nov 07
5
Running GlobaISel passes after SelectionDAG instruction selection
...ombiner, and how much work this will be to implement, I think the fastest path to doing this would be to run some of the GlobalISel passes after SelectionDAG instruction selection. What I would like to do is modify the AMDGPU target to select SelectionDAG nodes to generic opcodes, and then run the InstructionSelector pass on the resulting MachineFunction. I would start by doing this with loads/stores and then move on to other opcodes one at a time. These changes will be a big improvement to AMDGPU, because it will allow us to replace our SIFixSGPRCopies pass which is essentially just another instruction selec...
2017 Dec 20
6
[GlobalISel] gen-global-isel failed to work
...vm.org> wrote: > Sorry, I am apprentice of lowRISC, and meet new bug when porting GlobalISel > to RISCV target > https://github.com/xiangzhai/llvm/commit/b3f91ea54d9fee0ef7e73a32c6b8456bbe252811 > > > In file included from > /data/project/xiangzhai/llvm/lib/Target/RISCV/RISCVInstructionSelector.cpp:97: > /data/project/xiangzhai/llvm/build/lib/Target/RISCV/RISCVGenGlobalISel.inc:100:7: > error: use of > undeclared identifier 'Subtarget' > if (Subtarget->is64Bit()) > ^ > > > Even if no errors after comment `if (Subtarget->is64Bit())` in &g...
2017 May 19
2
Buildbots timing out on full builds
...m-dev at lists.llvm.org> wrote: > > r303259 will have increased compile-time since it tripled the number of importable > SelectionDAG rules but a quick measurement building the affected file: > ninja lib/Target/<Target>/CMakeFiles/LLVM<Target>CodeGen.dir/<Target>InstructionSelector.cpp.o > for both ARM and AArch64 didn't show a significant increase. I'll check whether > it made a different to linking. I don't think it's r303259. Starting with a fully built r303259, then updating to r303258 and running 'ninja' gives me: real 2m28.273s user 13m2...
2017 May 19
2
Buildbots timing out on full builds
Hi, We've noticed that recently some of our bots (mostly clang-cmake-armv7-a15 and clang-cmake-thumbv7-a15) started timing out whenever someone commits a change to TableGen: r303418: http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15/builds/7268 r303346: http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15/builds/7242 r303341:
2017 May 22
4
Buildbots timing out on full builds
...e increased compile-time since it tripled the number of >> >> importable >> >> SelectionDAG rules but a quick measurement building the affected file: >> >> ninja >> >> lib/Target/<Target>/CMakeFiles/LLVM<Target>CodeGen.dir/<Target>InstructionSelector.cpp.o >> >> for both ARM and AArch64 didn't show a significant increase. I'll check >> >> whether >> >> it made a different to linking. >> > >> > I don't think it's r303259. Starting with a fully built r303259, then >> >...
2017 May 21
2
Buildbots timing out on full builds
...t; > >> r303259 will have increased compile-time since it tripled the number of > importable > >> SelectionDAG rules but a quick measurement building the affected file: > >> ninja lib/Target/<Target>/CMakeFiles/LLVM<Target> > CodeGen.dir/<Target>InstructionSelector.cpp.o > >> for both ARM and AArch64 didn't show a significant increase. I'll check > whether > >> it made a different to linking. > > > > I don't think it's r303259. Starting with a fully built r303259, then > updating to r303258 and running '...
2019 Aug 23
2
Using [GlobalISel] to provide peephole optimizations
...it. I wondered how hard it would be to allow GlobalISel to reselect machine patterns, eg after they've been made available by other passes. What I was thinking is in addition to anything else that's coming, allowing Instructions to exist on the input side of Pat<>, and using the same InstructionSelector we already have to reselect. To my surprise... not many changes are required to seemingly make this work: // fold loads in to compare instructions def : Pat<(CPw_sr i32:$k, (MOVw_wf iPTR:$s)), (CPw_sf i32:$k, iPTR:$s)>; And it looks like SDNodeXForms will work off the bat, along w...
2017 May 22
2
Buildbots timing out on full builds
...nce it tripled the number of >>>>>> importable >>>>>> SelectionDAG rules but a quick measurement building the affected file: >>>>>> ninja >>>>>> lib/Target/<Target>/CMakeFiles/LLVM<Target>CodeGen.dir/<Target>InstructionSelector.cpp.o >>>>>> for both ARM and AArch64 didn't show a significant increase. I'll check >>>>>> whether >>>>>> it made a different to linking. >>>>> >>>>> I don't think it's r303259. Starting with a full...
2017 May 25
2
Buildbots timing out on full builds
...nce it tripled the number of >>>>>> importable >>>>>> SelectionDAG rules but a quick measurement building the affected file: >>>>>> ninja >>>>>> lib/Target/<Target>/CMakeFiles/LLVM<Target>CodeGen.dir/<Target>InstructionSelector.cpp.o >>>>>> for both ARM and AArch64 didn't show a significant increase. I'll check >>>>>> whether >>>>>> it made a different to linking. >>>>> >>>>> I don't think it's r303259. Starting with a ful...
2017 May 24
2
Buildbots timing out on full builds
...inish off the patches and post > them individually. > > The first one removes the single-use lambdas in the generated code. These > turn out to be _really_ expensive. Replacing them with equivalent gotos > saves 11 million allocations (~57%) during the course of compiling > AArch64InstructionSelector.cpp.o. The cumulative number of bytes allocated > also drops by ~4GB (~36%). > (this is outside my wheelhouse, so just as an aside): Could you explain further what aspect of the change was that saved allocations? Lambdas themselves don't allocate memory (std::function of a stateful lambd...
2018 Sep 26
5
RFC: Adding a code size analysis tool
...snip]) [function] 105133 ParseCodeGenArgs([snip]) [function] 64692 unswitchNontrivialInvariants([snip]) [function] 40180 getAttrKind([snip]) [function] 35811 clang::DumpCompilerOptionsAction::ExecuteAction() [function] 32417 llvm::UpgradeIntrinsicCall([snip]) [function] 30239 bool llvm::InstructionSelector::executeMatchTable<(anonymous namespace)::ARMInstructionSelector const, [snip]) const [function] 29352 Next, let's look at the file view diffstat. This can be useful because it goes beyond simply identifying the files which grew the most. It actually describes which *functions* grew the mo...
2017 May 31
2
Buildbots timing out on full builds
Hi Diana and Vitaly, Could you give https://reviews.llvm.org/differential/diff/100829/ <https://reviews.llvm.org/differential/diff/100829/> a try? When measuring the compile of AArch64InstructionSelector.cpp.o with asan enabled and running under instruments's Allocation profiler, my machine reports that the cumulative memory allocations is down to ~3.5GB (was ~10GB), the number of allocations down to ~4 million (was ~23 million), and the compile time down to ~15s (was ~60s). The patch is based...
2018 Oct 01
4
RFC: Adding a code size analysis tool
...ParseCodeGenArgs([snip]) [function] 64692 > unswitchNontrivialInvariants([snip]) [function] 40180 > getAttrKind([snip]) [function] 35811 > clang::DumpCompilerOptionsAction::ExecuteAction() [function] 32417 > llvm::UpgradeIntrinsicCall([snip]) [function] 30239 > bool llvm::InstructionSelector::executeMatchTable<(anonymous namespace)::ARMInstructionSelector const, [snip]) const [function] 29352 > > > Next, let's look at the file view diffstat. This can be useful because it goes > beyond simply identifying the files which grew the most. It actually describes > whic...
2017 May 31
2
Buildbots timing out on full builds
...ers <daniel_l_sanders at apple.com <mailto:daniel_l_sanders at apple.com>> wrote: > Hi Diana and Vitaly, > > Could you give https://reviews.llvm.org/differential/diff/100829/ <https://reviews.llvm.org/differential/diff/100829/> a try? When measuring the compile of AArch64InstructionSelector.cpp.o with asan enabled and running under instruments's Allocation profiler, my machine reports that the cumulative memory allocations is down to ~3.5GB (was ~10GB), the number of allocations down to ~4 million (was ~23 million), and the compile time down to ~15s (was ~60s). > > The patc...
2018 Oct 01
3
RFC: Adding a code size analysis tool
...snip]) [function] 64692 >> unswitchNontrivialInvariants([snip]) [function] 40180 >> getAttrKind([snip]) [function] 35811 >> clang::DumpCompilerOptionsAction::ExecuteAction() [function] 32417 >> llvm::UpgradeIntrinsicCall([snip]) [function] 30239 >> bool llvm::InstructionSelector::executeMatchTable<(anonymous namespace)::ARMInstructionSelector const, [snip]) const [function] 29352 >> >> >> Next, let's look at the file view diffstat. This can be useful because it goes >> beyond simply identifying the files which grew the most. It actually des...
2017 May 31
0
Buildbots timing out on full builds
Is https://reviews.llvm.org/differential/diff/100829/ replacement for r303341? If so LGTM. r303542 msan AArch64InstructionSelector.cpp: 1m17.209s r303542+diff/100829/ <https://reviews.llvm.org/differential/diff/100829/> msan AArch64InstructionSelector.cpp: 1m24.724s On Wed, May 31, 2017 at 6:13 AM, Daniel Sanders <daniel_l_sanders at apple.com> wrote: > Great! I expect I'll be able to cut it down furt...