| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
| |
for FunctionDecl::getMemoryFunctionKind().
This is a follow up on the Chris's review for r148142: We don't want to
pollute FunctionDecl with an extra enum. (To make this work, added
memcmp and family to the library builtins.)
llvm-svn: 148267
|
| |
|
|
|
|
| |
taint propagation functions.
llvm-svn: 148266
|
| |
|
|
| |
llvm-svn: 148265
|
| |
|
|
| |
llvm-svn: 148264
|
| |
|
|
| |
llvm-svn: 148263
|
| |
|
|
|
|
|
|
| |
account for all enumeration values explicitly.
(This time I believe I've checked all the -Wreturn-type warnings from GCC & added the couple of llvm_unreachables necessary to silence them. If I've missed any, I'll happily fix them as soon as I know about them)
llvm-svn: 148262
|
| |
|
|
|
|
| |
No test case: output assembly will be identical.
llvm-svn: 148261
|
| |
|
|
|
|
| |
does not have a corresponding SUnit
llvm-svn: 148260
|
| |
|
|
|
|
| |
It is safe to move uses of such registers.
llvm-svn: 148259
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move to a by-section allocation and relocation scheme. This allows
better support for sections which do not contain externally visible
symbols.
Flesh out the relocation address vs. local storage address separation a
bit more as well. Remote process JITs use this to tell the relocation
resolution code where the code will live when it executes.
The startFunctionBody/endFunctionBody interfaces to the JIT and the
memory manager are deprecated. They'll stick around for as long as the
old JIT does, but the MCJIT doesn't use them anymore.
llvm-svn: 148258
|
| |
|
|
|
|
| |
always shows the process info.
llvm-svn: 148257
|
| |
|
|
|
|
| |
reads YAML file, links, writes that out as native object format, then reads that native file, then writes the YAML to stdout. Thus the test suite tests both YAML reading/writing as well as native object file reading/writing.
llvm-svn: 148256
|
| |
|
|
| |
llvm-svn: 148255
|
| |
|
|
| |
llvm-svn: 148254
|
| |
|
|
|
|
| |
declaration which is used is marked as used.
llvm-svn: 148253
|
| |
|
|
| |
llvm-svn: 148252
|
| |
|
|
| |
llvm-svn: 148251
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Register masks will be used as a compact representation of large clobber
lists. Currently, an x86 call instruction has some 40 operands
representing call-clobbered registers. That's more than 1kB of useless
operands per call site.
A register mask operand references a bit mask of call-preserved
registers, everything else is clobbered. The bit mask will typically
come from TargetRegisterInfo::getCallPreservedMask().
By abandoning ImplicitDefs for call-clobbered registers, it also becomes
possible to share call instruction descriptions between calling
conventions, and we can get rid of the WINCALL* instructions.
This patch introduces the new operand kind. Future patches will add
RegMask support to target-independent passes before finally the fixed
clobber lists can be removed from call instruction descriptions.
llvm-svn: 148250
|
| |
|
|
|
|
| |
correctly. Getting the target triple wrong mostly appears to work, but messes up in subtle cases; for example, we incorrectly conclude that fwrite is actually named fwrite$UNIX2003. Also shuffles around the auto-detection code a bit to try and make it a bit more reliable. Fixes <rdar://problem/10664848>.
llvm-svn: 148249
|
| |
|
|
| |
llvm-svn: 148248
|
| |
|
|
|
|
| |
non-constant-folded-switch containing a constant-folded switch.
llvm-svn: 148247
|
| |
|
|
|
|
| |
then try to break out of the loop early, eliminate the attempt to break out of the loop after the last search. And with that, I'm declaring __dynamic_cast done. Though if anyone sees any problems, has suggestions for improvements, or wants to contribute some test cases, that is certainly welcome feedback.
llvm-svn: 148246
|
| |
|
|
| |
llvm-svn: 148245
|
| |
|
|
| |
llvm-svn: 148244
|
| |
|
|
|
|
|
| |
statement which has an unscoped case inside it.
Patch by Aaron Ballman
llvm-svn: 148243
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add atomic-to/from-nonatomic cast types
- Emit atomic operations for arithmetic on atomic types
- Emit non-atomic stores for initialisation of atomic types, but atomic stores and loads for every other store / load
- Add a __atomic_init() intrinsic which does a non-atomic store to an _Atomic() type. This is needed for the corresponding C11 stdatomic.h function.
- Enables the relevant __has_feature() checks. The feature isn't 100% complete yet, but it's done enough that we want people testing it.
Still to do:
- Make the arithmetic operations on atomic types (e.g. Atomic(int) foo = 1; foo++;) use the correct LLVM intrinsic if one exists, not a loop with a cmpxchg.
- Add a signal fence builtin
- Properly set the fenv state in atomic operations on floating point values
- Correctly handle things like _Atomic(_Complex double) which are too large for an atomic cmpxchg on some platforms (this requires working out what 'correctly' means in this context)
- Fix the many remaining corner cases
llvm-svn: 148242
|
| |
|
|
|
|
| |
timings to all of the tests.
llvm-svn: 148241
|
| |
|
|
| |
llvm-svn: 148240
|
| |
|
|
| |
llvm-svn: 148239
|
| |
|
|
| |
llvm-svn: 148238
|
| |
|
|
|
|
|
|
| |
for X86 and not Sparc...
Committed as obvious
llvm-svn: 148237
|
| |
|
|
| |
llvm-svn: 148236
|
| |
|
|
| |
llvm-svn: 148235
|
| |
|
|
| |
llvm-svn: 148234
|
| |
|
|
| |
llvm-svn: 148233
|
| |
|
|
|
|
| |
type" error on some 32-bit bots
llvm-svn: 148232
|
| |
|
|
|
|
|
|
| |
currently basic and will be enhanced with future patches.
Patch developed by Andy Kaylor and Daniel Malea. Reviewed on llvm-commits.
llvm-svn: 148231
|
| |
|
|
|
|
| |
unused variables).
llvm-svn: 148230
|
| |
|
|
| |
llvm-svn: 148229
|
| |
|
|
|
|
| |
arithmetic so should not be checked in legalisation
llvm-svn: 148228
|
| |
|
|
|
|
| |
of code rearrangement, renaming, and better commenting. This exercise has exposed and fixed a few more bugs. I've also added several more tests (there's definitely a need for more tests here).
llvm-svn: 148227
|
| |
|
|
|
|
|
|
|
|
|
| |
We know that the blend instructions only use the MSB, so if the mask is
sign-extended then we can convert it into a SHL instruction. This is a
common pattern because the type-legalizer sign-extends the i1 type which
is used by the LLVM-IR for the condition.
Added a new optimization in SimplifyDemandedBits for SIGN_EXTEND_INREG -> SHL.
llvm-svn: 148225
|
| |
|
|
|
|
|
|
|
|
| |
class/Objective-C protocol suffices get all of the redeclarations of
that declaration wired to the definition, we no longer need to record
the identity of the definition in every declaration. Instead, just
record a bit to indicate whether a particular declaration is the
definition.
llvm-svn: 148224
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
protocol, record the definition pointer in the canonical declaration
for that entity, and then propagate that definition pointer from the
canonical declaration to all other deserialized declarations. This
approach works well even when deserializing declarations that didn't
know about the original definition, which can occur with modules.
A nice bonus from this definition-deserialization approach is that we
no longer need update records when a definition is added, because the
redeclaration chains ensure that the if any declaration is loaded, the
definition will also get loaded.
llvm-svn: 148223
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
chains, again. The prior implementation was very linked-list oriented, and
the list-splicing logic was both fairly convoluted (when loading from
multiple modules) and failed to preserve a reasonable ordering for the
redeclaration chains.
This new implementation uses a simpler strategy, where we store the
ordered redeclaration chains in an array-like structure (indexed based
on the first declaration), and use that ordering to add individual
deserialized declarations to the end of the existing chain. That way,
the chain mimics the ordering from its modules, and a bug somewhere is
far less likely to result in a broken linked list.
llvm-svn: 148222
|
| |
|
|
| |
llvm-svn: 148221
|
| |
|
|
|
|
| |
vector operations.
llvm-svn: 148220
|
| |
|
|
| |
llvm-svn: 148219
|
| |
|
|
|
|
| |
CodeGen.
llvm-svn: 148218
|
| |
|
|
| |
llvm-svn: 148217
|