summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Use Builtin ID as the return valueAnna Zaks2012-01-175-62/+67
| | | | | | | | | | 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
* [analyzer] Taint: generalize taint propagation to simplify adding moreAnna Zaks2012-01-171-4/+128
| | | | | | taint propagation functions. llvm-svn: 148266
* Tidy up.Jim Grosbach2012-01-164-5/+5
| | | | llvm-svn: 148265
* ExecutionEngine interface to re-map addresses for engines that support it.Jim Grosbach2012-01-166-4/+50
| | | | llvm-svn: 148264
* MCJIT handle a few more simple x86 relocations for MachO.Jim Grosbach2012-01-161-4/+5
| | | | llvm-svn: 148263
* Removing unused default switch cases in switches over enums that already ↵David Blaikie2012-01-169-26/+3
| | | | | | | | 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
* Cleanup PPC RLWINM8 vs RLWINMHal Finkel2012-01-161-1/+1
| | | | | | No test case: output assembly will be identical. llvm-svn: 148261
* AggressiveAntiDepBreaker needs to skip debug values because a debug value ↵Hal Finkel2012-01-162-0/+43
| | | | | | does not have a corresponding SUnit llvm-svn: 148260
* Extract method for detecting constant unallocatable physregs.Jakob Stoklund Olesen2012-01-165-42/+30
| | | | | | It is safe to move uses of such registers. llvm-svn: 148259
* MCJIT support for non-function sections.Jim Grosbach2012-01-1610-268/+501
| | | | | | | | | | | | | | | | 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
* More improvements to not follow child processes and improved logging that ↵Greg Clayton2012-01-161-223/+404
| | | | | | always shows the process info. llvm-svn: 148257
* First chunk of native object file reader/writer. The lld-core tool now ↵Nick Kledzik2012-01-1612-8/+908
| | | | | | 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
* Add new line.Tanya Lattner2012-01-161-1/+1
| | | | llvm-svn: 148255
* Add support for OpenCL 1.1 logical operations.Tanya Lattner2012-01-164-16/+89
| | | | llvm-svn: 148254
* Add some calls to MarkDeclarationReferenced, towards a point where every ↵Eli Friedman2012-01-162-1/+8
| | | | | | declaration which is used is marked as used. llvm-svn: 148253
* Fixed comment in loop-unswitch.Stepan Dyatkovskiy2012-01-161-1/+1
| | | | llvm-svn: 148252
* Give better scavenger errors by invoking the verifier.Jakob Stoklund Olesen2012-01-161-1/+6
| | | | llvm-svn: 148251
* Add a new kind of MachineOperand: MO_RegisterMask.Jakob Stoklund Olesen2012-01-165-0/+67
| | | | | | | | | | | | | | | | | | | | | 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
* Make the auto-detection hack for the iOS simulator set the target triple ↵Eli Friedman2012-01-162-22/+26
| | | | | | 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
* Fix clang svn addressTobias Grosser2012-01-161-1/+1
| | | | llvm-svn: 148248
* Another test for 148243 Fariborz Jahanian2012-01-161-0/+22
| | | | | | non-constant-folded-switch containing a constant-folded switch. llvm-svn: 148247
* One more small optimization: Where possible, for loops that do a search and ↵Howard Hinnant2012-01-163-82/+91
| | | | | | 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
* A little more elaborate test for r148243Fariborz Jahanian2012-01-161-1/+7
| | | | llvm-svn: 148245
* Patch for r148243 which was left behind.Fariborz Jahanian2012-01-161-0/+12
| | | | llvm-svn: 148244
* Fixes a crash during constant folding of a switch and case Fariborz Jahanian2012-01-161-0/+10
| | | | | | | statement which has an unscoped case inside it. Patch by Aaron Ballman llvm-svn: 148243
* Some improvements to the handling of C11 atomic types:David Chisnall2012-01-1623-26/+269
| | | | | | | | | | | | | | | | | | - 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
* Comment smithing. Changed some casts from C-style to C++. And added ↵Howard Hinnant2012-01-165-27/+116
| | | | | | timings to all of the tests. llvm-svn: 148241
* Make sure the non-SSE lowering for fences correctly clobbers EFLAGS. PR11768.Eli Friedman2012-01-162-1/+35
| | | | llvm-svn: 148240
* Get rid of unused codegen-only instruction.Eli Friedman2012-01-162-12/+0
| | | | llvm-svn: 148239
* Describe how to optionally build the matching clang version.Tobias Grosser2012-01-162-0/+14
| | | | llvm-svn: 148238
* Adding a Hexagon cell for segmented stacks, as they have been implemented ↵Joe Abbey2012-01-161-0/+1
| | | | | | | | for X86 and not Sparc... Committed as obvious llvm-svn: 148237
* [asan] Implement GetObjectNameAndOffset on ARM.Evgeniy Stepanov2012-01-161-0/+23
| | | | llvm-svn: 148236
* AddressSanitizer: fix recently introduced lint errors and broken test on Mac.Alexey Samsonov2012-01-164-5/+5
| | | | llvm-svn: 148235
* Disable posix_memalign test on Android.Evgeniy Stepanov2012-01-161-1/+3
| | | | llvm-svn: 148234
* Give priority to AVX over SSE for 128-bit floating point unpck instructions.Craig Topper2012-01-161-34/+34
| | | | llvm-svn: 148233
* A fix for the previous commit: "integer constant is too large for ‘long’ ↵Eli Bendersky2012-01-161-2/+2
| | | | | | type" error on some 32-bit bots llvm-svn: 148232
* Adding a basic ELF dynamic loader and MC-JIT for ELF. Functionality is ↵Eli Bendersky2012-01-1646-64/+463
| | | | | | | | currently basic and will be enhanced with future patches. Patch developed by Andy Kaylor and Daniel Malea. Reviewed on llvm-commits. llvm-svn: 148231
* Refactor variables unused under non-assert builds (& remove two entirely ↵David Blaikie2012-01-162-4/+2
| | | | | | unused variables). llvm-svn: 148230
* Refactor variables unused under non-assert builds.David Blaikie2012-01-162-4/+2
| | | | llvm-svn: 148229
* Changed intrinsic ID operand to a target constant as its not used in any ↵Pete Cooper2012-01-161-1/+1
| | | | | | arithmetic so should not be checked in legalisation llvm-svn: 148228
* I think this is getting close on __dynamic_cast. There's been quite a bit ↵Howard Hinnant2012-01-165-565/+3735
| | | | | | 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
* [AVX] Optimize x86 VSELECT instructions using SimplifyDemandedBits.Nadav Rotem2012-01-153-6/+81
| | | | | | | | | | | 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
* Now that deserializing a definition of a C++ class/Objective-CDouglas Gregor2012-01-152-39/+14
| | | | | | | | | | 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
* When deserializing the definition of a C++ class/ObjC class/ObjCDouglas Gregor2012-01-159-108/+38
| | | | | | | | | | | | | | | 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
* Completely re-implement (de-)serialization of redeclarationDouglas Gregor2012-01-159-155/+186
| | | | | | | | | | | | | | | | 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
* Tweak markup.Benjamin Kramer2012-01-151-11/+13
| | | | llvm-svn: 148221
* added descriptions of vector extensions, info about vector literals and ↵Anton Yartsev2012-01-151-3/+157
| | | | | | vector operations. llvm-svn: 148220
* Fix ALL the markup.Benjamin Kramer2012-01-1536-387/+412
| | | | llvm-svn: 148219
* Return an ArrayRef from ShuffleVectorSDNode::getMask and push it through ↵Benjamin Kramer2012-01-155-98/+57
| | | | | | CodeGen. llvm-svn: 148218
* DAGCombiner: Deduplicate code.Benjamin Kramer2012-01-151-24/+14
| | | | llvm-svn: 148217
OpenPOWER on IntegriCloud