summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Simplify the control flow for predefined macro selection by usingChandler Carruth2011-09-281-27/+26
| | | | | | | | | fallthrough now that we're working with a switch. Also remove a dubious "feature" regarding k6 processors and 3dnow and leave a fixme... Not that anyone is likely to care about correct tuning for k6 processors with and w/o 3dnow... llvm-svn: 140687
* A typeid of zero means a cleanup, not a catch. This case occursDuncan Sands2011-09-281-2/+4
| | | | | | when there is both a catch and a cleanup. Correct the comment. llvm-svn: 140686
* Switch the X86TargetInfo object from a string representation of theChandler Carruth2011-09-281-57/+179
| | | | | | | | | | | | | | | | | | selected CPU model to the enumeration. This parses the string representation once using a StringSwitch on SetCPU. It returns an error for strings which are not recognized (yay!). Finally it replaces ridiculous if-chains with switches that cover all enumerators. The last change required adding several missing entries to the features function. These were obvious on inspection. Yay for a pattern that gives warnings when we miss one. No new test cases yet, as I want to get the 64-bit errors working first. I'll then start fleshing out the testing more. Currently I'm primarily testing on Linux, but I'm hoping check whether there are interesting differences on darwin before long... llvm-svn: 140685
* Introduce an enumeration for the x86 CPUs recognized by Clang. I'veChandler Carruth2011-09-281-0/+124
| | | | | | | tried to give these nice doxyments, but if I've gotten any of my history wrong, please chime in. llvm-svn: 140684
* Clean up a bit of the uses of CPU in the TargetInfo classes. This makesChandler Carruth2011-09-282-19/+10
| | | | | | | | | | | | it an error if a CPU is provided for a target that doesn't implement logic handling CPU settings, to match the ABI settings. It also removes the CPU parameter from the getDefaultFeatures method. This parameter was always filled in with the same value as setCPU was called with, and at this point every single target implementation that referenced the CPU within this function has needed to store the CPU via setCPU anyways in order to implement other interface points. llvm-svn: 140683
* Driver: Fix two bad typos that were breaking the buildbots.Benjamin Kramer2011-09-282-3/+2
| | | | llvm-svn: 140682
* Install c-index-test as part of install-clang-c Makefile rule.Ted Kremenek2011-09-281-3/+0
| | | | llvm-svn: 140681
* PTX: Simplify code. No functionality change.Benjamin Kramer2011-09-281-13/+5
| | | | llvm-svn: 140680
* PTX: Pass param name strings per const reference.Benjamin Kramer2011-09-282-7/+7
| | | | | | The copies caused use-after-free bugs on std::string implementations without COW (i.e. anything but libstdc++) llvm-svn: 140679
* Strip off pointer casts when looking at the eh.sjlj.functioncontext's argument.Bill Wendling2011-09-281-1/+2
| | | | llvm-svn: 140678
* Bitcast the alloca to an i8* to match the intrinsic's signature.Bill Wendling2011-09-281-1/+4
| | | | llvm-svn: 140677
* Create and use an llvm.eh.sjlj.functioncontext intrinsic.Bill Wendling2011-09-284-4/+29
| | | | | | | | This intrinsic is used to pass the index of the function context to the back-end for further processing. The back-end is in charge of filling in the rest of the entries. llvm-svn: 140676
* In the new EH model, setup the function context and the call site info.Bill Wendling2011-09-281-1/+181
| | | | | | | | | | | | The DWARF exception pass uses the call site information, which is set up here. A pre-RA pass is too late for it to use this information. So create and setup the function context here, and then insert the call site values here (and map the call sites for the DWARF EH pass). This is simpler than the original pass, and doesn't make the CFG lose its SSA-ness. It's a win-win-win-win-lose-win-win situation. llvm-svn: 140675
* Don't conditionalize execution of the SjLj EH prepare pass.Bill Wendling2011-09-281-5/+1
| | | | | | | We may need an SjLj EH preparation pass for some call site information, at least in the short term. llvm-svn: 140674
* Begin fixing Clang's predefined macros for various architectures. ThisChandler Carruth2011-09-283-18/+516
| | | | | | | | | | | | | | | | is *very* much a WIP that I'll be refining over the next several commits, but I need to get this checkpoint in place for sanity. This also adds a much more comprehensive test for architecture macros, which is roughly generated by inspecting the behavior of a trunk build of GCC. It still requires some massaging, but eventually I'll even check in the script that generates these so that others can use it to append more tests for more architectures, etc. Next up is a bunch of simplification of the Targets.cpp code, followed by a lot more test cases once we can reject invalid architectures. llvm-svn: 140673
* Introduce Decl::getParentFunctionOrMethod which if the decl is defined insideArgyrios Kyrtzidis2011-09-282-6/+12
| | | | | | a function/method/block it returns the corresponding DeclContext, otherwise it returns null. llvm-svn: 140672
* Test case for r140670: indvars should hoist sext.Andrew Trick2011-09-281-0/+28
| | | | llvm-svn: 140671
* indvars should hoist [sz]ext because licm is not rerun.Andrew Trick2011-09-281-17/+27
| | | | llvm-svn: 140670
* Add a test sequence of iterating through a module's symbols belonging to a ↵Johnny Chen2011-09-282-0/+79
| | | | | | | | section. Add the relevant utility functions to the lldbutil.py file. llvm-svn: 140669
* [driver] If no OSX or iOS target has been specified and we're compiling for Chad Rosier2011-09-281-0/+6
| | | | | | | armv7, go ahead as assume we're targeting iOS. rdar://10147774 llvm-svn: 140668
* PR10628: Fix getModRefInfo so it queries the underlying alias() ↵Eli Friedman2011-09-282-2/+17
| | | | | | implementation correctly while checking nocapture calls. llvm-svn: 140666
* Rename class and clean up source.Jakob Stoklund Olesen2011-09-281-25/+28
| | | | | | No functional change intended. llvm-svn: 140664
* Rename SSEDomainFix -> lib/CodeGen/ExecutionDepsFix.Jakob Stoklund Olesen2011-09-283-1/+1
| | | | | | I'll clean up the source in the next commit. llvm-svn: 140663
* Need to go to the containing inline block to get the inline name right.Jim Ingham2011-09-271-3/+8
| | | | llvm-svn: 140662
* Remove MipsFPRound. Mips1 is no longer supported.Akira Hatanaka2011-09-271-4/+0
| | | | llvm-svn: 140661
* Another installment on debug mode. This addresses list. However this ↵Howard Hinnant2011-09-274-62/+672
| | | | | | should be considered a temporary state. The API of the debug database and how vector and list use it, is unsatisfactory at the moment. It is both inefficient and overly verbose. I wanted to get this functionality checked in though. In the next day or so I'll refactor what is there in an attempt to streamline things. llvm-svn: 140660
* Remove X86-dependent stuff from SSEDomainFix.Jakob Stoklund Olesen2011-09-276-24/+43
| | | | | | | | | This also enables domain swizzling for AVX code which required a few trivial test changes. The pass will be moved to lib/CodeGen shortly. llvm-svn: 140659
* PR11002: Make sure we emit sentinel warnings with a valid source location. ↵Eli Friedman2011-09-272-5/+13
| | | | | | (Ideally, we want to use the location returned by getLocForEndOfToken, but that is not always successful.) llvm-svn: 140658
* Include prefix with default synthesized ivars.Ted Kremenek2011-09-277-31/+40
| | | | llvm-svn: 140657
* Only print _Bool as 'bool' when 'bool' is defined as an object-likeDouglas Gregor2011-09-2712-65/+98
| | | | | | macro whose only replacement token is '_Bool'. llvm-svn: 140656
* Unbreak CMake build.Ted Kremenek2011-09-272-2/+3
| | | | llvm-svn: 140655
* Add a simple test TestModuleAndSection.py to exercise some ↵Johnny Chen2011-09-273-0/+188
| | | | | | | | | module/section-related APIs. In particular, it iterates through the executable module's SBSections, looking for the '__TEXT' section and further iterates on its subsections (of SBSection type, too). llvm-svn: 140654
* Implement TII::get/setExecutionDomain() for ARM.Jakob Stoklund Olesen2011-09-272-0/+59
| | | | llvm-svn: 140653
* Promote the X86 Get/SetSSEDomain functions to TargetInstrInfo.Jakob Stoklund Olesen2011-09-274-10/+39
| | | | | | | | I am going to unify the SSEDomainFix and NEONMoveFix passes into a single target independent pass. They are essentially doing the same thing. llvm-svn: 140652
* Remove the egregious hack that made Objective-C++ ARC work with olderDouglas Gregor2011-09-272-81/+1
| | | | | | | versions of libc++. Newer versions of libc++ know how to deal with ARC properly. Fixes <rdar://problem/10062179>. llvm-svn: 140651
* When 'bool' is not a built-in type but is defined as a macro, printDouglas Gregor2011-09-2720-83/+91
| | | | | | | 'bool' rather than '_Bool' within types, to make things a bit more readable. Fixes <rdar://problem/10063263>. llvm-svn: 140650
* objcetive-c-arc: When overriding a method, its ns_consumed patameterFariborz Jahanian2011-09-274-6/+56
| | | | | | | | attribute must match its overriden method. Same also for ns_returns_retained/not_retained on the result type. This is one half of // rdar://10187884 llvm-svn: 140649
* Fix a crash in MallocOverflowSecurityChecker. Patch by Lei Zhang.Anna Zaks2011-09-272-0/+13
| | | | llvm-svn: 140648
* ARM Thumb2 asm parsing [SU]XT[BH] without rotate but with .w.Jim Grosbach2011-09-272-1/+18
| | | | | | | | Add inst alias to handle these assembly forms. Add tests, too. rdar://10178799 llvm-svn: 140647
* This is the start of the new SjLj EH preparation pass, which will replace theBill Wendling2011-09-274-2/+127
| | | | | | | | | | | | | | | | | | | current IR-level pass. The old SjLj EH pass has some problems, especially with the new EH model. Most significantly, it violates some of the new restrictions the new model has. For instance, the 'dispatch' table wants to jump to the landing pad, but we cannot allow that because only an invoke's unwind edge can jump to a landing pad. This requires us to mangle the code something awful. In addition, we need to keep the now dead landingpad instructions around instead of CSE'ing them because the DWARF emitter uses that information (they are dead because no control flow edge will execute them - the control flow edge from an invoke's unwind is superceded by the edge coming from the dispatch). Basically, this pass belongs not at the IR level where SSA is king, but at the code-gen level, where we have more flexibility. llvm-svn: 140646
* Check for GCC paths that have the target triple in them. This is required ↵David Chisnall2011-09-273-47/+54
| | | | | | for a lot of cross-compile toolchains. Also add some slightly better support for -B. llvm-svn: 140645
* Embed patterns in definitions of MFC1 and MTC1 instead of defining them outsideAkira Hatanaka2011-09-271-5/+4
| | | | | | of the instruction definitions using Pat<>. llvm-svn: 140644
* Remove an invalid assert that is really just asserting when the scheduler emitsCameron Zwarich2011-09-271-1/+0
| | | | | | a suboptimal schedule. llvm-svn: 140643
* Get rid of useless helper Sema::CastCategory.Eli Friedman2011-09-276-20/+11
| | | | llvm-svn: 140642
* test/CMakeLists.txt: Depend on llvm-objdump. "make check" is expected to ↵NAKAMURA Takumi2011-09-271-1/+1
| | | | | | resolve test-dependent targets on CMake build. llvm-svn: 140641
* Make the assignment of TestBase.mydir more portable.Johnny Chen2011-09-273-3/+3
| | | | llvm-svn: 140640
* If you download clang and delete the test directory, you can end upDouglas Gregor2011-09-271-1/+1
| | | | | | | with the copy line failing with an error, yet the make will complete successfully. From Greg Clayton! llvm-svn: 140639
* SBWatchpointLocation.GetDescription() takes an additional description level arg.Johnny Chen2011-09-272-1/+5
| | | | | | Modify get_description() utility function in lldbutil.py to handle that. llvm-svn: 140638
* de-tmpify clang.Benjamin Kramer2011-09-2713-97/+90
| | | | llvm-svn: 140637
* Rename AddSelectionDAGCSEId() to addSelectionDAGCSEId().Jim Grosbach2011-09-274-5/+5
| | | | | | Naming conventions consistency. No functional change. llvm-svn: 140636
OpenPOWER on IntegriCloud