summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix PR4533, which is about buggy codegen in x86-64 -static mode.Chris Lattner2009-07-112-24/+561
| | | | | | | | | | | | | | | | | | | | | | | | | | Basically, using: lea symbol(%rip), %rax is not valid in -static mode, because the current RIP may not be within 32-bits of "symbol" when an app is built partially pic and partially static. The fix for this is to compile it to: lea symbol, %rax It would be better to codegen this as: movq $symbol, %rax but that will come next. The hard part of fixing this bug was fixing abi-isel, which was actively testing for the wrong behavior. Also, the RUN lines are completely impossible to understand what they are testing. To help with this, convert the -static x86-64 codegen tests to use filecheck. This is much more stable and makes it more clear what the codegen is expected to be. llvm-svn: 75382
* Fix test case to match intent.Daniel Dunbar2009-07-111-1/+1
| | | | llvm-svn: 75381
* Fix comment.Torok Edwin2009-07-111-3/+4
| | | | llvm-svn: 75380
* assert(0) -> LLVM_UNREACHABLE.Torok Edwin2009-07-11153-610/+695
| | | | | | | | | Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. llvm-svn: 75379
* Stub out assembly matcher (.s -> MCInst) tblgen backend.Daniel Dunbar2009-07-113-1/+64
| | | | llvm-svn: 75378
* Regenerate.Mikhail Glushenkov2009-07-111-2/+4
| | | | llvm-svn: 75376
* Update documentation.Mikhail Glushenkov2009-07-112-4/+7
| | | | llvm-svn: 75375
* Delete the temp dir even when '--temp-dir' is specified.Mikhail Glushenkov2009-07-111-2/+1
| | | | llvm-svn: 75374
* Fix handling of max and full set.Nick Lewycky2009-07-112-11/+8
| | | | | | | | A full set is a constant range that represents any number. If you take the umax of that and [5, 10) you end up with [5, INT_MAX] because the values less than 5 would be umax's against a value which is at least 5. llvm-svn: 75372
* improve filecheck's "scanning from here" caret position.Chris Lattner2009-07-111-0/+11
| | | | llvm-svn: 75371
* make filecheck default to canonicalizing horizontal whitespaceChris Lattner2009-07-111-0/+66
| | | | | | away. This way you can write a space and it matches arbitrary spaces and tabs. llvm-svn: 75370
* Break the world's largest unit test down a few logical lines. No semanticNick Lewycky2009-07-111-23/+65
| | | | | | changes. llvm-svn: 75369
* restore proper valgrind support.Nuno Lopes2009-07-112-7/+15
| | | | | | disclaim: I know nothing about Python, so apologies in advance if I break something llvm-svn: 75368
* Erase the temp dir before starting.Sanjiv Gupta2009-07-111-0/+7
| | | | llvm-svn: 75367
* Clarify and simplify.Nick Lewycky2009-07-112-4/+4
| | | | llvm-svn: 75366
* Fix breakage on Windows, cannot redeclare loop variable i in the immediate ↵Alisdair Meredith2009-07-111-4/+4
| | | | | | scope of loop. Rename variable to j. llvm-svn: 75365
* Don't use a void return type with a function that returns a value.Dan Gohman2009-07-111-1/+2
| | | | llvm-svn: 75364
* Convert more assert(0)+abort() -> LLVM_UNREACHABLE,Torok Edwin2009-07-1139-267/+296
| | | | | | and abort()/exit() -> llvm_report_error(). llvm-svn: 75363
* We get the P modifier wrong in a lot of cases, just add some more rigorous ↵Chris Lattner2009-07-111-30/+59
| | | | | | | | testing. In addition to fixing this, I still need to do some more testing on darwin. llvm-svn: 75362
* Don't put IT instruction before conditional branches.Evan Cheng2009-07-112-5/+32
| | | | llvm-svn: 75361
* Smarter isel of ldrsb / ldrsh. Only make use of these when [r,r] address is ↵Evan Cheng2009-07-114-24/+27
| | | | | | feasible. llvm-svn: 75360
* Major changes to Thumb (not Thumb2). Many 16-bit instructions either ↵Evan Cheng2009-07-1114-298/+444
| | | | | | | | modifies CPSR when they are outside the IT blocks, or they can predicated when in Thumb2. Move the implicit def of CPSR to an optional def which defaults CPSR. This allows the 's' bit to be toggled dynamically. A side-effect of this change is asm printer is now using unified assembly. There are some minor clean ups and fixes as well. llvm-svn: 75359
* 80 col violation.Evan Cheng2009-07-111-2/+2
| | | | llvm-svn: 75358
* Move a method that creates constant ranges relative to another constant rangeNick Lewycky2009-07-113-54/+87
| | | | | | | | | | per icmp predicate out of predsimplify and into ConstantRange. Add another utility method that determines whether one range is a subset of another. Combine with the former to determine whether icmp pred range, range is known to be true or not. llvm-svn: 75357
* Handle insidious corner case exposed by RegionStoreManager when handling ↵Ted Kremenek2009-07-112-0/+34
| | | | | | | | void* values that are bound to symbolic regions and then treated like integers. llvm-svn: 75356
* remove duplicated test cast.Zhongxing Xu2009-07-111-7/+0
| | | | llvm-svn: 75329
* Fix up support for OptionalDefOperand when it defaults to an actual register ↵Evan Cheng2009-07-111-4/+16
| | | | | | def. I need this to get ready for major Thumb1 surgery. llvm-svn: 75328
* Fix a test.Anders Carlsson2009-07-111-1/+1
| | | | llvm-svn: 75327
* Restructure RegionStoreManager::EvalBinOp() as a switch dispatch over differentTed Kremenek2009-07-111-33/+59
| | | | | | | MemRegion kinds. This allows the compiler to identify what MemRegions we don't handle for pointer arithmetic. llvm-svn: 75326
* Fix typo (found by gcc warning).Eli Friedman2009-07-111-1/+1
| | | | llvm-svn: 75325
* Add another test.Anders Carlsson2009-07-111-0/+10
| | | | llvm-svn: 75324
* Implement more of C++0x 'auto'. A variable with an auto type specifier must ↵Anders Carlsson2009-07-117-5/+21
| | | | | | have an initializer. Also, move some tests around to match the C++0x draft better. llvm-svn: 75322
* Fix warning when compiling with optimizations:Ted Kremenek2009-07-111-2/+2
| | | | | | | | | warning: ‘OPT’ may be used uninitialized in this function Now OPT is initialized to NULL. I'm not certain if this is the correct fix; others please review. llvm-svn: 75321
* Use CreateStackStoreLoad helper in more places.Eli Friedman2009-07-112-36/+4
| | | | llvm-svn: 75320
* This test passes with RegionStoreManager.Ted Kremenek2009-07-111-1/+2
| | | | llvm-svn: 75318
* Two-address pass should use findCommutedOpIndices to determine what ↵Evan Cheng2009-07-111-3/+10
| | | | | | registers are commuted. llvm-svn: 75317
* This test now passes with RegionStoreManager.Ted Kremenek2009-07-111-1/+2
| | | | llvm-svn: 75316
* Remove some unused code from an experiment that I didn't like.Anders Carlsson2009-07-102-52/+0
| | | | llvm-svn: 75315
* This patch includes a conceptually simple, but very intrusive/pervasive change. Steve Naroff2009-07-1043-755/+892
| | | | | | | | | | | | The idea is to segregate Objective-C "object" pointers from general C pointers (utilizing the recently added ObjCObjectPointerType). The fun starts in Sema::GetTypeForDeclarator(), where "SomeInterface *" is now represented by a single AST node (rather than a PointerType whose Pointee is an ObjCInterfaceType). Since a significant amount of code assumed ObjC object pointers where based on C pointers/structs, this patch is very tedious. It should also explain why it is hard to accomplish this in smaller, self-contained patches. This patch does most of the "heavy lifting" related to moving from PointerType->ObjCObjectPointerType. It doesn't include all potential "cleanups". The good news is additional cleanups can be done later (some are noted in the code). This patch is so large that I didn't want to include any changes that are purely aesthetic. By making the ObjC types truly built-in, they are much easier to work with (and require fewer "hacks"). For example, there is no need for ASTContext::isObjCIdStructType() or ASTContext::isObjCClassStructType()! We believe this change (and the follow-up cleanups) will pay dividends over time. Given the amount of code change, I do expect some fallout from this change (though it does pass all of the clang tests). If you notice any problems, please let us know asap! Thanks. llvm-svn: 75314
* Use findCommutedOpIndices to find the operands to commute.Evan Cheng2009-07-101-3/+13
| | | | llvm-svn: 75312
* Add superclasses of ARM Neon quad registers. The Q2PR class contains pairs ofBob Wilson2009-07-101-8/+106
| | | | | | quad registers and the Q4PR class holds sets of 4 quad registers. llvm-svn: 75309
* Add new vector types for 192-bit, 348-bit and 512-bit sizes.Bob Wilson2009-07-104-60/+203
| | | | | | | These are needed to represent ARM Neon struct datatypes containing 2, 3 or 4 separate vectors. llvm-svn: 75308
* remove the "debug" modifier, it is only used by one instruction which canChris Lattner2009-07-102-2/+2
| | | | | | never be generated. llvm-svn: 75305
* Restructure RegionStoreManager::getSizeInElements() to use a switch statementTed Kremenek2009-07-101-52/+67
| | | | | | | over the types of MemRegions. This allows the compiler to warn us which regions are not handled, and also is a little faster. llvm-svn: 75304
* Fix silly mistake I made applying patch to fix test.Eli Friedman2009-07-101-1/+1
| | | | llvm-svn: 75303
* Refactor TableGen's llvm::getName to share code with llvm::getEnumName,Bob Wilson2009-07-101-41/+4
| | | | | | since names are the same for almost all the types. llvm-svn: 75302
* add support for .zerofill, patch by Kevin Enderby!Chris Lattner2009-07-105-1/+134
| | | | llvm-svn: 75301
* Oops. s/#if defined(USE_OPROFILE)/#if USE_OPROFILE/. We #defineJeffrey Yasskin2009-07-101-3/+3
| | | | | | | USE_OPROFILE to 0 on some paths through configure, which does the wrong thing with #if defined(). llvm-svn: 75300
* make pcrel and non-pcrel global printing more similar.Chris Lattner2009-07-101-11/+19
| | | | llvm-svn: 75298
* Rename test file.Ted Kremenek2009-07-101-0/+0
| | | | llvm-svn: 75297
OpenPOWER on IntegriCloud