Commit Graph

41313 Commits

Author SHA1 Message Date
Chris Lattner 89a62c8fff Update comment.
llvm-svn: 47539
2008-02-24 19:04:33 +00:00
Steve Naroff f0ed31aafe Move the initialization of SEL/objc_selector from Sema::Sema() to Sema::ActOnTranslationUnitScope() and make sure the type/struct get inserted into the translation unit scope.
Bug submitted by David Chisnall (thanks!).

llvm-svn: 47538
2008-02-24 16:25:02 +00:00
Duncan Sands ba3d7e8e7d Add support to LegalizeTypes for building legal vectors
out of illegal elements (BUILD_VECTOR).  Uses and beefs
up BUILD_PAIR, though it didn't really have to.  Like
most of LegalizeTypes, does not support soft-float.
This cures all "make check" vector building failures.

llvm-svn: 47537
2008-02-24 07:36:03 +00:00
Ted Kremenek 72be068ab3 Two more Windows-related fixes:
- More enum signeness bitfield fixes (MSVC treats enums as signed).

- Fixed in Lex/HeaderSearch.cpp an unsafe copy between two
  HeaderSearch::PerFileInfo entries in a common vector. The copy involved two
  calls to getFileInfo() within the assignment; these calls could have
  side-effects that enlarged the internal vector, and with MSVC this would
  invalidate one of the values in the assignment.
  
Patch by Argiris Kirtzidis!

llvm-svn: 47536
2008-02-24 03:55:14 +00:00
Ted Kremenek d87eef89c8 In FileManager: use full paths to unique files and directories on Windows,
since inodes are bogus abstraction on that platform.

Patch by Argiris Kirtzidis!

llvm-svn: 47535
2008-02-24 03:15:25 +00:00
Bill Wendling a7d1ed4c98 Some platforms use the same name for 32-bit and 64-bit registers (like
%r3 on PPC) in their ASM files. However, it's hard for humans to read
during debugging. Adding a new field to the register data that lets you
specify a different name to be printed than the one that goes into the
ASM file -- %x3 instead of %r3, for instance.

llvm-svn: 47534
2008-02-24 00:56:13 +00:00
Evan Cheng 2f18c39720 Backing out r47521 for now. This has broken a number of tests.
llvm-svn: 47533
2008-02-23 19:32:32 +00:00
Scott Michel 7d5eaec6dd Merge current work back to tree to minimize diffs and drift. Major highlights
for CellSPU modifications:

- SPUInstrInfo.td refactoring: "multiclass" really is _your_ friend.
- Other improvements based on refactoring effort in SPUISelLowering.cpp,
  esp. in SPUISelLowering::PerformDAGCombine(), where zero amount shifts and
  rotates are now eliminiated, other scalar-to-vector-to-scalar silliness
  is also eliminated.
- 64-bit operations are being implemented, _muldi3.c gcc runtime now
  compiles and generates the right code. More work still needs to be done.

llvm-svn: 47532
2008-02-23 18:41:37 +00:00
Zhou Sheng aae582ba99 Testcase for Revision 47478.
llvm-svn: 47531
2008-02-23 10:59:51 +00:00
Eli Friedman 401675b0de Minor code cleanup.
llvm-svn: 47530
2008-02-23 07:32:49 +00:00
Evan Cheng 504c645b3e Rematerialization logic was overly conservative when it comes to loads from fixed stack slots.
llvm-svn: 47529
2008-02-23 03:38:34 +00:00
Evan Cheng 405827dc26 Update test.
llvm-svn: 47527
2008-02-23 02:57:25 +00:00
Evan Cheng 379682b0e5 If remating a machine instr with virtual register operand, make sure the vr is avaliable at all uses regardless of whether it would be folded.
llvm-svn: 47526
2008-02-23 02:14:42 +00:00
Evan Cheng 174ef9a0bb Remat of pic loads are now on by default.
llvm-svn: 47525
2008-02-23 02:08:30 +00:00
Evan Cheng 42cb72e52c Turning on remat of pic loads.
llvm-svn: 47524
2008-02-23 02:07:42 +00:00
Dan Gohman 63d2d1f554 Fix a bug that caused opt and other tools to silently ignore
invalid command-line options.

llvm-svn: 47523
2008-02-23 01:55:25 +00:00
Evan Cheng 4d17671997 No need recognize load from a fixed argument slot as re-materializable. LiveIntervalAnalysis already handles it as a special case.
llvm-svn: 47522
2008-02-23 01:47:44 +00:00
Devang Patel 6a49782d33 Properly read and write bitcodes for multiple return values.
llvm-svn: 47521
2008-02-23 01:44:55 +00:00
Evan Cheng e70afb021b Recognize loads of arguments as re-materializable first. Therefore if isReallyTriviallyReMaterializable() returns true it doesn't confuse it as a "normal" re-materializable instruction.
llvm-svn: 47520
2008-02-23 01:44:27 +00:00
Devang Patel 14f9994562 Regenerate.
llvm-svn: 47519
2008-02-23 01:17:37 +00:00
Devang Patel 6c4bc99c44 Use isa check instead of getTypeID() check.
llvm-svn: 47518
2008-02-23 01:17:17 +00:00
Ted Kremenek f28aec5261 Fixed buffer overflow reported by Argiris Kirtzidis.
llvm-svn: 47517
2008-02-23 01:11:40 +00:00
Devang Patel 690fcf68b1 Remove unnecessary "inline" keywords.
llvm-svn: 47516
2008-02-23 01:11:02 +00:00
Ted Kremenek f948d2a75f Change encoding of TokenKind in IdentifierTable to be of type "unsigned"
instead of TokenKind because of signedness issues with MSVC and enums.

