summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Refactor CompileUnit into a separate header.Devang Patel2011-04-122-98/+124
| | | | llvm-svn: 129367
* Print out a debug message when the reglist fails the sanity check for Thumb ↵Johnny Chen2011-04-123-0/+39
| | | | | | Ld/St Multiple. llvm-svn: 129365
* Fix the case of a .cfi_rel_offset before any .cfi_def_cfa_offset.Rafael Espindola2011-04-126-78/+164
| | | | llvm-svn: 129362
* Implement .cfi_same_value.Rafael Espindola2011-04-126-1/+80
| | | | llvm-svn: 129361
* Added new FIXME noteGarrison Venn2011-04-121-0/+9
| | | | llvm-svn: 129360
* Split a store of a VMOVDRR into two integer stores to avoid mixing NEON and ARMCameron Zwarich2011-04-122-3/+23
| | | | | | | stores of arguments in the same cache line. This fixes the second half of <rdar://problem/8674845>. llvm-svn: 129345
* lib/Transforms/Instrumentation/CMakeLists.txt: Add LineProfiling.cpp to fix ↵NAKAMURA Takumi2011-04-121-0/+1
| | | | | | up r129340. llvm-svn: 129343
* Add support for line profiling. Very work-in-progress.Nick Lewycky2011-04-127-1/+263
| | | | | | | | | | Use debug info in the IR to find the directory/file:line:col. Each time that location changes, bump a counter. Unlike the existing profiling system, we don't try to look at argv[], and thusly don't require main() to be present in the IR. This matches GCC's technique where you specify the profiling flag when producing each .o file. The runtime library is minimal, currently just calling printf at program shutdown time. The API is designed to make it possible to emit GCOV data later on. llvm-svn: 129340
* Consider ConstantAggregateZero as well as ConstantArray/Struct.Nick Lewycky2011-04-121-5/+7
| | | | llvm-svn: 129338
* Fix typo.Eric Christopher2011-04-121-1/+1
| | | | llvm-svn: 129334
* Make IRBuilder support StringRef for building strings.Nick Lewycky2011-04-122-5/+7
| | | | | | Also document that the global variables produced are mergable. llvm-svn: 129330
* Tidy up a bit now that we're using the MemoryManager interface.Jim Grosbach2011-04-123-19/+22
| | | | llvm-svn: 129328
* Add one test case (svc).Johnny Chen2011-04-121-0/+3
| | | | llvm-svn: 129327
* Match case for invalid constant error messages and add a newEric Christopher2011-04-122-6/+9
| | | | | | test for invalid hexadecimals. llvm-svn: 129326
* A8.6.16 BJohnny Chen2011-04-122-0/+15
| | | | | | | | | Encoding T1 (tBcc) if cond == '1110' then UNDEFINED; rdar://problem/9268681 llvm-svn: 129325
* Fix reassociate to use a worklist instead of recursing when newDan Gohman2011-04-122-59/+91
| | | | | | | | | reassociation opportunities are exposed. This fixes a bug where the nested reassociation expects to be the IR to be consistent, but it isn't, because the outer reassociation has disconnected some of the operands. rdar://9167457 llvm-svn: 129324
* Test for invalid constant expr addition - bad octal constant.Eric Christopher2011-04-121-13/+5
| | | | llvm-svn: 129323
* To avoid printing out multiple error messages for cases like:Eric Christopher2011-04-121-0/+3
| | | | | | | | | | .long 80+08 go ahead and assume that if we've got an Error token that we handled it already. Otherwise if it's a token we can't handle then go ahead and return the default error. llvm-svn: 129322
* Reuse live interval union between functions. This saves a bit of compile timeJakob Stoklund Olesen2011-04-112-4/+11
| | | | | | when compiling many small functions. llvm-svn: 129321
* Thumb disassembler was erroneously rejecting "blx sp" instruction.Johnny Chen2011-04-114-2/+27
| | | | | | rdar://problem/9267838 llvm-svn: 129320
* comment cleanup, use moveBefore instead of removeFromParent+insertBefore.Chris Lattner2011-04-111-9/+5
| | | | llvm-svn: 129319
* TableGen: Keep the order of DECL_CONTEXT() for DeclNodes.td. RecordVector ↵NAKAMURA Takumi2011-04-111-4/+7
| | | | | | | | may be used instead of RecordSet. The result of DeclNodes.inc was unstable on msys, Windows 7 x64. llvm-svn: 129317
* remove the StructRetPromotion pass. It is unused, not maintained andChris Lattner2011-04-1111-449/+0
| | | | | | | has some bugs. If this is interesting functionality, it should be reimplemented in the argpromotion pass. llvm-svn: 129314
* Fix an error in the MBlaze delay slot filler.Wesley Peck2011-04-111-1/+1
| | | | llvm-svn: 129313
* build: Add support for a SHOW_DIAGNOSTICS build variable.Daniel Dunbar2011-04-113-8/+91
| | | | | | | | | If enabled, this will attempt to use the CC_LOG_DIAGNOSTICS feature I dropped into Clang to print a log of all the diagnostics generated during an individual build (from the top-level). Not sure if this will actually be useful, but for now it is handy for testing the option. llvm-svn: 129312
* Add scheduling information for the MBlaze backend.Wesley Peck2011-04-1118-243/+719
| | | | llvm-svn: 129311
* Lex, and then fail on invalid constants.Eric Christopher2011-04-111-1/+1
| | | | | | | | Testcase forthcoming. rdar://8490596 llvm-svn: 129309
* Just because a GlobalVariable's initializer is [N x { i32, void ()* }] doesn'tNick Lewycky2011-04-113-9/+20
| | | | | | | | | | | | mean that it has to be ConstantArray of ConstantStruct. We might have ConstantAggregateZero, at either level, so don't crash on that. Also, semi-deprecate the sentinal value. The linker isn't aware of sentinals so we end up with the two lists appended, each with their "sentinals" on them. Different parts of LLVM treated sentinals differently, so make them all just ignore the single entry and continue on with the rest of the list. llvm-svn: 129307
* Implement cfi_rel_offsetRafael Espindola2011-04-112-1/+82
| | | | llvm-svn: 129306
* Speed up eviction by stopping collectInterferingVRegs as soon as the spillJakob Stoklund Olesen2011-04-113-14/+23
| | | | | | weight limit has been exceeded. llvm-svn: 129305
* Add test for previous commit.Rafael Espindola2011-04-111-0/+46
| | | | llvm-svn: 129304
* Don't crash on invalid instructions when disassembling MBlaze code.Wesley Peck2011-04-113-36/+115
| | | | | | This fixes http://llvm.org/bugs/show_bug.cgi?id=9653 llvm-svn: 129303
* The default of the dispatch switch statement was to branch to a BB that executedBill Wendling2011-04-111-7/+8
| | | | | | | | | | | | | | | | | | | | the 'unwind' instruction. However, later on that instruction was converted into a jump to the basic block it was located in, causing an infinite loop when we get there. It turns out, we get there if the _Unwind_Resume_or_Rethrow call returns (which it's not supposed to do). It returns if it cannot find a place to unwind to. Thus we would get what appears to be a "hang" when in reality it's just that the EH couldn't be propagated further along. Instead of infinitely looping (or calling `unwind', which none of our back-ends support (it's lowered into nothing...)), call the @llvm.trap() intrinsic instead. This may not conform to specific rules of a particular language, but it's rather better than infinitely looping. <rdar://problem/9175843&9233582> llvm-svn: 129302
* Fix the bug where the immediate shift amount for Thumb logical shift ↵Johnny Chen2011-04-112-6/+23
| | | | | | | | instructions are incorrectly disassembled. rdar://problem/9266265 llvm-svn: 129298
* Look pass copies when determining whether hoisting would end up inserting ↵Evan Cheng2011-04-112-8/+51
| | | | | | more copies. rdar://9266679 llvm-svn: 129297
* implement .cfi_adjust_cfa_offset.Rafael Espindola2011-04-111-1/+28
| | | | llvm-svn: 129296
* Get rid of useless comment; if a file uses functions from a given header,Eli Friedman2011-04-111-4/+0
| | | | | | it is obvious that it should be included. llvm-svn: 129295
* Fix another using-CPSR-twice bug in my ADCS/SBCS cleanups, and make proper ↵Owen Anderson2011-04-111-2/+5
| | | | | | use of the Commutable bit. llvm-svn: 129294
* Skip a binary search when possible.Jakob Stoklund Olesen2011-04-111-0/+2
| | | | llvm-svn: 129293
* Use a faster algorithm for computing MBB live-in registers after register ↵Jakob Stoklund Olesen2011-04-111-18/+20
| | | | | | | | allocation. LiveIntervals::findLiveInMBBs has to do a full binary search for each segment. llvm-svn: 129292
* Because some systems have reported that this example would not build theGarrison Venn2011-04-111-0/+5
| | | | | | header file cstdio was added as an include. llvm-svn: 129291
* Trivial comment fix.Johnny Chen2011-04-112-2/+2
| | | | llvm-svn: 129288
* Fix a couple of places where changes are made but not tracked.Evan Cheng2011-04-112-3/+10
| | | | llvm-svn: 129287
* Check invalid register encodings for LdFrm/StFrm ARM instructions and flag ↵Johnny Chen2011-04-115-0/+102
| | | | | | | | them as invalid instructions. llvm-svn: 129286
* Adding support for printing operands symbolically to llvm's public 'C'Kevin Enderby2011-04-118-9/+212
| | | | | | | | | | | | | disassembler API. Hooked this up to the ARM target so such tools as Darwin's otool(1) can now print things like branch targets for example this: blx _puts instead of this: blx #-36 And even print the expression encoded in the Mach-O relocation entried for things like this: movt r0, :upper16:((_foo-_bar)+1234) llvm-svn: 129284
* Don't add live ranges for sub-registers when clobbering a physical register.Jakob Stoklund Olesen2011-04-112-15/+7
| | | | | | | | | Both coalescing and register allocation already check aliases for interference, so these extra segments are only slowing us down. This speeds up both linear scan and the greedy register allocator. llvm-svn: 129283
* Speed up LiveIntervalUnion::unify by handling end insertion specially.Jakob Stoklund Olesen2011-04-111-1/+9
| | | | | | This particularly helps with the initial transfer of fixed intervals. llvm-svn: 129277
* Time the initial seeding of live registersJakob Stoklund Olesen2011-04-111-0/+1
| | | | llvm-svn: 129276
* Don't shrink live ranges after dead code elimination unless it is going to help.Jakob Stoklund Olesen2011-04-111-4/+10
| | | | | | In particular, don't repeatedly recompute the PIC base live range after rematerialization. llvm-svn: 129275
* CMake: remove some unnecesary code and ToDos.Oscar Fuentes2011-04-112-9/+1
| | | | | | Patch by arrowdodger! llvm-svn: 129274
OpenPOWER on IntegriCloud