summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Teach the new SROA to handle cases where an alloca that has already beenChandler Carruth2012-10-023-0/+59
| | | | | | | | | | | | | | | | scheduled for processing on the worklist eventually gets deleted while we are processing another alloca, fixing the original test case in PR13990. To facilitate this, add a remove_if helper to the SetVector abstraction. It's not easy to use the standard abstractions for this because of the specifics of SetVectors types and implementation. Finally, a nice small test case is included. Thanks to Benjamin for the fantastic reduced test case here! All I had to do was delete some empty basic blocks! llvm-svn: 165065
* Clean up these doxygen comments to follow the proposed new style. ThisChandler Carruth2012-10-021-21/+22
| | | | | | | also makes it more consistent with Clang and several passes' doxygen style. llvm-svn: 165064
* Make sure to put our sret argument into %rax on x86-64. Fixes PR13563!Nick Lewycky2012-10-022-2/+29
| | | | llvm-svn: 165063
* Remove the old coalescer algorithm.Jakob Stoklund Olesen2012-10-021-344/+1
| | | | | | | The new algorithm has been enabled by default for almost a week now and seems to be stable. llvm-svn: 165062
* Change DynamicLoaderDarwinKernel::OSKextLoadedKextSummary to useJason Molenda2012-10-022-13/+19
| | | | | | | | | | | | | | | | | the Symbols::LocateExecutableObjectFile method to locate kexts and kernels instead of copying them out of the memory of the remote system. This is the fix for <rdar://problem/12416384>. Fix a variable shadowing problem in Symbols::LocateMacOSXFilesUsingDebugSymbols which caused the symbol rich executable binaries to not be found even if they were listed in the dSYM Info.plist. Change Symbols::DownloadObjectAndSymbolFile to ignore dsymForUUID's negative cache - this is typically being called by the user and we should try even if there's a incorrect entry in the negative cache. llvm-svn: 165061
* Handle reserved registers more accurately in handleMove().Jakob Stoklund Olesen2012-10-021-8/+7
| | | | | | | | | | | | Reserved register live ranges look like a set of dead defs - any uses of reserved registers are ignored. Instead of skipping the updating of reserved register operands entirely, just ignore the use operands and treat the def operands normally. No test case, handleMove() is not commonly used yet. llvm-svn: 165060
* Silence -Wunused-value warning.Ted Kremenek2012-10-021-0/+1
| | | | llvm-svn: 165059
* [ms-inline asm] Rewrite the symbol references as wildcard MCParsedAsmOperands.Chad Rosier2012-10-021-2/+38
| | | | | | | A Sema lookup is used to determine the size of the variable, which is in turn used during wildcard matching. llvm-svn: 165058
* [ms-inline asm] Add basic support for wildcard MCParsedAsmOperands. This typeChad Rosier2012-10-022-8/+33
| | | | | | | | | | | | | of operand is specific to MS-style inline assembly and should not be generated when parsing normal assembly. The purpose of the wildcard operands are to allow the AsmParser to match multiple instructions (i.e., MCInsts) to a given ms-style asm statement. For the time being the matcher just returns the first match. This patch only implements wildcard matches for memory operands. Support for register wildcards will be added in the near future. llvm-svn: 165057
* Make sure the whole live range is covered when values are pruned twice.Jakob Stoklund Olesen2012-10-022-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | JoinVals::pruneValues() calls LIS->pruneValue() to avoid conflicts when overlapping two different values. This produces a set of live range end points that are used to reconstruct the live range (with SSA update) after joining the two registers. When a value is pruned twice, the set of end points was insufficient: v1 = DEF v1 = REPLACE1 v1 = REPLACE2 KILL v1 The end point at KILL would only reconstruct the live range from REPLACE2 to KILL, leaving the range REPLACE1-REPLACE2 dead. Add REPLACE2 as an end point in this case so the full live range is reconstructed. This fixes PR13999. llvm-svn: 165056
* Allow alternate instructions to silence bot.Eric Christopher2012-10-021-1/+1
| | | | llvm-svn: 165055
* 80-col.Eric Christopher2012-10-021-2/+2
| | | | llvm-svn: 165054
* Clean-up of memory buffer and object ownership model in MCJITAndrew Kaylor2012-10-0215-163/+311
| | | | llvm-svn: 165053
* Don't use a debug location for frame setup instructions in theEric Christopher2012-10-023-5/+39
| | | | | | | prologue. Also skip frame setup instructions when looking for the first location. llvm-svn: 165052
* Use the existing DebugLoc.Eric Christopher2012-10-021-1/+1
| | | | llvm-svn: 165051
* Make the location a parameter since we may not want the next oneEric Christopher2012-10-021-7/+10
| | | | | | in the block. llvm-svn: 165050
* Remove the SavePoint infrastructure from fast isel, replaceEric Christopher2012-10-024-20/+85
| | | | | | | with just an insert point from the MachineBasicBlock and let the location be updated as we access it. llvm-svn: 165049
* Changed test output comparison to be consistent with the way llvm-objdump ↵Hemant Kulkarni2012-10-023-10/+9
| | | | | | and llvm-readobj work. llvm-svn: 165048
* [PCH/Module] Change the map of file-level DeclIDs to use a FileIDArgyrios Kyrtzidis2012-10-022-6/+6
| | | | | | | as key instead of a SLocEntry pointer. This allows the array of file sorted declarations in a PCH/module to be deterministic. llvm-svn: 165047
* [libclang] When indexing an AST file, only deserialize the file levelArgyrios Kyrtzidis2012-10-028-26/+117
| | | | | | declarations of the current primary module. llvm-svn: 165046
* [ms-inline asm] Fixup test case to be valid ms-style asm. Fix whitespace.Chad Rosier2012-10-021-2/+4
| | | | llvm-svn: 165045
* Refactor clients of AnalyzerOptions::getBooleanOption() to haveTed Kremenek2012-10-022-25/+27
| | | | | | an intermediate helper method to query and populate the Optional value. llvm-svn: 165043
* Set the 'build clang only' flag when we're building only clang.Bill Wendling2012-10-021-0/+1
| | | | llvm-svn: 165042
* Tweak AnalyzerOptions::getOptionAsInteger() to populate the stringTed Kremenek2012-10-024-19/+19
| | | | | | | | | table, making it printable with the ConfigDump checker. Along the way, fix a really serious bug where the value was getting parsed from the string in code that was in an assert() call. This means in a Release-Asserts build this code wouldn't work as expected. llvm-svn: 165041
* Change AnalyzerOptions::mayInlineCXXMemberFunction to default populateTed Kremenek2012-10-023-4/+25
| | | | | | | the config string table. Also setup a test for dumping the analyzer configuration for C++. llvm-svn: 165040
* [Doc parsing]: Add available and deprecated attribute infoFariborz Jahanian2012-10-026-4/+56
| | | | | | to XML output. // rdar://12378879 llvm-svn: 165039
* Improve overflow detection in StringRef::getAsUnsignedInteger().Nick Kledzik2012-10-021-2/+2
| | | | llvm-svn: 165038
* Add a new isl based code generationTobias Grosser2012-10-023-16/+916
| | | | | | | | | This pass implements a new code generator that uses the code generation algorithm included in isl. For the moment the new code generation is limited to sequential code. llvm-svn: 165037
* Add an ast pretty printer pass based on the isl code generatorTobias Grosser2012-10-026-2/+305
| | | | llvm-svn: 165036
* Update isl to get the new code generationTobias Grosser2012-10-021-1/+1
| | | | llvm-svn: 165035
* Detect the isl code generation feature correctlyTobias Grosser2012-10-023-5/+5
| | | | llvm-svn: 165034
* Make vector::iterator and string::iterator more resilient against overly ↵Howard Hinnant2012-10-021-0/+32
| | | | | | generic relational operators. llvm-svn: 165033
* Fix another crasher in SROA, reported by Joel.Chandler Carruth2012-10-021-9/+32
| | | | | | | | | | | | | | | | | | We require that the indices into the use lists are stable in order to build fast lookup tables to locate a particular partition use from an operand of a PHI or select. This is (obviously in hind sight) incompatible with erasing elements from the array. Really, we don't want to erase anyways. It is expensive, and a rare operation. Instead, simply weaken the contract of the PartitionUse structure to allow null Use pointers to represent dead uses. Now we can clear out the pointer to mark things as dead, and all it requires is adding some 'continue' checks to the various loops. I'm still reducing a test case for this, as the test case I have is huge. I think this one I can get a nice test case for though, as it was much more deterministic. llvm-svn: 165032
* [ms-inline asm] Enhance the isSimpleMSAsm() function to handle operands with ↵Chad Rosier2012-10-021-24/+26
| | | | | | | | pointer size directives (e.g., dword ptr [eax]). llvm-svn: 165031
* Support for generating ELF objects on Windows.Andrew Kaylor2012-10-0257-59/+84
| | | | | | This adds 'elf' as a recognized target triple environment value and overrides the default generated object format on Windows platforms if that value is present. This patch also enables MCJIT tests on Windows using the new environment value. llvm-svn: 165030
* Fix test for r165028. It only generates that flag for source files now.Bill Wendling2012-10-021-1/+1
| | | | | | <rdar://problem/12401423> llvm-svn: 165029
* During LTO, we call 'dsymutil' when we compile source files. This necessitatesBill Wendling2012-10-022-4/+18
| | | | | | | | | | clang specifying a temporary file that it later cleans up so that it can survive the linking stage. However, when we compile object files during LTO we don't call 'dsymutil'. That's done at a different stage (if at all). We rely upon the linker to specify a unique name for the temporary file it generates. <rdar://problem/12401423> llvm-svn: 165028
* Fix a silly coding error on my part. The whole point of the speculatorChandler Carruth2012-10-021-16/+28
| | | | | | | | | | | | | | | being separate was that it can grow the use list. As a consequence, we can't use the iterator-pair interface, we need an index based interface. Expose such an interface from the AllocaPartitioning, and use it in the speculator. This should at least fix a use-after-free bug found by Duncan, and may fix some of the other crashers. I don't have a nice deterministic test case yet, but if I get a good one, I'll add it. llvm-svn: 165027
* Convert to FileCheck.Rafael Espindola2012-10-021-40/+46
| | | | llvm-svn: 165026
* No need to call the InitializeAll* functions.Chad Rosier2012-10-021-5/+0
| | | | llvm-svn: 165025
* FP_CONTRACT: Fix two tests for -Asserts.NAKAMURA Takumi2012-10-022-8/+5
| | | | llvm-svn: 165024
* [libclang] When indexing an AST file, only deserialize the preprocessing recordArgyrios Kyrtzidis2012-10-026-12/+48
| | | | | | entities of the current primary module. llvm-svn: 165023
* Add info in the preprocessing record whether an inclusion directiveArgyrios Kyrtzidis2012-10-025-6/+20
| | | | | | resulted in an automatic module import. llvm-svn: 165022
* [libclang] Even though we disable the preprocessing record during indexing,Argyrios Kyrtzidis2012-10-022-6/+20
| | | | | | make sure that it gets enabled for when a module needs to be created. llvm-svn: 165021
* [libclang] Implement the importedASTFile indexing callback to provideArgyrios Kyrtzidis2012-10-026-5/+82
| | | | | | info about imported modules. llvm-svn: 165020
* Fix broken tests.Benjamin Kramer2012-10-024-5/+6
| | | | llvm-svn: 165019
* Do not patch the instruction address when symbolizing the reports.Alexander Potapenko2012-10-023-33/+11
| | | | | | Instead, print the correct address at runtime. llvm-svn: 165018
* Fix PR13991: legalizing an overflowing multiplication operation is harder thanDuncan Sands2012-10-022-7/+29
| | | | | | | the add/sub case since in the case of multiplication you also have to check that the operation in the larger type did not overflow. llvm-svn: 165017
* Splitting this test case into two because the behavior for the calling ↵Aaron Ballman2012-10-022-6/+6
| | | | | | convention code is target-specific. llvm-svn: 165016
* Allowing individual targets to determine whether a given calling convention ↵Aaron Ballman2012-10-0216-22/+163
| | | | | | | | is allowed or ignored with warning. This allows for correct name mangling for x64 targets on Windows, which in turn allows for linking against the Win32 APIs. Fixes PR13782 llvm-svn: 165015
OpenPOWER on IntegriCloud