summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Use the enum value of the attributes when adding them to the attributes builder.Bill Wendling2012-10-095-125/+57
| | | | llvm-svn: 165494
* Fix PR14016.Alexey Samsonov2012-10-092-0/+60
| | | | | | | | | | DeadArgumentElimination pass can replace one LLVM function with another, invalidating a pointer stored in debug info metadata entry for this function. To fix this, we collect debug info descriptors for functions before running a DeadArgumentElimination pass and "patch" pointers in metadata nodes if we replace a function. llvm-svn: 165490
* Create enums for the different attributes.Bill Wendling2012-10-0944-265/+263
| | | | | | | We use the enums to query whether an Attributes object has that attribute. The opaque layer is responsible for knowing where that specific attribute is stored. llvm-svn: 165488
* Remove some dead methods.Bill Wendling2012-10-091-16/+0
| | | | llvm-svn: 165485
* Separate AVXCC and SSECC printing for cmpps/pd/ss/sd and add masking before ↵Craig Topper2012-10-095-4/+55
| | | | | | the switch statement. This keeps the unreachable default case from being hit if the instruction was created with an intrinsic with too large of an immediate. llvm-svn: 165483
* In parseMSRMaskOperand, add an explicit check for the operand being an ↵Craig Topper2012-10-091-1/+2
| | | | | | identifier instead of just having an assert. llvm-svn: 165480
* Remove some dead code from ARMAsmPrinter. Add virtual and LLVM_OVERRIDE to ↵Craig Topper2012-10-092-38/+22
| | | | | | the other methods. Mark some of the helper methods as private. llvm-svn: 165479
* Remove some unused code in the X86AsmPrinter. Add LLVM_OVERRIDE and virtual ↵Craig Topper2012-10-092-64/+15
| | | | | | keywords to the remaining interface methods. llvm-svn: 165478
* Fix PR14034, an infloop / heap corruption / crash bug in the new SROA.Chandler Carruth2012-10-091-0/+2
| | | | | | | Thanks to Benjamin for the raw test case. This one took about 50 times longer to reduce than to fix. =/ llvm-svn: 165476
* Fix. Apply the no capture attribute to the correct parameter.Bill Wendling2012-10-091-4/+7
| | | | llvm-svn: 165469
* Convert to using the Attributes::Builder class to create attributes.Bill Wendling2012-10-092-14/+29
| | | | llvm-svn: 165468
* Use an iterator and proper query method instead of the 'hasAttrSomewhere' ↵Bill Wendling2012-10-091-5/+6
| | | | | | method. llvm-svn: 165467
* Remove more uses of the attribute enums by supplying appropriate query ↵Bill Wendling2012-10-092-1/+101
| | | | | | | | methods for them. No functionality change intended. llvm-svn: 165466
* Convert to using the Attributes::Builder interface.Bill Wendling2012-10-094-15/+36
| | | | llvm-svn: 165465
* Fix up comment to be more clear.Eric Christopher2012-10-081-2/+2
| | | | llvm-svn: 165463
* Use the Attributes::Builder to build the attributes in the parser.Bill Wendling2012-10-083-21/+43
| | | | llvm-svn: 165458
* Refactor the AddrMode class out of TLI to its own header file.Nadav Rotem2012-10-082-8/+9
| | | | | | | | This class is used by LSR and a number of places in the codegen. This is the first step in de-coupling LSR from TLI, and creating a new interface in between them. llvm-svn: 165455
* Convert the LLVM parser over to using the new Attributes::Builder to build itsBill Wendling2012-10-082-33/+39
| | | | | | attributes objects. llvm-svn: 165436
* Give CaptureTracker::shouldExplore a base implementation. Most users want to doNick Lewycky2012-10-082-4/+2
| | | | | | the same thing. No functionality change. llvm-svn: 165435
* Don't crash on extra evil irreducible control flow.Jakob Stoklund Olesen2012-10-082-2/+10
| | | | | | | | | | | | | | When the CFG contains a loop with multiple entry blocks, the traces computed by MachineTraceMetrics don't always have the same nice properties. Loop back-edges are normally excluded from traces, but MachineLoopInfo doesn't recognize loops with multiple entry blocks, so those back-edges may be included. Avoid asserting when that happens by adding an isEarlierInSameTrace() function that accurately determines if a dominating block is part of the same trace AND is above the currrent block in the trace. llvm-svn: 165434
* Begin the transition to using the AttributesImpl object for the Attributes ivar.Bill Wendling2012-10-083-104/+171
| | | | | | | | | | | Start using the AttributesImpl object to hold the value of the attributes. All queries go through the interfaces now. This has one unfortunate consequence. I needed to move the AttributesImpl.h file into include/llvm. But this is only temporary! Otherwise, the changes needed to support this would be too large. llvm-svn: 165433
* Add names for the accelerator table sections so that they canEric Christopher2012-10-081-0/+12
| | | | | | be emitted if they're wanted on elf platforms. llvm-svn: 165432
* Fixup comment.Eric Christopher2012-10-081-1/+1
| | | | llvm-svn: 165427
* Fixup comments.Eric Christopher2012-10-081-2/+2
| | | | llvm-svn: 165426
* PR12716: PPC crashes on vector compareAdhemerval Zanella2012-10-083-6/+27
| | | | | | | | | | | | | | | | | | Vector compare using altivec 'vcmpxxx' instructions have as third argument a vector register instead of CR one, different from integer and float-point compares. This leads to a failure in code generation, where 'SelectSETCC' expects a DAG with a CR register and gets vector register instead. This patch changes the behavior by just returning a DAG with the vector compare instruction based on the type. The patch also adds a testcase for all vector types llvm defines. It also included a fix on signed 5-bits predicates printing, where signed values were not handled correctly as signed (char are unsigned by default for PowerPC). This generates 'vspltisw' (vector splat) instruction with SIM out of range. llvm-svn: 165419
* misched: remove the unused getSpecialAddressLatency hook.Andrew Trick2012-10-083-57/+7
| | | | llvm-svn: 165418
* misched: remove forceUnitLatencies. Defaults are handled by the default ↵Andrew Trick2012-10-082-35/+30
| | | | | | SchedModel llvm-svn: 165417
* misched: avoid scheduling an instruction twice.Andrew Trick2012-10-081-25/+29
| | | | llvm-svn: 165416
* PowerPC: Fix object creation with PPC::MTCRF8 instructionAdhemerval Zanella2012-10-081-1/+3
| | | | llvm-svn: 165411
* Add floating-point to and from integer conversionAdhemerval Zanella2012-10-082-0/+36
| | | | | | | This patch add altivec support for v4i32 to v4f32 and for v4f32 to v4i32 vector rounding conversion. llvm-svn: 165409
* Move TargetData to DataLayout.Micah Villmow2012-10-08194-777/+777
| | | | llvm-svn: 165402
* Remove unused MachineInstr constructors that don't take a DebugLoc argument.Craig Topper2012-10-071-29/+0
| | | | llvm-svn: 165382
* Fix indentation. Remove 'else' after return. No functional change.Craig Topper2012-10-071-11/+8
| | | | llvm-svn: 165381
* X86: fcmov doesn't handle all possible EFLAGS, fall back to a branch for the ↵Benjamin Kramer2012-10-071-1/+8
| | | | | | | | | others. Otherwise it will try to use SSE patterns and fail horribly if sse is disabled. Fixes PR14035. llvm-svn: 165377
* Move more methods out-of-line. This is in preparation for changing the internalBill Wendling2012-10-071-0/+28
| | | | | | contents of the Attributes class over to an AttributesImpl. llvm-svn: 165373
* Make sure always-inline functions get inlined. <rdar://problem/12423986>Bob Wilson2012-10-071-1/+3
| | | | | | | | | | | | | | | | Without this change, when the estimated cost for inlining a function with an "alwaysinline" attribute was lower than the inlining threshold, the getInlineCost function was returning that estimated cost rather than the special InlineCost::AlwaysInlineCost value. That is fine in the normal inlining case, but it can fail when the inliner considers the opportunity cost of inlining into an internal or linkonce-odr function. It may decide not to inline the always-inline function in that case. The fix here is just to make getInlineCost always return the special value for always-inline functions. I ran into this building clang with libc++. Tablegen failed to link because of an always-inline function that was not inlined. I have been unable to reduce the testcase down to a reasonable size. llvm-svn: 165367
* Adding support for instructions mfc0, mfc2, mtc0, mtc2Jack Carter2012-10-062-0/+38
| | | | | | | move from and to coprocessors 0 and 2. Contributer: Vladimir Medic llvm-svn: 165351
* Minor changes based on post commit review:Jack Carter2012-10-061-29/+30
| | | | | Contributer: Vladimir Medic llvm-svn: 165350
* Minor changes based on post commit review:Jack Carter2012-10-051-13/+12
| | | | | Contributer: Vladimir Medic llvm-svn: 165346
* This patch splits apart PPCISelLowering::LowerFormalArguments_Darwin_Or_64SVR4Bill Schmidt2012-10-052-25/+309
| | | | | | | into separate versions for the Darwin and 64-bit SVR4 ABIs. This will facilitate doing more major surgery on the 64-bit SVR4 ABI in the near future. llvm-svn: 165336
* Remove unused but set variable flagged by GCC.Benjamin Kramer2012-10-051-4/+0
| | | | llvm-svn: 165331
* [ms-inline asm] Add a few typedefs to simplify future changes.Chad Rosier2012-10-054-6/+6
| | | | llvm-svn: 165324
* Patch for integer multiply, signed/unsigned, long/long long.Reed Kotler2012-10-053-17/+104
| | | | llvm-svn: 165322
* Simplify code, don't or a bool with an uint64_t.Benjamin Kramer2012-10-051-2/+2
| | | | | | No functionality change. llvm-svn: 165321
* Remove empty file.Benjamin Kramer2012-10-051-0/+0
| | | | llvm-svn: 165320
* Implement TargetData with the DataLayout class, this will allow LLVM ↵Micah Villmow2012-10-054-669/+3
| | | | | | projects to transition to DataLayout without loosing functionality. llvm-svn: 165318
* - Mark the BCC and BLR defs as isCodeGenOnly per error output fromWill Schmidt2012-10-051-5/+6
| | | | | | | | | llvm-tblgen -gen-asm-matcher. PPCInstrInfo.td | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) llvm-svn: 165315
* SROA.cpp: Fix a warning, [-Wunused-variable]NAKAMURA Takumi2012-10-051-0/+1
| | | | llvm-svn: 165309
* Move this test a bit later, after the point at which we know that we eitherDuncan Sands2012-10-051-10/+10
| | | | | | | | have an alloca or a parameter, since then the alloca test should make sense to readers, while before it probably appears too specific. No functionality change. llvm-svn: 165306
* Move methods out-of-line.Bill Wendling2012-10-051-13/+210
| | | | | | | | | The internal representation of the Attributes class will be opaque. All of the query methods will need to query the opaque class. Therefore, these methods need to be out-of-line. No functionality change intended. llvm-svn: 165305
OpenPOWER on IntegriCloud