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...