| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
enhancement done the trivial way; by extending inputs and truncating outputs
which is addequate for targets with little or no support for integer arithmetic
on integer types less than 32 bits.
llvm-svn: 176139
|
| |
|
|
| |
llvm-svn: 176136
|
| |
|
|
|
|
| |
are folded. Test case included.
llvm-svn: 176131
|
| |
|
|
| |
llvm-svn: 176130
|
| |
|
|
| |
llvm-svn: 176129
|
| |
|
|
| |
llvm-svn: 176125
|
| |
|
|
|
|
|
|
| |
There's no need to generate a stack frame for PPC32 SVR4 when there are
no local variables assigned to the stack, i.e., when no red zone is needed.
(PPC64 supports a red zone, but PPC32 does not.)
llvm-svn: 176124
|
| |
|
|
| |
llvm-svn: 176123
|
| |
|
|
|
|
|
|
|
|
|
| |
TAG_member inside a class to the specification DIE.
Having AT_MIPS_linkage_name on TAG_member caused old gdb (GNU 6.3.50) to
error out. Also gcc 4.7 has AT_MIPS_linkage_name on the specification DIE.
rdar://problem/13291234
llvm-svn: 176120
|
| |
|
|
|
|
|
|
|
|
| |
For integer constants, allow 'L', 'UL' as well as 'ULL' and 'LL'. This provides
better support for shared headers between .s and .c files that define bunches
of constant values.
rdar://9321056
llvm-svn: 176118
|
| |
|
|
| |
llvm-svn: 176117
|
| |
|
|
|
|
| |
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176105
|
| |
|
|
|
|
|
|
| |
Make it possible to map between e32 and e64 encoding opcodes.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176104
|
| |
|
|
|
|
| |
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176103
|
| |
|
|
|
|
| |
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176102
|
| |
|
|
|
|
|
|
|
|
| |
Include immediate folding and SGPR limit handling for VOP3 instructions.
v2: remove leftover hasExtraSrcRegAllocReq
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176101
|
| |
|
|
|
|
| |
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176100
|
| |
|
|
|
|
|
|
|
|
| |
v2: document why we hardcode VCC for now.
This is a candidate for the mesa-stable branch.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176099
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prevent producing real strange tablegen code by using
proper register sizes, alignments and hierarchy.
Also cleanup the unused definitions and add some comments.
v2: add SGPR 512 bit registers, stop registers from wrapping around,
fix SGPR alignment
This is a candidate for the mesa-stable branch.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176098
|
| |
|
|
|
|
|
|
| |
This is a candidate for the mesa-stable branch.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 176097
|
| |
|
|
|
|
|
| |
The PowerPC TLS relocation types were not previously added to the
necessary list in MCELFStreamer::fixSymbolsInTLSFixups(). Now they are!
llvm-svn: 176094
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are two related changes (one in llvm, one in clang).
LLVM:
- rename address_safety => sanitize_address (the enum value is the same, so we preserve binary compatibility with old bitcode)
- rename thread_safety => sanitize_thread
- rename no_uninitialized_checks -> sanitize_memory
CLANG:
- add __attribute__((no_sanitize_address)) as a synonym for __attribute__((no_address_safety_analysis))
- add __attribute__((no_sanitize_thread))
- add __attribute__((no_sanitize_memory))
for S in address thread memory
If -fsanitize=S is present and __attribute__((no_sanitize_S)) is not
set llvm attribute sanitize_S
llvm-svn: 176075
|
| |
|
|
|
|
| |
reduces the pass-manager overhead from FPPassManager::runOnFunction() by about 10%.
llvm-svn: 176072
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 176070
|
| |
|
|
|
|
|
| |
arguments type is a simple type.
rdar://13290455
llvm-svn: 176066
|
| |
|
|
|
|
| |
- Put expensive checking after simple one
llvm-svn: 176060
|
| |
|
|
|
|
|
| |
- Check whether SSE is available before lowering all 1s vector building with
PCMPEQD, which is only available from SSE2
llvm-svn: 176058
|
| |
|
|
| |
llvm-svn: 176055
|
| |
|
|
|
|
|
|
|
|
| |
fewer scalar integer (i32 or i64) arguments. It completely eliminates the need
for SDISel for trivial functions.
Also, add the new llc -fast-isel-abort-args option, which is similar to
-fast-isel-abort option, but for formal argument lowering.
llvm-svn: 176052
|
| |
|
|
|
|
| |
Fixes rdar:13279013: scheduler was blowing up on select instructions.
llvm-svn: 176037
|
| |
|
|
|
|
| |
rdar://13254235
llvm-svn: 176036
|
| |
|
|
| |
llvm-svn: 176031
|
| |
|
|
|
|
| |
Report and fix due to Kai Nacke. Testcase update by me.
llvm-svn: 176029
|
| |
|
|
| |
llvm-svn: 176023
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
memory intrinsics in the SDAG builder.
When alignment is zero, the lang ref says that *no* alignment
assumptions can be made. This is the exact opposite of the internal API
contracts of the DAG where alignment 0 indicates that the alignment can
be made to be anything desired.
There is another, more explicit alignment that is better suited for the
role of "no alignment at all": an alignment of 1. Map the intrinsic
alignment to this early so that we don't end up generating aligned DAGs.
It is really terrifying that we've never seen this before, but we
suddenly started generating a large number of alignment 0 memcpys due to
the new code to do memcpy-based copying of POD class members. That patch
contains a bug that rounds bitfield alignments down when they are the
first field. This can in turn produce zero alignments.
This fixes weird crashes I've seen in library users of LLVM on 32-bit
hosts, etc.
llvm-svn: 176022
|
| |
|
|
| |
llvm-svn: 176007
|
| |
|
|
| |
llvm-svn: 176004
|
| |
|
|
| |
llvm-svn: 176002
|
| |
|
|
|
|
|
|
|
|
|
| |
This removes a const_cast hack from PPCRegisterInfo::hasReservedSpillSlot().
The proper place to save the frame index for the CR spill slot is in the
PPCFunctionInfo object, not the PPCRegisterInfo object.
No new test cases, as this just reimplements existing function. Existing
tests such as test/CodeGen/PowerPC/crsave.ll are sufficient.
llvm-svn: 175998
|
| |
|
|
|
|
|
|
|
|
| |
This is a common pattern with dyn_cast and similar constructs, when the
PHI no longer depends on the select it can often be turned into a simpler
construct or even get hoisted out of the loop.
PR15340.
llvm-svn: 175995
|
| |
|
|
| |
llvm-svn: 175991
|
| |
|
|
|
|
| |
Fix PR15239.
llvm-svn: 175985
|
| |
|
|
|
|
| |
as early as possible; which means during instruction selection.
llvm-svn: 175984
|
| |
|
|
|
|
| |
builds.
llvm-svn: 175981
|
| |
|
|
|
|
|
| |
true when shouldOnlyCommute is false, so we can remove code that checks
otherwise.
llvm-svn: 175980
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
itself recursively with a new instruction that has not been finalized, in order
to determine whether to keep the instruction. On 'make check' and test-suite the
only cases where the recursive invocation made any transformations were simple
instruction commutations, so I am restricting the recursive invocation to do
only this.
The other cases wouldn't work correctly when updating LiveIntervals, since the
new instructions don't have slot indices and LiveIntervals hasn't yet been
updated. If the other transformations were actually triggering in any test case
it would be possible to support it with a lot of effort, but since they don't
it's not worth it.
llvm-svn: 175979
|
| |
|
|
|
|
| |
proper. Fixed this already a few days ago for slti.
llvm-svn: 175975
|
| |
|
|
|
|
|
| |
unless it was requested to with an optional parameter that defaults to false, so
we don't need to handle that case in TwoAddressInstructionPass.
llvm-svn: 175974
|
| |
|
|
|
|
| |
Fixes PR15115.
llvm-svn: 175962
|
| |
|
|
|
|
| |
MachineInstrs don't have a slot index.
llvm-svn: 175961
|