Patch from Argiris Kirtzidis.

llvm-svn: 47515
2008-02-23 01:05:54 +00:00
Devang Patel d995551261 print getresult operand and its type directly.
llvm-svn: 47514
2008-02-23 01:04:26 +00:00
Evan Cheng 26e5d01ca1 Really. Why doesn't every arch support MMX?
llvm-svn: 47513
2008-02-23 00:56:14 +00:00
Ted Kremenek 652d18e37c Patch from Argiris Kirtzidis:
The patch fixes some debug assertions that the msvcrt throws:

1)
-    if (isprint(value) && value < 256) {
+    if (value < 256 && isprint(value)) {

isprint() does an assertion check of its own for value < 256; check value before calling it to prevent it.


2)
-    Stmt->Names.push_back(std::string(&data[0], data.size()));
+    if (data.size() == 0)
+      Stmt->Names.push_back(std::string());
+    else
+      Stmt->Names.push_back(std::string(&data[0], data.size()));

If data.size() == 0 then data[0] throws "out of range" assertion.

llvm-svn: 47512
2008-02-23 00:52:04 +00:00
Devang Patel 2f2ff159a5 Use dyn_cast instead of isa + cast.
llvm-svn: 47511
2008-02-23 00:47:00 +00:00
Evan Cheng 69876ef700 Forgot this.
llvm-svn: 47510
2008-02-23 00:46:11 +00:00
Devang Patel a22220d8f6 Regenerate
llvm-svn: 47509
2008-02-23 00:38:56 +00:00
Devang Patel 59643e575f To support multiple return values, now ret instruction supports multiple operands instead of one aggregate operand.
llvm-svn: 47508
2008-02-23 00:35:18 +00:00
Evan Cheng 4f5cb4cdac Fix spill weight updating bug.
llvm-svn: 47507
2008-02-23 00:33:04 +00:00
Ted Kremenek b0b7d28f67 Fixed horrid bug in LiveVariables analysis where we were only merging at
confluence points the liveness information for variables (Decls) and NOT
block-level expressions.

llvm-svn: 47506
2008-02-22 23:17:20 +00:00
Dale Johannesen 09f410b6d7 Split ParameterAttributes.h, putting the complicated
stuff into ParamAttrsList.h.  Per feedback from
ParamAttrs changes.

llvm-svn: 47504
2008-02-22 22:17:59 +00:00
Gordon Henriksen 60c140433b Improving wording.
llvm-svn: 47503
2008-02-22 21:55:51 +00:00
Gordon Henriksen 6ee6b7c3c1 Adding a note about IR generation to the LLVM FAQ.
llvm-svn: 47502
2008-02-22 20:58:29 +00:00
Evan Cheng cee351c410 Test case for PR2082.
llvm-svn: 47501
2008-02-22 20:38:49 +00:00
Evan Cheng b6d981bddd Same isPhysRegAvailable bug as local register allocator.
llvm-svn: 47500
2008-02-22 20:31:32 +00:00
Evan Cheng 52c15b3e6d Really really bad local register allocator bug. On X86, it was never using ESI, EDI, and EBP because of a bug in RALocal::isPhysRegAvailable(). For example, when
it checks if ESI is available, it then looks at registers aliases to ESI. SIL is marked -2 (not allocatable) but isPhysRegAvailable() incorrectly assumes it is in use and returns false for ESI.

llvm-svn: 47499
2008-02-22 20:30:53 +00:00
Ted Kremenek c77f34daad Modified clang driver option -dump-live-variables to (optionally) use the
--analyze-function option to analyze specific functions.

llvm-svn: 47498
2008-02-22 20:13:09 +00:00
Ted Kremenek 88329bf0ea clang driver options --dump-cfg and --view-cfg now (optionally) use the
--analyze-function option to dump/view the CFGs of specific functions.

llvm-svn: 47497
2008-02-22 20:00:31 +00:00
Evan Cheng a1977d32f0 Add debugging printfs.
llvm-svn: 47496
2008-02-22 19:57:06 +00:00
Devang Patel faafcfd3ce Regenerate
llvm-svn: 47495
2008-02-22 19:31:30 +00:00
Devang Patel 8f4062975e Use SymbolicValueRef to parse getresult operand
llvm-svn: 47494
2008-02-22 19:31:15 +00:00
Evan Cheng b1d1f9f0a9 Remove an invalid assertion now that there are implicit virtual register operands.
llvm-svn: 47493
2008-02-22 19:25:04 +00:00
Evan Cheng ea1ef87ea2 Make sure reload of implicit uses are issued before remat's.
llvm-svn: 47492
2008-02-22 19:22:06 +00:00
Ted Kremenek 76c03b4a55 When running the GRSimpleVals analysis, skip functions that do not
appear in a file.

llvm-svn: 47491
2008-02-22 19:10:58 +00:00
Ted Kremenek 43638a87e5 Punt on unifying symbolic lvalues. This won't be needed for many checkers.
llvm-svn: 47489
2008-02-22 18:41:59 +00:00
Devang Patel ac6951a0b9 Add StripDeadPrototypes pass.
llvm-svn: 47488
2008-02-22 18:39:29 +00:00
Dale Johannesen 45b0ef25b2 Generated files for 47484.
llvm-svn: 47485
2008-02-22 17:50:51 +00:00