| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Since allocsize refers to the argument number it gets invalidated when
an argument is removed and the numbers shift.
llvm-svn: 328481
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CanBeMin is currently used which will report true for any unknown
values, but often a check is performed outside the loop which covers
this situation:
for (int i = 0; i < N; ++i)
...
if (N > 0)
for (int i = 0; i < N; ++i)
...
So I've add 'LoopGuardedAgainstMin' which reports whether N is
greater than the minimum value which then allows loop with a variable
loop count to be optimised. I've also moved the increasing bound
checking into its own function and replaced SumCanReachMax is another
isLoopEntryGuardedByCond function.
llvm-svn: 328480
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, we might have a bug with scripts like below:
.foo : ALIGN(8)
{
*(.foo)
} > ram
because do not expand the memory region when doing ALIGN.
This might result in file range overlaps. The patch fixes the issue.
Differential revision: https://reviews.llvm.org/D44730
llvm-svn: 328479
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D44819
llvm-svn: 328478
|
| |
|
|
| |
llvm-svn: 328477
|
| |
|
|
|
|
|
|
|
|
| |
The NB comments for filesystem changed permissions and added
a new enum `perm_options` which control how the permissions
are applied.
This implements than NB resolution
llvm-svn: 328476
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As I move towards implementing std::filesystem, there is a need to
make the existing tests run against both the std and experimental versions.
Additionally, it's helpful to allow running the tests against other
implementations of filesystem.
This patch converts the test to easily target either. First, it
adds a filesystem_include.hpp header which is soley responsible
for selecting and including the correct implementation. Second,
it converts existing tests to use this header instead of including
filesystem directly.
llvm-svn: 328475
|
| |
|
|
| |
llvm-svn: 328474
|
| |
|
|
|
|
|
|
| |
SandyBridge/Haswell/Broadwell/Skylake scheduler models.
I've used Agner's data as best I could to get the values to converge on.
llvm-svn: 328473
|
| |
|
|
|
|
| |
instructions.
llvm-svn: 328472
|
| |
|
|
| |
llvm-svn: 328471
|
| |
|
|
|
|
| |
generated scheduler classes will merge.
llvm-svn: 328470
|
| |
|
|
|
|
| |
They were backwards.
llvm-svn: 328469
|
| |
|
|
|
|
| |
the same generated scheduler class.
llvm-svn: 328468
|
| |
|
|
| |
llvm-svn: 328467
|
| |
|
|
|
|
| |
to share the same generated scheduler class.
llvm-svn: 328466
|
| |
|
|
|
|
|
|
| |
for Skylake.
This matches Agner's data and is consistent with what the EVEX instructions were doing on SKX.
llvm-svn: 328465
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Strictly in a conversion operator's type, a <template-param> refers to a
<template-arg> that is further ahead in the mangled name. Instead of
doing a second parse to resolve these, introduce a
ForwardTemplateReference Node and back-patch the referenced
<template-arg> when we're in the right context.
This is also a correctness fix, previously we would only do a second
parse if the <template-param> was out of bounds in the current set of
<template-args>. This lead to misdemangles (gasp!) when the conversion
operator was a member of a templated struct, for instance.
llvm-svn: 328464
|
| |
|
|
|
|
|
|
| |
Rather than eagerly propagating up parameter pack sizes in Node ctors,
find the parameter pack size during printing. This is being done to
support back-patching forward referencing <template-param>s.
llvm-svn: 328463
|
| |
|
|
|
|
| |
Fixes PR33569.
llvm-svn: 328462
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This continues the FP constant pattern matching improvements from:
https://reviews.llvm.org/rL327627
https://reviews.llvm.org/rL327339
https://reviews.llvm.org/rL327307
Several integer constant matchers also have this ability. I'm
separating matching of integer/pointer null from FP positive zero
and renaming/commenting to make the functionality clearer.
llvm-svn: 328461
|
| |
|
|
| |
llvm-svn: 328460
|
| |
|
|
|
|
|
|
|
|
| |
This patch throws a fatal error if an instregex entry doesn't actually match any instructions. This is part of the work to reduce the compile time impact of increased instregex usage (PR35955), although the x86 models seem to be relatively clean.
All the cases I encountered have now been fixed in trunk and this will ensure they don't get reintroduced.
Differential Revision: https://reviews.llvm.org/D44687
llvm-svn: 328459
|
| |
|
|
| |
llvm-svn: 328458
|
| |
|
|
|
|
|
|
| |
(D44687)
Reviewed by @javed.absar
llvm-svn: 328457
|
| |
|
|
| |
llvm-svn: 328456
|
| |
|
|
| |
llvm-svn: 328455
|
| |
|
|
|
|
|
|
| |
optionally starting with 'Y' instead of 'V'
These bad regexs were introduced by r328435
llvm-svn: 328454
|
| |
|
|
|
|
| |
Not that it makes a difference to current cost values, but will when we try to better model GPR-SIMD transfer costs
llvm-svn: 328453
|
| |
|
|
| |
llvm-svn: 328452
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add fdiv costs for Goldmont using table 16-17 of the Intel Optimization Manual. Also add overrides for FSQRT for Goldmont and Silvermont.
Reviewers: RKSimon
Reviewed By: RKSimon
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D44644
llvm-svn: 328451
|
| |
|
|
| |
llvm-svn: 328450
|
| |
|
|
|
|
|
|
| |
We have thorough coverage of predicates and scalar types,
so we just need a sampling of vector tests to show that
things are working or not with vectors types.
llvm-svn: 328449
|
| |
|
|
|
|
| |
This is an extension of rL328426 as noted in D44367.
llvm-svn: 328448
|
| |
|
|
| |
llvm-svn: 328447
|
| |
|
|
|
|
|
|
|
|
| |
add 1uop for memory folds for Intel models
The Intel models need an extra 1uop for memory folded instructions, plus a lot of instructions take a non-default memory latency which should allow us to use the multiclass a lot more to tidy things up.
Differential Revision: https://reviews.llvm.org/D44840
llvm-svn: 328446
|
| |
|
|
| |
llvm-svn: 328445
|
| |
|
|
| |
llvm-svn: 328444
|
| |
|
|
| |
llvm-svn: 328443
|
| |
|
|
| |
llvm-svn: 328442
|
| |
|
|
| |
llvm-svn: 328441
|
| |
|
|
|
|
| |
We don't really care about the old vector value so we don't care to swap it.
llvm-svn: 328440
|
| |
|
|
|
|
|
| |
This patch removes the MachineValueType module since the
header was removed in r328395.
llvm-svn: 328439
|
| |
|
|
|
|
|
|
| |
passed to an ArrayRef parameter.
ArrayRef can capture a single element. We don't need a vector for that.
llvm-svn: 328438
|
| |
|
|
|
|
| |
creation. NFCI.
llvm-svn: 328437
|
| |
|
|
|
|
| |
contain regex metas. NFCI.
llvm-svn: 328436
|
| |
|
|
|
|
| |
regex matches to reduce compile time
llvm-svn: 328435
|
| |
|
|
|
|
| |
regex matches to reduce compile time
llvm-svn: 328434
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
LLVM defaults to the newer .init_array/.fini_array scheme for static
constructors rather than the less desirable .ctors/.dtors (the UseCtors
flag defaults to false). This wasn't being respected in the RISC-V
backend because it fails to call TargetLoweringObjectFileELF::InitializeELF with the the appropriate
flag for UseInitArray.
This patch fixes this by implementing RISCVELFTargetObjectFile and overriding its Initialize method to call
InitializeELF(TM.Options.UseInitArray).
Reviewers: asb, apazos
Reviewed By: asb
Subscribers: mgorny, rbar, johnrusso, simoncook, jordy.potman.lists, sabuasal, niosHD, kito-cheng, shiva0217, llvm-commits
Differential Revision: https://reviews.llvm.org/D44750
llvm-svn: 328433
|
| |
|
|
|
|
| |
matches to reduce compile time
llvm-svn: 328432
|